1

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

这是我的代码:

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 不在列表中,也不用于计算总和......有什么建议吗?

4

3 回答 3

3

numbers 在循环内重新初始化。不要这样做,而是将其移到循环之外:

numbers=[]
while len(number)!=i:
    # ...

否则你最终会重置每个数字的列表。

于 2013-03-07T22:04:19.083 回答
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 中学习的有趣内容的一种体验。:-)

于 2013-03-07T22:26:30.133 回答
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)
于 2013-08-19T19:52:55.417 回答