Warum diese Fehler?

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
lychrise
User
Beiträge: 1
Registriert: Mittwoch 21. Januar 2004, 21:50
Kontaktdaten:

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
Milan
User
Beiträge: 1078
Registriert: Mittwoch 16. Oktober 2002, 20:52

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
Antworten