我需要编写一个函数来计算并返回整数中的数字之和。
这是我的代码:
def main():
number1=input("Enter a number: ")
number=list(number1)
i=0
while len(number)!=i:
numbers=[]
x=int(number[i])
numbers.append(x)
number.remove(number[i])
print(numbers)
x=float(sum(numbers))
print(x)
main()
输出如下:
Enter a number: 123
[3]
3.0
我不确定为什么1和2不在列表中,并且不用于计算总和...任何建议?
答案 0 :(得分:3)
您在循环中重新初始化numbers
。不要这样做,而是将其移到循环之外:
numbers=[]
while len(number)!=i:
# ...
否则你最终会重置每个数字的列表。
答案 1 :(得分:3)
在尝试高级内容之前学习基础知识对你有好处,但只是为了好玩,这是经验丰富的Python编码器解决这个问题的方式:
def main():
number1=input("Enter a number: ") # for Python 2.x, need to use raw_input()
return float(sum(int(ch) for ch in number1))
x = main()
print(x)
我们可以使用内置函数sum()
来对数字进行求和,我们得到带有“生成器表达式”的数字数字,它在调用int()
时直接遍历字符串。
这只是你很快就会在Python中学到的有趣内容。 : - )
答案 2 :(得分:0)
如果您对这种编程感兴趣,也可以采用更实用的方式。它看起来像这样:
def main():
number1=input("Enter a number: ") # for Python 2.x, need to use raw_input()
return float(sum(map(int, number1))
x = main()
print(x)