函数输出错误,计算整数中数字的总和

时间:2013-03-07 22:02:29

标签: python function python-3.x

我需要编写一个函数来计算并返回整数中的数字之和。

这是我的代码:

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不在列表中,并且不用于计算总和...任何建议?

3 个答案:

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