Seite 1 von 1

Warum diese Fehler?

Verfasst: Freitag 30. Januar 2004, 14:43
von lychrise
Könnten sie mir bitte erklären, warum bei a) ich eine fehlermeldung bekommen und bei b) keine.?
Wir wissen ja , dass die eingebaute Funktion raw_input() einen String zurück gibt.


a) >>> int("23.3")
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ValueError: invalid literal for int(): 23.3


b) >>> int(raw_input("23.3"))
23.3

Verfasst: Freitag 30. Januar 2004, 15:51
von Milan
Hi. Ja, raw_input gibt einen String zurück, ader stimmt. Aber die Syntax ist raw_input(prompt=""). Du gibst also einen String an, der ausgegeben wird und auf den eine Eingabe folgen soll. Genausogut könntest du raw_input("Gib etwas ein: ") schreiben. Danach muss der Nutzer interaktiv etwas eingeben und dann Enter drücken :wink:. Dies wird dann an int übergeben und aller Wahrscheinlichkeit nach gibt es dann auch einen Fehler.

int kann nämlich nur Intergertexte konvertieren, für deinen Fall müsstest du zuerst mit float eine Zahl bilden und diese dann mit int konvertieren oder nur den Teil bis zum Komma verwenden:

Code: Alles auswählen

a=int(float("23.3"))
b=int("23.3".split(".")[0])
Milan