gpt4 book ai didi

python - 程序卡在 while 循环不打印

转载 作者:太空宇宙 更新时间:2023-11-03 13:00:15 25 4
gpt4 key购买 nike

import random

def usertype():
randletter = random.choice('qwer')
userinput = raw_input('Press '+str(randletter))
if userinput == randletter:
return 'Correct'
else:
return 'Incorrect'

def usertypetest(x,y,result):
while x <= 9:
result = usertype()
if result == 'Correct':
x = x+1
y = y+5
else:
x = x+1
y = y-2
return str(y)+'is your score'

print usertypetest(0,0,usertype)

这是我的代码。我想让它要求用户按下一个按钮,从集合(Q、W、E、R)中随机选择,然后打印正确或不正确,具体取决于他们按下的按钮。我希望这种情况发生 10 次。十次尝试后,它将打印他们的分数:每个“正确”为 5,“不正确”为 -2。相反,我收到了这个。

Press e(e)
Press e(e)
Press w(e)
Press q(e)
Press q(e)
Press q(e)
Press r(e)
Press e(e)
Press w(e)
Press q(e)
Press e(e)
Press e(e)
Press e(e)
Press e(e)
Press q(e)
Press w(e)
Press r(e)
Press w(e)
Press r(e)
Press w(e)
Press r(e)
Press r(e)

无论我输入什么,它都不会返回“正确”或“不正确”。它也继续过去 10 并且不显示他们的分数。显然存在我没有发现的问题。

我的输入在括号中。

为了澄清,这就是我想要的:

Press q(q)
Correct
Press e(q)
Incorrect
Press w(w)
Correct
Press q(q)
Correct
Press e(eq)
Incorrect
Press e(e)
Correct
Press q(q)
Correct
Press q(r)
Incorrect
Press w(w)
Correct
Press r(r)
Correct
29 is your score

最佳答案

在 Python 中缩进非常重要

在这段代码中,while 循环的 x 永远不会改变,因为 if block 与 while 循环。所以唯一的循环指令是 result = usertype()

while x <= 9:
result = usertype()
if result == 'Correct':
x = x+1
y = y+5

两个额外的批评:

您在两个地方递增 x,而它只需要完成一次。

while x <= 9:
result = usertype()
if result == 'Correct':
y = y+5
else:
y = y-2
x += 1

此外,由于您要循环固定次数,为什么不忽略递增的 x 并使用 for 循环,如下所示:

for x in range(10):
result = usertype()
if result == 'Correct':
y = y+5
else:
y = y-2

关于python - 程序卡在 while 循环不打印,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24443879/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com