Ergebnis 1 bis 10 von 10
  1. #1
    Bad Times Virus Avatar von Rapter
    Registriert seit
    15.07.2008
    Beiträge
    567

    Standard Unexpected indent

    Hallo.
    Ich arbeite gerade das Buch "Einstieg in Python 3" durch.
    Ich habe gerade einen Code vom Buch abgetippt um ihn zu vertiefen.
    Dieser lautet:

    Code:
    #Modul random import
    import random
    
    #Zufallsgenerator initialisieren
    random.seed()
    
    #Zufallswerte
    
    a = random.randint(1,10)
    b = random.randint(1,10)
    c = a + b
    
    print("Die Aufgabe lautet:", a, "+", b)
    
    for i in 1,2,3,4:
        #Aufgabe
        print("Bitte eine Zahl eingeben")
        z = input()
        zahl = int(z)
    
    #Verzweigung
    if zahl == c:
        print(Zahl, "ist richtig")
         break
    
    else:
        print(zahl,"ist falsch")
        
    #Ende
    print("Ergebnis:", c)
        
    input()
    Führe ich den Code jetzt aus, schreibt er "unexpected indent" und zwar bei break.
    Wenn ich break dann verschiebe, schreibt Python "break outside loop".

    Kann mir einer sagen wo genau der Fehler liegt?
    Danke!


  2. #2
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    Hey,

    Ich kann Python zwar nicht, aber was passiert wenn du break einfach weglässt?

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  3. #3
    Bad Times Virus Avatar von Rapter
    Registriert seit
    15.07.2008
    Beiträge
    567

    Standard

    Bei dem Spiel hat man 4 mal die Möglichkeit, die Rechnung richtig zu beantworten.
    Wenn ich die Antwort aber schon beim ersten Mal richtig eingebe, brauch ich ja die 3 anderen Versuche nicht mehr und das Spiel kann abbrechen.
    Break bentötigt man zum abbrechen und ist somit für den Ablauf wichtig.

    Lass ich break weg, hab ich wie schon gesagt 4 mal die Möglichkeit die Rechnung zu beantworten. Das Programm funktioniert dann aber..


  4. #4
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Code:
    if zahl == c:
            print(Zahl, "ist richtig")
            break
    Python erkennt den If-Block ja am Einrücken (to indent = einrücken).
    In deinem Source ist noch ein Leerzeichen zuviel vor break.
    Das bringt Python durcheinander.

    Hoffe es klappt...

    EDIT:
    und das ganze If-Zeugs muss auf die Höhe der Schleife.
    Code:
    for i in 1,2,3,4:
        #Aufgabe
        print("Bitte eine Zahl eingeben")
        z = input()
        zahl = int(z)
    
        #Verzweigung
        if zahl == c:
            print(Zahl, "ist richtig")
            break
    
        else:
            print(zahl,"ist falsch")
    Geändert von blackberry (24.07.2010 um 13:58 Uhr)

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

  5. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Rapter (24.07.2010)

  6. #5
    Bad Times Virus Avatar von Rapter
    Registriert seit
    15.07.2008
    Beiträge
    567

    Standard

    Danke
    Das hat geklappt.


  7. #6
    print<>=~y/0-9//,$/ Avatar von 0x30
    Registriert seit
    01.02.2010
    Beiträge
    468

    Standard

    Genau aus diesem Grund würde ich die Finger von dieser Sprache lassen
    Code:
    $_=<>;map$-+=$_,/./g;print$-,$/
    +0x60

  8. #7
    Bad Times Virus Avatar von Rapter
    Registriert seit
    15.07.2008
    Beiträge
    567

    Standard

    Es wird bestimmt bei den meisten Sprachen einen "Grund" geben die Finger davon zu lassen.

    Ich find Python nicht schlecht. Man macht schnelle Fortschritte und kann die Sprache zu vielen Dingen einsetzen. Nur weil mal was nicht geklappt hat, brauch ich ja nicht gleich die Finger von lassen :p

    Aber lassen wir's, sonst wird's sowieso nur eine "Welche Sprache ist die Bessere?" Diskussion.


  9. #8
    print&lt;&gt;=~y/0-9//,$/ Avatar von 0x30
    Registriert seit
    01.02.2010
    Beiträge
    468

    Standard

    Ich meine eher das es auf das Einrücken ankommt... In keiner andere Sprache ist das relevant.
    Code:
    $_=<>;map$-+=$_,/./g;print$-,$/
    +0x60

  10. #9
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    Miranda und Haskell nutzen auch Indentation zur Codestrukturierung
    Ein anständiger Editor (vim, emacs oder Eclipse) erledigt das Einrücken eher automatisch. Und man braucht nicht ständig Java/C mäßig irgenwelche Klammern und Semicolons zu setzen (was entweder zu schlechter Lesbarkeit oder "leerzeilen" nur mit "{"/"}" führt). D.h der Code wird kompakter und i.R deutlich lesbarer .
    Eigentlich sollte es kein Problem sein, seinen Code anständig zu Strukturieren, da die Einrückpraxis i.R auch in anderen Sprachen angeraten wird:
    http://www.possibility.com/Cpp/CppCo...rd.html#indent
    aber manche müssen halt zu ihrem Glück gezwungen werden
    Geändert von EBFE (24.07.2010 um 17:26 Uhr)
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

  11. #10
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    Obwohl ich kein Python kann muss ich doch sagen, dass ich dieses "erzwungene" Einrücken doch für sehr gut befinde.
    Warum sollte schnell klar werden, wenn man in die C/C++ Section geht... was machne Leute einem da vorwerfen und erwarten, dass man das korrigiert, wenn jede einzelne Zeile völlig wahrlos durcheinandergerückt ist und auch mehrere Anweisungen in eine Zeile geklatscht werden...

    Ansonsten: Problem gelöst:
    /closed

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 05.06.2010, 11:12
  2. The Unexpected SQL Injection
    Von Sombra Negra im Forum Biete Tutorials
    Antworten: 0
    Letzter Beitrag: 29.10.2008, 19:35

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •