小编use*_*828的帖子

是什么决定了整数m%n的符号?

Python中的模数令人困惑.

在Python中,%运算符正在计算余数:

>>> 9 % 5
4
Run Code Online (Sandbox Code Playgroud)

然而:

>>> -9 % 5
1
Run Code Online (Sandbox Code Playgroud)

为什么结果1?不是-4吗?

python modulo integer-division

9
推荐指数
2
解决办法
6855
查看次数

字符串中的数字总和

如果我只是sum_digits在这里阅读我的功能,它在我的头脑中是有意义的,但它似乎产生了错误的结果.有提示吗?

def is_a_digit(s):
''' (str) -> bool

Precondition: len(s) == 1

Return True iff s is a string containing a single digit character (between
'0' and '9' inclusive).

>>> is_a_digit('7')
True
>>> is_a_digit('b')
False
'''

return '0' <= s and s <= '9'

def sum_digits(digit):
    b = 0
    for a in digit:
        if is_a_digit(a) == True:
            b = int(a)
            b += 1

    return b
Run Code Online (Sandbox Code Playgroud)

对于该功能sum_digits,如果我输入sum_digits('hihello153john'),它应该产生9

python string sum digits

7
推荐指数
3
解决办法
3万
查看次数

简化功能

我写了这个函数,我认为它会起作用,但我不是100%肯定.但我很好奇这很复杂.我能用这种方式更简单吗?

这三个参数是'HH:MM'形式的时间,其中00 <= HH <= 23且00 <= MM <= 59.前两次是时间估计,第三次是实际时间.返回最接近实际时间的前两个参数之一的时间估计值.如果它们同样接近,则第一次返回.

(str, str, str) -> str  


def closest_time(guess1, guess2, answer):
    if abs((int(answer[:2])) - (int(guess1[:2])) > ((int(answer[:2])) - int(guess2[:2]))):
        return guess2
    if abs((int(answer[:2])) - (int(guess1[:2])) < ((int(answer[:2])) - int(guess2[:2]))):
        return guess1
    if abs((int(answer[:2])) - (int(guess1[:2])) == ((int(answer[:2])) - int(guess2[:2]))):
        if abs((int(answer[3:])) - (int(guess1[3:])) > ((int(answer[3:])) - int(guess2[3:]))):
            return guess2
        if abs((int(answer[3:])) - (int(guess1[3:])) < ((int(answer[3:])) - int(guess2[3:]))):
            return guess1
        if abs((int(answer[3:])) - (int(guess1[3:])) == ((int(answer[3:])) - int(guess2[3:]))):
            return guess1
Run Code Online (Sandbox Code Playgroud)

python string int typeconverter slice

2
推荐指数
1
解决办法
200
查看次数

标签 统计

python ×3

string ×2

digits ×1

int ×1

integer-division ×1

modulo ×1

slice ×1

sum ×1

typeconverter ×1