2017-11-28 5 views
0

올바른 숫자를 입력 했더라도 "다시 시도하십시오"가 반환됩니다. 이 문제를 어떻게 해결할 수 있습니까? 입력 된 추측이 문자열 동안 귀하의 num파이썬에서 두 변수의 값을 비교하십시오.

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 문자열이 정수와 비교 될 수 없다는 사실에 대한 정확하지만 나는 함수가 번호를 수신하지 않는 경우 (비 유적으로)에 폭발 할 수 있습니다) 그 지능 (명확히하고 싶습니다. 하지 *

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')