我是python的新手,我不明白为什么我总是遇到错误。我已经指出了我会在哪里遇到错误。
def lis_add(lis, element):
lis = [ ]
lis.append(element)
return lis
def s_lis(lis):
square = [ ]
for i in range(len(lis)):
square.append(lis[i] * lis[i])
return square
def main():
lis = [ ]
for i in range(10):
x = eval(input("Enter a number: "))
lis = lis_add(lis, x)
s = [ ]
s = s_lis(lis)
print("******* the input list *********")
for i in range(10):
print(lis[i]) *#error*
*#list index out of range*
print("******** the sqaure list *********")
for i in range(len[s]):
print(s[i])
main() *#for some odd reason, I would also get an error here too*发布于 2021-05-01 01:49:24
The problem:
请在此处查看此代码:
def lis_add(lis, element):
lis = [ ]
lis.append(element)
return lis更具体地说,就在这里:
lis = [ ]它会在每次调用时将列表重置为不包含任何元素。因此,当调用此函数时,您的列表的大小仅为1:
for i in range(10):
print(lis[i]) *#error*main有一个错误,因为main内部有一个错误。
其他建议:
eval.
int(input()),而不是eval.
int(input()),for i in range(len[s]):,但它应该是for i in range(len(s)):
print(lis[:10])而不是print(s),而不是list[i]*list[i],而不是list[i]**2。此外,在square.append(lis[i] * lis[i])
lis = [input("Enter a number: ") for i in range(10)]
s = [ ]
这段代码,这是不必要的:square = [x**2 for x in lis]
此外,最后一行中的main有一个选项卡,它在main中被调用。因此,main正在调用main。这不会返回错误,它被称为递归,有时会非常有用。然而,在这里,情况并非如此。所以我建议你去掉那个标签。
https://stackoverflow.com/questions/67338300
复制相似问题