我刚刚开始学习python 2.7.1,并且我为Cows and Bulls游戏编写了一个代码,你需要通过不断重新输入4位数来猜测一个四位数,直到得到正确的数字。 但由于某种原因,代码只能持续3个循环。这是代码: -
number=raw_input("Enter the 4 digit number to be guessed:")
a=map(int,str(number))
def Guess():
yournumber=raw_input("Enter your number now:")
b=map(int,str(yournumber))
i=j=k=0
while i<=3:
if a[i]==b[i]:
j+=1
elif b[i] in a:
k+=1
i+=1
print str(j),"Bulls and "+str(k),"Cows"
return yournumber
Guess()
c=Guess()
if c==number:
print "BINGO! You have guessed the number!"
else:
Guess()
答案 0 :(得分:6)
实际上没有循环要求用户输入。
在您的实现中,函数Guess()
正好有三次调用。
您的实施:
Guess() # first call
c=Guess() # second call
if c==number:
print "BINGO! You have guessed the number!"
else:
Guess() # third call
#end
相反,你应该在用户弄错时循环。请尝试使用此块:
c=""
while c != number:
c = Guess()
print "BINGO! You have guessed the number!"