我的代码:
def digit_sum(n):
result = 0
s = str(n)
for c in s:
result += (int)c # invalid syntax??????????
return result
print digit_sum(1234)
Run Code Online (Sandbox Code Playgroud)
结果:
result += (int)c # invalid syntax??????????
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
该函数应该返回参数"n"的每个数字的总和.为什么我要SyntaxError进入评论栏?变量c属于string 类型,因此应用类型转换应该不是问题int.
在Python中你不会这样做.你用:
result += int(c)Run Code Online (Sandbox Code Playgroud)
从技术上讲,这不是强制转换:你调用int(..)内置函数,它将字符串作为输入并生成它的等价物int.您不使用Python进行强制转换,因为它是一种动态类型语言.
请注意,当然可能c包含非整数的文本.喜欢'the number fifteen whohaa'.当然int(..)无法理解.在那种情况下它会提出一个ValueError.您可以使用try- except来处理这些:
try:
result += int(c)
except ValueError:
# ... (do something to handle the error)
passRun Code Online (Sandbox Code Playgroud)