2016-10-03 51 views
0

好的,需要理解爲什麼我的代碼不工作。 目前它陷入了無限循環中,在輸入了錯誤的引腳後詢問用戶的引腳。用戶使用while語句輸入整數

我相信我搞砸了while語句莫名其妙。

def inputValidator(): 
    userInput = requestInteger("Please input a PIN between 1 - 1000") 
    while 1 > userInput > 1000 : 
     requestInteger("Your PIN is not within 1 - 1000, please try again") 
    print("Thanks! your new PIN is " + str(userInput)) 

感謝您的幫助!

回答

2

試試這個:

def inputValidator(): 
    userInput = requestInteger("Please input a PIN between 1 - 1000") 
    while userInput<1 or userInput>1000: 
     userInput = requestInteger("Your PIN is not within 1 - 1000, please try again") 
    print("Thanks! your new PIN is " + str(userInput)) 

你會想從一個新的輸入您的用戶如果userInput小於1或大於1000 - 並且像@Polina F.所說 - 您沒有在while循環內爲userInput分配新值。這就是爲什麼它永遠循環。

1

您不會在while循環中指定任何內容。 userInput永遠不會被更新 - 因此你不能退出循環

1

你不分配requestInteger到userInput

while 1 > userInput > 1000 : 
    userInput =requestInteger("Your PIN is not within 1 - 1000, please try again")