2016-08-18 96 views
0

我正在爲範圍1 - 100的用戶輸入建立一個猜測程序。爲什麼我的Python代碼跳過一個while循環?

爲什麼它會跳過第二個while循環,檢查用戶輸入並轉發它。它直接以數字1

import random 

nums_lasted = [] 
a = 0 
while a < 101: 
    nums_lasted.append(a) 
    a += 1 
secret_num = 1 
while secret_num < 0 or secret_num > 100: 
    try: 
     secret_num = int(input("My number is")) 
    except ValueError: 
     print("No way that was an integer!") 
guess_pc = 50 
min = 50 
max = 101 
while True: 
    print("Is it", guess_pc,"?") 
    if guess_pc == secret_num: 
     print("Easy") 
     break 
    elif guess_pc > secret_num: 
     max = guess_pc 
     nums_lasted.append(guess_pc) 
     nums_lasted1 = [i for i in nums_lasted if i < guess_pc] 
     nums_lasted = nums_lasted1 
    elif guess_pc < secret_num: 
     min = guess_pc 
     nums_lasted.append(guess_pc) 
     nums_lasted1 = [i for i in nums_lasted if i < guess_pc] 
     nums_lasted = nums_lasted1 
    guess_pc = random.choice(nums_lasted) 
+1

提示:'1 < 0 or 1 > 100'的真值是多少? – Kevin

+1

順便說一句,在Python中,當'secret_num == 1'時,你可以做'雖然不是0 <= secret_number <= 100:' –

回答

1

由於條件secret_num < 0 or secret_num > 100secret_num == 1假的。 1肯定在0到100之間。你應該將secret_number設置爲大於100的值,以便按預期工作。

+0

' secret_num <0或secret_num> 100'是錯誤的 – DeepSpace

+0

當然,謝謝@DeepSpace。 –

3
secret_num = 1 
while secret_num < 0 or secret_num > 100: 

您設置secret_num1while只會在secret_num小於0或大於100時運行,因此它將永遠不會執行。

+0

我需要睡覺 – Metalnakls