2017-06-25 4 views
-2
import random 
user_name=("enter your name:") 
print("Note: The number lies between 1 to 100") 
random_nuber = random.randrange(1, 100, 1) 
user_number = input("enter your guess") 
dif= user_number - random_nuber 

while dif != 0: 
if dif > 0: 
    print("high") 
if dif < 0: 
    print("low") 
user_number = input("enter your guess now :") 
zu identifizieren

Ich bin ein Anfänger und jedes Mal, wenn ich während oder für die Schleife verwende, bekomme ich die gleiche Art von Fehler.kann jemand mir helfen, den Fehler in meinem Code

the error I get each time I run this code

+0

Ein Traceback ist * Text *, bitte kopieren und fügen Sie es als solche in Ihre Frage ein. Dann können wir indexieren (durchsuchbar machen), sehbehinderte Menschen können Ihnen helfen (da ihr Screenreader den Text lesen kann) und wir können Dateinamen kopieren und einfügen. –

+0

Der Fehler beschreibt es bereits, von der Eingabe erhalten Sie die Zeichenfolge user_number und random_number ist ein int. Um eins voneinander zu subtrahieren, müssen Sie diese Zeichenfolge in ein int – danielspaniol

Antwort

-1

input("enter your guess") ist eine Zeichenfolge zurückkehrt, wird so user_number - random_nuber nicht, da sie unterschiedliche Typen arbeiten - eine Nummer und einen String.

EDIT: Für jeden, der an Python2 gewöhnt ist, versucht dieser normalerweise, die Zeichenfolge auszuwerten - wenn Sie also eine Zahl eingeben, wird sie automatisch in eine Zahl umgewandelt. In Python3 (wie in der Frage) ist es immer ein String und muss daher konvertiert werden.

Sie benötigen die Nummer in eine Zeichenfolge zu konvertieren, entweder indem sie sie in eine ganze Zahl zu ändern, wenn Sie es machen: user_number = int(input("enter your guess")), oder indem sie es ändern, wenn Sie es im Betrieb benötigen: dif= int(user_number) - random_nuber

(Ich persönlich d empfiehlt die erste Option)

+0

Dankeschön umwandeln! Ich definierte dif = float (user_number) -random_number – Aierel

+0

es funktionierte und der Diff geht in die Schleife – Aierel

-2

Sie müssen den Unterschied innerhalb Ihrer while-Schleife neu berechnen. Also einfach dif= user_number - random_nuber in Ihrer while-Schleife wiederholen.

Verwandte Themen