我自学Python,遇到一个奇怪的问题。我想要做的是将一个列表传递给一个函数,并让该函数返回一个列表,其中元素是围绕它的数字的总和,但我认为会产生一些奇怪的结果,所以我做了一个调试版本的该代码仍然表现出如下行为:Python截断整数数组中的数字
当我创建一个整数数组并将其传递给一个函数,然后使用for循环打印该列表的各个值时,第一个在每个int都被截断。
例如,以下输入和输出:
Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3
这发生无论输入,如果它的10,101,或13453 - 相同的行为发生。
我知道我可能错过了一些简单的东西,但为了我的利益,没有任何数量的谷歌搜索可以为我解决这个问题。下面附上的是我用来执行此操作的代码。值得注意的是:在任何时候在for循环之外打印整个列表时,它将返回完整和正确的列表(即['101','202','303'])
谢谢!
temp = list()
def sum(list):
print list
for i in range(1, len(list)+1):
print i
return temp
L = list()
while True:
input = raw_input("Please enter a number: ");
if input.strip() == ".":
break
L.append(input);
print L
L2 = sum(L)
print L2
您的缩进错误,可能是复制/粘贴错误。 – 2012-03-02 20:16:56
您不应该使用'list'和'input'作为变量名称,因为它们会隐藏相应的内置函数。 – 2012-03-02 20:19:20
您是否知道您附加到'L'的值是字符串,而不是整数? – 2012-03-02 20:33:11