2016-08-18 25 views
0

私はユーザーの入力を1から100の範囲で推測するプログラムを構築しています。なぜ私のPythonコードはwhileループをスキップしますか?

なぜユーザー入力をチェックして転送する2番目のwhileループをスキップしますか?それはまっすぐ

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 =

答えて

1

条件secret_num < 0 or secret_num > 100secret_num == 1ための偽ですので数1となります。 1は間違いなく0〜100です。期待どおりに動作するには、secret_numberを100より大きい値に設定する必要があります。

+0

secret_num <0またはsecret_num> 100'はfalseになります。 – DeepSpace

+0

間違いなく、@DeepSpaceに感謝します。 –

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

あなたは1secret_numを設定します。 whilesecret_numが0より小さいか100より大きい場合にのみ実行されるため、決して実行されません。

+0

私は寝る必要があります – Metalnakls

関連する問題