Seite 1 von 1

Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 09:57
von MalcolmYoung
Hi Leute,

nach einiger Zeit wollte ich wieder in die Python-Programmierung einsteigen und habe zum Einstieg folgendes Programm geschrieben, es sollte eig. von 1 bis zu vom Benutzer angegebenen Zahl zählen und bei der Eingabe einer
Nicht-Ganzzahl wieder zum Anfang springen und die Meldung "Bitte Zahl angeben" ausgeben.

Funktioniert alles super nur ist der Output immer:

Bitte Zahl eingeben:
0


Neben der 0 kann man dann normal den Input angeben...
Warum wird die 0 angezeigt??
Hier der Syntax:

Code: Alles auswählen

while 1==1:
        print("Zahl eingeben:")

    try:
            p=input(int());
            for i in range(1, p+1):
                print(i);
    except:
            print("Zahl angeben!");
        

Re: Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 10:10
von sma
1. Mach die ";" weg.
2. Korrigiere die Einrückungen
3. Was soll deiner Meinung nach "input(int())" machen? Probiere mal aus, was "int()" wohl ausgibt und lies dann nach, was passiert, wenn du das Ergebnis von "int()" an "input" übergibst. Dann wunderst du dich wahrscheinlich nicht mehr, wo die "0" herkommt. Und dann fällt bestimmt auch der Groschen, warum "p" nicht dass enthält, was du glaubst und warum daher die Schleife nicht funktioniert.
4. Aus den Klammern hinter "print" schließe ich, dass du Python 3 benutzt. Beachte, falls du ein Beispiel aus einem Lehrbuch für Python 2.x abgetippt hast, dass sich auch die Semantik von "input" bei Python 3 geändert hat.
5. Einfach nur "except" ist schlechter Stil. Du erwartest einen ValueError, also fange auch nur den ab.

Stefan

Re: Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 10:32
von MalcolmYoung
ok


Nein habe das nirgends abgetippt...

die ";" sind echt hirnverbrannt (PHP-Verblödung)^^.

die Schleife funktioniert ja!!! Der die einrückung ist im originalsource auch richtig!!


danke vorerst mal

Re: Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 10:38
von MalcolmYoung
Habs!!

Also so die funktionierts jetzt

Code: Alles auswählen

while 1==1:
    print("Zahl eingeben:")

    try:
        p=int(input())
        for i in range(1, p+1):
            print(i)
    except:
        print("Zahl angeben!")
        
Das mit valueerror mach ich noch zu verfeinern.

Ty Euer Mal

Re: Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 10:57
von sma
Wäre nicht `while True` lesbarer?

Stefan

Re: Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 12:03
von Xynon1
Zudem würde auch "while 1:" reichen, da es ja auch True ist.

Ich bevorzuge, wenn ich schon eine Endlosschleife einbaue auch "while True:".

Re: Nach einiger Zeit wieder Python- HILFE!!

Verfasst: Sonntag 24. Oktober 2010, 13:26
von Hyperion
Außerdem sollte man immer nur konkrete Exceptions abfangen. In diesem Falle also wohl einen ValueError.