如果我只是在这里阅读我的 sum_digits 函数,这在我的脑海中是有道理的,但它似乎产生了错误的结果.有什么建议吗?
if i just read my sum_digits function here, it makes sense in my head but it seems to be producing wrong results. Any tip?
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
For the function sum_digits, if i input sum_digits('hihello153john'), it should produce 9
请注意,您可以使用内置函数轻松解决此问题.这是一个更惯用和更有效的解决方案:
Notice that you can easily solve this problem using built-in functions. This is a more idiomatic and efficient solution:
def sum_digits(digit):
return sum(int(x) for x in digit if x.isdigit())
print(sum_digits('hihello153john'))
=> 9
特别要注意,对于字符串类型已经存在 is_a_digit() 方法,它被称为 isdigit().
In particular, be aware that the is_a_digit() method already exists for string types, it's called isdigit().
sum_digits() 函数中的整个循环可以使用生成器表达式作为 sum() 内置函数的参数更简洁地表示,如如上所示.
And the whole loop in the sum_digits() function can be expressed more concisely using a generator expression as a parameter for the sum() built-in function, as shown above.
这篇关于字符串中的数字总和的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
列表字典中的总和值Sum values in a dict of lists(列表字典中的总和值)
如何在 Python 中对文本文件中的数字求和How to sum numbers from a text file in Python(如何在 Python 中对文本文件中的数字求和)
什么是类似于 sum() 的减法函数,用于减去列表中What is a subtraction function that is similar to sum() for subtracting items in list?(什么是类似于 sum() 的减法函数,用于减去列表中的
Python 等价于 sum() 使用 xor()Python equivalent of sum() using xor()(Python 等价于 sum() 使用 xor())
python中的求和矩阵列sum matrix columns in python(python中的求和矩阵列)
N个列表元素的总和pythonsum of N lists element-wise python(N个列表元素的总和python)