Python blackjack Spiel, scheint zu ignorieren 'if' Aussage

Ich habe versucht, ein einfaches Blackjack-Spiel in Python zu machen und ich scheine zu stecken, mein Code ist wie folgt:

from random import choice def deck(): cards = range(1, 12) return choice(cards) def diack(): card1= deck() card2 = deck() hand = card1 + card2 print hand if hand < 21: print raw_input("Would you like to hit or stand?") if "hit": return hand + deck() elif "stand": return hand 

Wenn ich das laufe, scheint es für "hit" zu arbeiten, aber wenn ich in "stand" schreibe, scheint es auch "hit" zu sein. Wie Sie vielleicht schon jetzt sagen können, bin ich sehr neu für die Programmierung. Könnten Sie mir helfen, mich in die richtige Richtung zu stellen, wie ich mein Spiel machen kann (ich möchte so viel von meinem Code wie möglich verwenden).

2 Solutions collect form web for “Python blackjack Spiel, scheint zu ignorieren 'if' Aussage”

if "hit" nur Tests, wenn die Zeichenfolge "hit" existiert, und es tut. So wird die elif Anweisung nie ausgeführt.

Sie müssen die Benutzereingabe in einer Variablen erfassen und stattdessen dagegen testen:

 choice = raw_input("Would you like to hit or stand?") print choice if choice == "hit": return hand + deck() elif choice == "stand": return hand 

Angenommen, Sie bekommen die Einrückung rechts:

 print raw_input("Would you like to hit or stand?") if "hit": return hand + deck() elif "stand": return hand 

Ihr if ist nur zu überprüfen, ob die Zeichenfolge "hit" wahr ist. Alle nicht leeren Strings sind wahr, und "hit" ist nicht leer, also wird es immer gelingen.

Was du willst, ist so:

 cmd = raw_input("Would you like to hit or stand?") if cmd == "hit": return hand + deck() elif cmd == "stand": return hand 

Jetzt raw_input du, ob das Ergebnis von raw_input der String "hit" ist, was du willst.

  • Grammatische Liste Verbinden Sie sich in Python
  • ImportError: kann bei der Verwendung von Azure SDK keine Namenssitzung importieren
  • Warum dict (k = 4, z = 2) .update (dict (l = 1)) return keine in Python?
  • Pickle Queue Objekte in Python
  • AttributeError: 'Tupel' Objekt hat kein Attribut
  • Kivy: Prüfen Sie, ob eine Funktion bereits geplant ist
  • Mehrere numpy Version auf Mac OS X
  • Implementieren Sie die Rekursion mit einem rekursiven Anruf
  • Auto Starten eines Python-Skripts beim Booten (RPi)
  • Python-Skript von C ++ anrufen und seine Ausgabe verwenden
  • Skript mit Multiprocessing-Modul wird nicht beendet
  • Python ist die beste Programmiersprache der Welt.