2017-11-28 8 views
0

正しい番号を入力しても、「再試行」が返されます。どのように私はこれを修正することができますか?入力された推測が文字列である間、あなたのnumPythonの2つの変数の値の比較

import random 
from random import randint 
num = randint(1000, 9999) 

print (num) 

while True: 
    guess = input ("Please guess a four digit number. ") 
    print (guess) 

if guess == num: 
    print ("Well Done!") 
else: 
    print ("Try again") 

答えて

0

Mureinikは、文字列が整数と比較することはできませんという事実について正しいですが、私は(つまりint型を明確にしたいと思います)関数は番号を受信しない場合(比喩的に)あなたに爆発することができます。

import random 
num = random.randint(1000, 9999) 

print (num) 

while True: 
    try: 
     guess = input("Please guess a four digit number.") 
     print(guess) 
     if int(guess) == num: 
      print ("Well Done!") 
     else: 
      print ("Try again") 
    except ValueError: 
     print ("Input is not an integer. Redo!") 
+1

* *句を除いて裸を使用しないでください、この問題を解決try文にwhileループの内容を入れて

。 –

+0

Thx、私はそれを試みます。 –

5

はintですので、彼らは同じになることはありません。

num = str(randint(1000, 9999)) 

をまたはintに、ユーザーの推測を変換します:あなたがそれらを比較したい場合、あなたは彼らが同じタイプ

例:両方からだことを確認する必要があり、文字列のみを使用し

guess = int(input("Please guess a four digit number. ")) 
0

ユーザー入力を整数に変換しませんでした。整数と文字列を比較しています。

from random import randint as rn 

while 1: 
print ('Well Done!' if int(input('Please guess a four digit number. ')) is rn(1000, 9999) else 'Try again') 
関連する問題