我正在尝试添加最初在字符串中的整数(例如num = "657647"
)。
我通过使用for循环并转换其中的每个人将整数转换为int。
结果是一个清单?认为这是6 5 7 6 4 7,每个数字都在新的一行上。
起初我觉得它是一个我可以迭代的列表,但显然不是。
这是我想要做的示例代码:
def addingNumbers(string):
double_numbers =""
theSum = 0
for i in range(0,7) :
convertingInt = int(string[i])
theSum += convertingInt
print theSum
如果我输入字符串8101818,我希望总和只有27,而是打印以下内容:
>>> addingNumbers("8101818")
8
9
9
10
18
19
27
我知道问题是代码是单独添加以前的数字,但我希望它只是一个总数,所以在我的情况下27.
我该怎么做?
答案 0 :(得分:2)
如果我输入字符串8101818,我希望总和只是27
在python中,缩进很重要。
def addingNumbers(string):
double_numbers =""
theSum = 0
for i in range(0,7) :
convertingInt = int(string[i])
theSum += convertingInt
print theSum
从上面的代码中删除了打印行的缩进级别,它应该按照您的预期工作。
答案 1 :(得分:1)
实现目标的一行可以这样做:
a = "8101818"
print sum(map(int,a))
答案 2 :(得分:0)
如果你想修改你的代码,你可以尝试下面,但Hooting给出的是非常pythonic,
str = "8101818"
for i in str:
sum = sum + int(i)
print sum
27
答案 3 :(得分:0)
您的打印件位于循环内部,因此每次打印都会打印出来。尝试将其从循环中删除它将起作用。