python - 字符串中数字的总和

标签 python string sum digits

如果我只是在这里阅读我的 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

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

最佳答案

请注意,您可以使用内置函数轻松解决此问题。这是一个更惯用和有效的解决方案:

def sum_digits(digit):
    return sum(int(x) for x in digit if x.isdigit())

print(sum_digits('hihello153john'))
=> 9

特别注意字符串类型的is_a_digit()方法已经存在,它叫做isdigit() .

sum_digits() 函数中的整个循环可以使用生成器表达式作为 sum() 内置函数的参数来更简洁地表达,如如上所示。

关于python - 字符串中数字的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14550034/

相关文章:

python - 如何使用校准图和概率分布来改进分类模型?

python - Shell 脚本 “dvc pull” 无法在 Streamlit 服务器上运行

PHP:如何在所有 HTML 标签中将单引号转换为双引号?

mysql得到差异而不是SUM

python - Pandas : How to sum column values over a date range

python - 如果我只想使用标准用户模型,如何使用 AUTH_USER_MODEL

c - 将 char [] 附加到 char* content = realloc(NULL, sizeof(char) * 10);

C++字符串和内存管理

Matlab,创建额外向量的替代方法?

python - 难以理解 Python 中的嵌套函数