我已经在你的网站上看过这篇文章了,但是我问的问题有点不同,因为我被赋予了不同的任务。
这是一个问题:
生成一个随机的四位数。玩家必须不断输入四位数字,直到他们猜出随机生成的数字。每一次不成功的尝试后,应该说明他们正确的数字有多少,而不是他们正确的位置。在游戏结束时,应该向用户表示祝贺,并告诉他们尝试了多少次。
到目前为止我已经做到了:
from random import randint
n1 = randint (1,9)
n2 = randint (1,9)
n3 = randint (1,9)
n4 = randint (1,9)
numberswrong = 0
print (n1,n2,n3,n4)
guess1 = input("guess the first number")
guess2 = input("guess the second number")
guess3 = input("guess the third number")
guess4 = input("guess the fourth number")
guess1 = int (guess1)
guess2 = int (guess2)
guess3 = int (guess3)
guess4 = int (guess4)
if guess1 != n1:
numberswrong +=1
else:
numberswrong +=0
if guess2 != n2:
numberswrong +=1
else:
numberswrong +=0
if guess3 != n3:
numberswrong +=1
else:
numberswrong +=0
if guess4 != n4:
numberswrong +=1
else:
numberswrong +=0
print ("you got",numberswrong, "numbers wrong")
if numberswrong == 0:
print ("Well done")
while numberswrong != 0:
guess1 = input("guess the first number")
guess2 = input("guess the second number")
guess3 = input("guess the third number")
guess4 = input("guess the fourth number")
guess1 = int (guess1)
guess2 = int (guess2)
guess3 = int (guess3)
guess4 = int (guess4)
if guess1 != n1:
numberswrong +=1
else:
numberswrong +=0
if guess2 != n2:
numberswrong +=1
else:
numberswrong +=0
if guess3 != n3:
numberswrong +=1
else:
numberswrong +=0
if guess4 != n4:
numberswrong +=1
else:
numberswrong +=0
print ("you got",numberswrong, "numbers wrong")
print ("Well done")
打印(n1,n2,n3,n4)只是为了测试代码,而不是真正的代码。我有两个问题。首先,如果你第一次猜到数字,会显示两个“做得好”,其次,我如何在不破坏while循环的情况下清除numberswrong变量。如果我不做任何事情,numberswrong变量每次都会上升,当你猜对的时候,你猜错了四个之后,当numberswrong等于25或类似值时,您不会得到很好的消息。另外,如果在while循环结束时只说numberswrong=0,while循环认为得到了正确的结果,并且说做得很好。我不知道解决办法是什么。可能是循环计数器?
如果你能帮忙,我将不胜感激
编辑:我明白为什么“做得好”要印两遍了。至于第二个问题。还是看不见。
编辑二:@moose。我会尽我所能回答这个问题。当我按run时,程序会告诉我数字1-4是什么,然后告诉我错误的数字。唯一的问题是数字的数目增加了,而且没有被清除。假设我把所有的数字都错了3次。第三次说你错了12个号码。很明显我不会弄错12个数字,因为只有4个数字可以猜。每次传球后,我都能看到while循环没有清空时发生了什么。我想我知道解决办法。说出某处numberswrong=0以清除循环。但我不知道该把这句话放在哪里。
你刚刚忘记将numberswrong变量重置为零:)
另外,为了发现错误,请尽量使代码更简单。
如果您尝试应用所有这些建议,则最终代码应如下所示:
这是更新的代码!我用了一个变量c来记录尝试的次数。当用户正确猜出数字时,我也会跳出无限循环。
相关问题 更多 >
编程相关推荐