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

时间:2015-04-01 19:34:29

标签: python-2.7 loops if-statement

我刚刚开始学习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()

1 个答案:

答案 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!"