我的if-else循环只运行三次,而它应该运行更多次

Pra*_*thi 3 loops if-statement python-2.7

我刚刚开始学习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()
Run Code Online (Sandbox Code Playgroud)

Naf*_*ali 6

实际上没有循环要求用户输入.

在您的实现中,正好有三个函数调用Guess().

你的实施:

Guess() # first call
c=Guess() # second call

if c==number:
    print "BINGO! You have guessed the number!"
else:
    Guess() # third call

#end
Run Code Online (Sandbox Code Playgroud)

相反,你应该在用户弄错时循环.请尝试此块:

c=""

while c != number:
    c = Guess()

print "BINGO! You have guessed the number!"
Run Code Online (Sandbox Code Playgroud)

  • @PrateekTripathi在堆栈溢出中,我们通过将答案标记为正确来说谢谢.看看这张图片http://i.stack.imgur.com/uqJeW.png (2认同)