我的代码:
def digit_sum(n):
result = 0
s = str(n)
for c in s:
result += (int)c # invalid syntax??????????
return result
print digit_sum(1234)
结果:
result += (int)c # invalid syntax??????????
^
SyntaxError: invalid syntax
该函数应该返回参数“n”的每个数字的总和。
为什么我在评论行中获得SyntaxError
?变量c
的类型为str
,因此将类型转换应用于int
不应该是一个问题。
答案 0 :(得分:5)
在Python中你不会那样投射。你使用:
result += int(c)
从技术上讲这不是:你调用int(..)
内置函数,它将字符串作为输入并生成等价的int
。你没有使用Python进行强制转换,因为它是一种动态类型语言。
请注意, c
当然可能包含非整数的文字。像'the number fifteen whohaa'
一样。当然int(..)
无法理解。在这种情况下,它会引发ValueError
。您可以使用try
- except
来处理这些问题:
try:
result += int(c)
except ValueError:
# ... (do something to handle the error)
pass
答案 1 :(得分:1)
在Python中,使用函数int()
将字符串转换为整数。
result += int(c)
答案 2 :(得分:0)
def digit_sum(n):
numsum=[]
add_up=str(n)
for n in add_up[0: len(add_up)]:
numsum.append(int(n))
return sum(numsum)
print digit_sum(1234)
基本上,您需要使用int(n)