Ich mache ein Python-Programm, das eine Abenteuerspiel-Sache durch ein Spukhaus ist. Eines der großen Dinge darin ist eine Liste mit dem Namen owned_items
. Dadurch werden Elemente, die durch Strings wie "Schachtel mit Streichhölzern" oder "Fackel" dargestellt werden, daran angehängt, wenn sie diese im Haus finden oder ihnen beim Start von random.choice
gegeben werden. Manchmal, wenn sie mit einer Situation konfrontiert werden, hängt ihre Auswahl davon ab, ob sie einen bestimmten Gegenstand haben oder nicht.Python: Drucken in If-Anweisungen nicht ausgeführt
Mein Code:
#bullets is the variable for pistol ammo. During my testing of this function, it is at 5 when it should start
bullets=5
owned_items=[]
ronald_items=["a glass bottle", "a pistol", "a torch", "a small glass of oil", "a box of matches", "a can of spray paint", "a small knife", "a pair of surgical gloves", "a blessed amulet"]
owned_items.append(random.choice(ronald_items))
ronald_items.remove(owned_items[0]
owned_items.append(random.choice(ronald_items))
ronald_items.remove(owned_items[1])
#This part is in the actual definition where the problem appears when it should run
def skeleton_choice():
if "a glass bottle" in owned_items:
print('type "glass bottle" to attack the skeletons with that bottle')
if "a pistol" in owned_items and bullets>1:
print('type "shoot" to try firing your pistol at the skeletons')
if "a small knife" in owned_items:
print('type "small knife" to use your small knife against the skeletons')
if "a kitchen knife" in owned_items:
print('Type "kitchen knife" to use your kitchen knife against the skeletons')
if "a blessed amulet" in owned_items:
print('Type "amulet" to use the blessed amulet to make this a fairer fight')
print('Type "hands" to just fight the skeletons with your body')
print('Type "run" to try and get away from the skeletons')
Auch wenn ich weiß, dass ich 3 der Elemente in diese haben, wenn Aussagen, keine der Ausdrucke bis zeigen. Ich benutze ifs anstatt elifs und sonst noch, weil ich will, dass es den Druck für alles zeigt, was sie haben, nicht nur für eins. Zum Beispiel, wenn sie eine Glasflasche und ein Küchenmesser haben, möchte ich ihnen die Druckanweisungen für die Flasche und das Messer geben.
Wenn dies Ihr vollständiger Code ist und der Einrückungsfehler unter 'def skeleton_choice()' ignoriert wird, rufen Sie die Funktion nicht auf, so dass sie nicht ausgeführt wird. – roganjosh
aussehen wie Ihre Funktion hat eine falsche Absicht und es gibt keine Eingabe dafür wie 'def skeleton_choice (Eingabe)' – Bryan
Ich weiß nicht, ob es etwas mit der Frage zu tun hat oder meine fehlgeschlagenen Kopieren und Einfügen, aber die ifs sind im Einklang mit der sk des Skeletts, nicht bei def. Es ist nichts falsch mit dem Eindruck, den ich sehe. –