Python、PyIDE用户输入循环有时不起作用
我使用pyide。我做了一个while循环来循环输入。它只接受用户键入1或2,否则将继续循环。当我运行它时,有时需要我在接受它并结束循环之前键入1或2两次 欢迎来到刽子手!请按1表示英语,按2表示意大利语,然后按enter。2 欢迎来到刽子手!请按1表示英语,按2表示意大利语,然后按enter。2 我是意大利人。喜剧演员 如图所示,需要2个输入来中断循环。它似乎有40%的时间是这样做的 循环如下:Python、PyIDE用户输入循环有时不起作用,python,function,input,while-loop,pycharm,Python,Function,Input,While Loop,Pycharm,我使用pyide。我做了一个while循环来循环输入。它只接受用户键入1或2,否则将继续循环。当我运行它时,有时需要我在接受它并结束循环之前键入1或2两次 欢迎来到刽子手!请按1表示英语,按2表示意大利语,然后按enter。2 欢迎来到刽子手!请按1表示英语,按2表示意大利语,然后按enter。2 我是意大利人。喜剧演员 如图所示,需要2个输入来中断循环。它似乎有40%的时间是这样做的 循环如下: while True: if user_input() == '1': print('Yo
while True:
if user_input() == '1':
print('You have selected English. Let us begin')
break
elif user_input() == '2':
print('Hai scelto italiano. Proseguiamo')
break
else:
user_input()
有时这不会发生,有时需要3个输入。。。代码有问题吗
user_input()函数的作用很简单:
def user_input():
inp_1 = input('Welcome to hangman! Please press 1 for English, 2 for Italian and press enter.')
return inp_1
您正在条件中调用
user\u input()
,这意味着每次都必须调用该函数来检查条件是否为真(这将提示用户输入)。相反,调用它一次并将结果存储在变量中
while True:
choice = user_input()
if choice == '1':
print('You have selected English. Let us begin')
break
elif choice == '2':
print('Hai scelto italiano. Proseguiamo')
break
您正在条件中调用
user\u input()
,这意味着每次都必须调用该函数来检查条件是否为真(这将提示用户输入)。相反,调用它一次并将结果存储在变量中
while True:
choice = user_input()
if choice == '1':
print('You have selected English. Let us begin')
break
elif choice == '2':
print('Hai scelto italiano. Proseguiamo')
break
请修正你的缩进。你能确定它需要3次输入的时间有什么不同吗?是否存在需要1的情况?抱歉,我在复制代码时忽略了这一点。没有什么不同,它是完全随机的。它甚至不接近随机。好吧,我注意到的是,有时它需要1,有时2,有时3,而输入是相同的。不管怎样,它已经在下面解决了,谢谢你的输入:)请修正你的缩进。你能确定它需要3个输入的时间有什么不同吗?是否存在需要1的情况?抱歉,我在复制代码时忽略了这一点。没有什么不同,它是完全随机的。它甚至不接近随机。好吧,我注意到的是,有时它需要1,有时2,有时3,而输入是相同的。不管怎样,它已经在下面解决了,谢谢你的输入:)谢谢,这基本上解决了它,尽管仍然有一些奇怪的地方。如果我不是第一次键入1或2,它将再次需要1或2的多个输入来结束循环(这是在应用您的修复之后)。@Vellutante您是否使用了我在回答中使用的代码?因为您所描述的问题听起来像您仍然保留了
else
-语句。如果您是对的,删除了else语句,它就可以完美地工作。再次感谢!谢谢,这基本上解决了这个问题,尽管还有一些特殊的地方。如果我不是第一次键入1或2,它将再次需要1或2的多个输入来结束循环(这是在应用您的修复之后)。@Vellutante您是否使用了我在回答中使用的代码?因为您所描述的问题听起来像您仍然保留了else
-语句。如果您是对的,删除了else语句,它就可以完美地工作。再次感谢!