Fehler im Script

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Hougou
User
Beiträge: 11
Registriert: Mittwoch 19. April 2017, 21:31

Kann mir jemand helfen?

Code: Alles auswählen

import random
#Variablen
Figur = ['Schere','Stein','Papier',]
d = True
#Einleitung>
print('<~~~~~~~~~~~~~~~~~~~~~~~~~~~>')
print('Schere<////>Stein<\\\\\>Paper')
print('<***************************>')
while True:
     f1 = 0
     f1 = int(input('Bitte waehlen sie ihre Figur aus:Schere[0],Stein[1],Papier[2]'))
     f2 = Figur(f1 - 1)
     while not(1,3):
         comp = Figur(random.randint(0,2)
         if f2 == comp:
             print('Unentschieden!!')
         else:
           #Schere vs Stein / Stein vs Schere
              if f2 == 'Schere':
                   if comp == 'Stein':
                       print('Verloren! Computer wählte', comp)
                   else:
                       if f2 == 'Stein':
                           if comp == 'Schere':
                                print('Gewonnen!! Computer wählte', comp)
                           else:
                           #ScherePapier
                               if f2 == 'Schere':
                                    if comp == 'Papier':
                                        print('Gewonnen, Computer wählte',comp)
                                    else:
                                        if f2 == 'Papier':
                                            if comp == 'Schere':
                                                print('Verloren! Computer wählte',comp)
                                            else:
                                          #SteinPapier  
                                                if f2 == 'Stein':
                                                    if comp == 'Papier':
                                                        print('Verloren! Computer wählte',comp)
                                                    else:
                                                         if f2 == 'Papier':
                                                             if comp == 'Stein':
                                                                 print('Gewonnen!! Computer wählte',comp)
                                                                 #restart
                                                                 nochmal = ''
                                                                 l = input('Nochmal? Wenn ja gebe “y“ ein, wenn nich dann gebe “n“ ein ')
                                                                 while nochmal not ('y', 'n'):
                                                                     if l == 'n':
                                                                     d = false
Zuletzt geändert von Anonymous am Montag 22. Mai 2017, 21:26, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@Hougou: Du willst Dich ganz dringend mit ``elif`` beschäftigen. Und wenn das sinnvoll verbaut wurde, beschreiben wo denn das Problem liegt. Wenn es eine Ausnahme gibt, dann zeig den Traceback 1:1. Falls sich das Programm anders verhält als Du erwartest, beschreibe wo es sich anders verhält, und wie das verhalten von Deinen Erwartungen abweicht, und warum Du etwas anderes erwartet hast was tatsächlich passiert.
Sirius3
User
Beiträge: 17712
Registriert: Sonntag 21. Oktober 2012, 17:20

@Hougou: Klammern, die man aufmacht, sollte man auch wieder zumachen. "not" ist ein unärer und kein binärer Operator, wenn Du "in" nicht kennst, mußt Du die Bedingung eben anders ausdrücken. Einen if-Block muß man einrücken. Wenn Du diese ganzen Syntaxfehler beseitigt hast, kommen noch etliche semantische Fehler, einige mit Fehlermeldung, die mußt Du dann beheben, bei anderen solltest Du das Programm von Hand Schritt für Schritt durchgehen und prüfen, ob das, was Du denkst, dass passiert auch wirklich so vom Programm gemacht wird.

Für die Zukunft: es macht keinen Sinn, zig Zeilen Code zu schreiben, ohne den bereits geschriebenen zu testen. Baue Deine Programme Stück für Stück auf und prüfe in keinen Teilen, ob das Programm das von Dir gewünschte tut.
Antworten