2017-12-31 182 views
2

Hier ist mein Code für ein einfaches Münzwurf-Programm, ich bin neu bei Python.Wie wird die Zufallsfunktion in einer if-Anweisung in Python 3 verwendet?

Ich bekomme keine Fehler, aber das Programm wird nicht meine "if" -Anweisungen ausgeben, es springt direkt von Eingabe zu Eingabe.

Ich bin sicher, es gibt mehr intuitive Möglichkeiten, ein Münzwurf-Programm zu generieren, das war nur die Idee, die ich hatte.

Irgendwelche Gedanken?

import random 
print('--HEADS or TAILS--') 
print('Welcome Players!') 
print('[H=_Heads][T=_Tails]') 
print('Please ENTER {H_or_T}') 

input("Heads or Tails:") 
rand = (random.randint(1,2)) 

if rand=='1': 
    print("Heads Wins!") 
elif rand=='2': 
    print("Tails Wins!") 

input("Press ENTER to Exit") 

Here is a screenshot of my code.

+2

Sie schreiben: 'rand = random.randint (1,2) 'und vergleiche das mit Strings. Sehen Sie sich den Namen dieser Funktion an: 'randint'. Zufall __integer__! Warum vergleichst du _integers mit Strings_ ?? – ForceBru

Antwort

0

Wie der Name zwischen 1 und 2 (beide inklusive) randint bereits vermuten lässt, random.randint(1,2)kehrt eine ganze Zahl.

Wenn Sie 1 == '1' ausführen Sie eine int mit einem str vergleichen, die immer False ist. Sie sollten mit 1 anstelle von '1 vergleichen.

Sie können auch die elif fallen, und else verwenden, da wir wissen, dass es 2 sein wird, wenn es nicht 1 ist, so:

input("Heads or Tails:") 
rand = random.randint(1,2) # no brackets necessary 

if rand == 1: # use an integer, instead of a string: 
    print("Heads Wins!") 
else: # else instead of elif 
    print("Tails Wins!")
0

random.randint(1,2) gibt den Wert des Integer-Typ. random.randint(a,b) Dokument sagt deutlich, dass es:

Gibt eine Zufallszahl N, so dass ein < = N < = b.

Aber in Ihrem if vergleichen Sie es mit dem Wert von Zeichenfolge-Typ, und daher sind Ihre bedingten Anweisungen fehlgeschlagen.

Sie benötigen eine bedingte Anweisungen ändern:

#   v no quotes here 
if rand == 1: 
    print("Heads Wins!") 
#   v no quotes here 
elif rand == 2 : # Better to simply use `else` 
    print("Tails Wins!") 
+0

verstanden, danke! – maccode

Verwandte Themen