2017-10-25 2 views
-4
import random 

def roll(sides=6): 
    num_rolled=randomint(1,sides) 
    return num_rolled 

def dice_game(): 
    sides = 6 
    while True: 
     roll_again = input("Ready to roll? Enter=ROLL. Q=Quit.") 
     if roll_again.lower() != "q": 
      num_rolled = roll(sides) 
      print("You rolled a ", num_rolled) 
     else: 
      rolling = False 
    print("Thanks for playing.") 
dice_game() 

, wenn ich versuche es über die Befehlszeile i auf meinem lokalen Rechner zu laufen erhalten folgende Fehlermeldung:Variable ist nicht im Würfelspiel definiert

Traceback (most recent call last): 

File "SimpleDiceRollingSimulation.py", line 17, in <module> 
    dice_game() 

File "SimpleDiceRollingSimulation.py", line 10, in dice_game 
    roll_again = input("Ready to roll? Enter=ROLL. Q=Quit.") 

File "<string>", line 1, in <module> 
NameError: name 'q' is not defined 
+7

Wenn Sie Wenn Sie Python 2 verwenden, sollten Sie 'raw_input', nicht' input' verwenden. – khelwood

+0

Außerdem sollte es 'random.randint (1, sides)' zum Generieren von Zufallszahlen sein. – yash

+0

Mehrere Probleme. 'randomint' sollte' random.randint' sein. Ihre Schleife ist unendlich, Sie setzen 'rolling' auf' False', aber testen Sie sie nie, vielleicht sollten Sie nur'brechen', wenn der Benutzer "q" eingibt. – cdarke

Antwort

0

Versuchen Sie, diese

import random 

def roll(sides=6): 
    num_rolled=random.randint(1,sides) 
    return num_rolled 

def dice_game(): 
    sides = 6 
    while True: 
     roll_again = input("Ready to roll? Enter=ROLL. Q=Quit.") 
     if str(roll_again).lower() != "q": 
      num_rolled = roll(sides) 
      print("You rolled a ", num_rolled) 
     else: 
      #rolling = False 
      break 
    print("Thanks for playing.") 
dice_game() 
+0

Und 'raw_input()' wenn die aktuelle Python-Version 2+ statt 3+ ist. – LenglBoy

+0

Unendlich Schleife, wird nicht beendet, wenn Benutzer "q" eingibt. Die Symptome des gemeldeten Fehlers (Name 'q' ist nicht definiert) stimmen mit dem kommentierten Szenario überein, in dem Python 2 verwendet wird, auf das diese Antwort nicht anspricht. – cdarke

+1

@cdarke: Hinzugefügt Pause in sonst, sollte brechen, während einmal Benutzer q eingibt –

Verwandte Themen