2017-12-04 11 views
-1

だから私は人が数字を入力し、コンピュータが生成した番号と一致する場合、それが正しい番号を持っているというメッセージを表示し、間違ったa私はこれを実行するときに、私は異なる番号を複数回試して、それは常に私に正しい番号を推測しなかったというメッセージを表示するので、誰でも私に何を教えてもらえますか?問題が何であるかわからないのでここで間違っていますか?私が持っていること(アントンへところでおかげで今の番号を生成し、その数は決して変化しないのでPythonで新しい乱数を生成していますか?

import random 

number = random.randint(0,10) 
user_number = input() 

while user_number != number: 
    if user_number == number: 
    print("GREAT! You guessed the right number! :)") 
    else: 
    print("AWW! You guessed the wrong number, try again! :)") 
    input() 

EDIT私は問題が、どのように私は、私のスクリプトは、毎回異なる数のユーザ入力の何かを生成するだろうこのためVBR)は、私は少し微調整バージョンを更新します。あなたのコードの

import random 

number = random.randint(0,10) 
user_number = None 
valid_num = [str(i) for i in range(0,10)] 
random = 2 

while random > 1: 
while True: 
    user_number = input("Enter a number between 1-10: ") 
    if user_number in valid_num: 
     user_number = int(user_number) 
     break 
    else: 
     print("Not valid!") 
if user_number == number: 
    print("GREAT! You guessed the right number! :)") 
else: 
    print("AWW! You guessed the wrong number, try again! :)") 
+1

'input()'は数値を返しません。 –

+0

イグナシオには正しい答えがありますが、正しい答えのセクションには決して通らないでしょう。等しい場合は、whileループを過ぎて終了します。 –

答えて

0

最後の行がinput()です。これは入力を受け取り、どこにでも格納するのではありません。それを保存するには、user_number = input()のようにuser_numberに割り当てる必要があります。また、(あなたがPython 3を使用していると仮定して)input()は、数値ではなく文字列を返しますので、決して等しくはありません。 user_number = int(input())

+0

また、あなたのコードから、whileループが 'user_number!= number'の間に実行されるので、" You got it right "という文は決して出力されません。 – Davit

+0

ええ、 :) ありがとうございました! – Naji

0

私はこのスニペットを使いたいと思っています。ユーザーが以下の "0"、 "1"、 "2"、 "3" 10 "でなければ、有効な入力を要求し続けます。

valid_num = [str(i) for i in range(11)] 

while True: 
    user_number = input("Enter a number between 1-10: ") 
    if user_number in valid_num: 
     user_number = int(user_number) 
     break 
    else: 
     print("Not valid!") 

は今、完全なコードに:

import random 

number = random.randint(0,10) 
user_number = None 
valid_num = [str(i) for i in range(11)] 

while user_number != number: 

    # Ask for user input 
    while True: 
     user_number = input("Enter a number between 1-10: ") 
     if user_number in valid_num: 
      user_number = int(user_number) 
      break 
     else: 
      print("Not valid!") 

    # Check if correct guess 
    if user_number == number: 
     print("GREAT! You guessed the right number! :)") 
    else: 
     print("AWW! You guessed the wrong number, try again! :)") 
+0

@マイコグッド私は助けることができました!これについての良いことは、あなたが何かをタイプすることができ、それが "壊れない"ということです。 –

0

これは、whileループは限り番号、あなたの入力はランダムな番号と異なるとして、それがないと言うので、あなたが正しいと言うことはありませんifループ。 whileループを削除しても問題ありません。 あなたはそれを維持したい場合は、冷たいままにしておきます。

0

あなたのループを使用すると、内部の質問をしていないので、あなたは内部の入力を入れても工夫しなければならない無限大になるということのほかに

(あなたが時間内に行けばインデントを運ぶ必要があります)実行ブロックを考案しなければなりません実行ブロックの開始と終了を知るコード

関連する問題