将字符串转换为int时出现语法错误

时间:2017-02-25 21:26:25

标签: python string int

我的代码:

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不应该是一个问题。

3 个答案:

答案 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)

将字符串转换为整数