2017-04-27 4 views
-2

最初のIF文は無視されていますが、何が原因か分かりません。IF文がスキップされました - Python 2.7

+5

'numberRolled'は整数で、' userGuess'は文字列です。 'raw_input("推測数\ n ")' => 'int(raw_input("推測数\ n "))'です。あなたのelifも冗長です!彼らはそれが等しくない場合にのみ、その点に達するでしょう。 elseを使うことができます。 –

+1

if文が「無視される」とは、条件が真ではないことを意味します。コードを1行ずつ実行すると、理由が分かります –

+0

Pual Rooneyに感謝します。 =) –

答えて

0

raw_input()

import random 
numberRolled = random.randint(1,6) 
print numberRolled 
while True: 
    userGuess = raw_input("Guess a number\n") 
    if userGuess == numberRolled: 
     print "You got it right!" 
     quitYN = raw_input("Would you like to play again?\n").lower() 
     if quitYN == "yes": 
      continue 
     else: 
      break 
    elif userGuess != numberRolled: 
     print "Wrong!"` 
最初IF.`を無視し、私はインデントをチェックし、すべてはあなたはそれがnumberRolledを出力コード内で見ることができますfine.Asようだが、私はそれを実行したとき、それはjusts 文字列を返しますが、 random.randint()返します int。これは、 userGuess == numberRolledを実行するときに文字列をint(これは Falseを返します)と比較していることを意味します。

userGuess == str(numberRolled) 

は、より多くの変数の型についての情報とどのようにPythonでそれらを比較するためのthis answerを見てみましょう:単に正しい型に変数のいずれかを変換するこの問題を解決するには

関連する問題