为什么我得到一个无限循环 (python)?
Why did I get an infinite loop (python)?
我是编程新手。
我正在尝试编写一个包含 3 个列表的程序。
代码中没有 while 循环(见下文)。
我尝试将用户的答案保存在名为 'user_answers' 的列表中。
for 循环应该只循环 5 次(这是列表的长度),但似乎我得到了一个无限循环。
关于如何解决此问题的任何见解?
def user_answer():
user_answers=[0, 0, 0, 0, 0]
print('\n')
for i in range (len(user_answers)):
print('\nPlease enter the answer to question', i+1, ':', sep=' ', end='')
user_answers[i]=input()
return user_answer()
开始前无需创建列表:
def user_answer():
user_answers=[]
print('\n')
for i in range(5):
print('\nPlease enter the answer to question', i+1, ':', sep=' ', end='')
user_answers.append(input())
return user_answers
因为你 return 函数名 user_answer()
使它 运行 无限递归。
因此,您应该 return user_answers
而不是 return user_answer()
。
如果你想让数组的大小等于 5,你可以循环它 5 次而不是每次都改变数组。您也可以将用户输入的指令放在 input()
中。这将使您的代码更简单。你可以试试这个例子:
def user_answer():
user_answers=[]
for i in range(5):
user_answers.append(input("Please enter the answer to question "+str(i+1)+": "))
print()
return user_answers
print(user_answer())
P.S。如果你想要 3 个列表,每个列表包含 5 个元素,你可以调用函数 user_answer()
3 次或将它放在一个循环中。
你的代码return通过调用函数,导致死循环。我猜你的意思是 return 变量 user_answers
不要 return 函数 user_answers()
return user_answers
如果您混淆同名的函数和变量,可能会发生这种情况。您可能需要查看 function-and-variable-with-the-same-name
发生这种情况是因为您正在 return 调用函数本身,这意味着您正在创建一个无限递归函数。
def user_answer():
user_answers=[0, 0, 0, 0, 0]
print('\n')
for i in range (len(user_answers)):
print('\nPlease enter the answer to question', i+1, ':', sep=' ', end='')
user_answers[i]=input()
return user_answers
print(user_answer())
尝试将 return user_answer()
行更改为 return user_answers
希望您正在尝试 return 用户回答数组以进行进一步的工作。
我是编程新手。 我正在尝试编写一个包含 3 个列表的程序。 代码中没有 while 循环(见下文)。
我尝试将用户的答案保存在名为 'user_answers' 的列表中。 for 循环应该只循环 5 次(这是列表的长度),但似乎我得到了一个无限循环。 关于如何解决此问题的任何见解?
def user_answer():
user_answers=[0, 0, 0, 0, 0]
print('\n')
for i in range (len(user_answers)):
print('\nPlease enter the answer to question', i+1, ':', sep=' ', end='')
user_answers[i]=input()
return user_answer()
开始前无需创建列表:
def user_answer():
user_answers=[]
print('\n')
for i in range(5):
print('\nPlease enter the answer to question', i+1, ':', sep=' ', end='')
user_answers.append(input())
return user_answers
因为你 return 函数名 user_answer()
使它 运行 无限递归。
因此,您应该 return user_answers
而不是 return user_answer()
。
如果你想让数组的大小等于 5,你可以循环它 5 次而不是每次都改变数组。您也可以将用户输入的指令放在 input()
中。这将使您的代码更简单。你可以试试这个例子:
def user_answer():
user_answers=[]
for i in range(5):
user_answers.append(input("Please enter the answer to question "+str(i+1)+": "))
print()
return user_answers
print(user_answer())
P.S。如果你想要 3 个列表,每个列表包含 5 个元素,你可以调用函数 user_answer()
3 次或将它放在一个循环中。
你的代码return通过调用函数,导致死循环。我猜你的意思是 return 变量 user_answers 不要 return 函数 user_answers()
return user_answers
如果您混淆同名的函数和变量,可能会发生这种情况。您可能需要查看 function-and-variable-with-the-same-name
发生这种情况是因为您正在 return 调用函数本身,这意味着您正在创建一个无限递归函数。
def user_answer():
user_answers=[0, 0, 0, 0, 0]
print('\n')
for i in range (len(user_answers)):
print('\nPlease enter the answer to question', i+1, ':', sep=' ', end='')
user_answers[i]=input()
return user_answers
print(user_answer())
尝试将 return user_answer()
行更改为 return user_answers
希望您正在尝试 return 用户回答数组以进行进一步的工作。