2017-02-20 1 views
1

Ich brauche in Eingang wie folgt zu übernehmen:Python3 - Mehrere Eingänge

Enter two floating point values: 54.99, 32.3 

In einer Zeile, die ich in beiden Werten nehmen wollen und sie als Gleitkommazahl speichern aber ich habe zu unfähig. Bisher habe ich folgendes:

val1, val2 = input("Enter two floating point values: ").split(",") 

In derselben Zeile möchte ich sie auf Fließkommazahlen umwandeln. Wie kann das gemacht werden?

Ich will nicht, dies zu tun:

val1, val2 = input("Enter two floating point values: ").split(",") 
val1 = float(val1) 
val2 = float(val2) 

Antwort

3

Ich bin nicht sicher, ob ob es eine bessere Art und Weise ist, aber Sie können in einer Zeile mit Liste Verständnis tun:

val1, val2 = [float(item) for item in input("Enter two floating point values: ").split(",")] 

eine weitere Option, die Sie tun können, ist durch die Karte Funktion:

val1, val2 = map(float(input("Enter two floating point values: ").split(",")) 

Beachten Sie, dass in Python die zweite Version 3.x gibt ein Kartenobjekt statt einer Liste.

Obwohl, können Sie es konvertieren, indem Sie zur Liste:

val1, val2 = list(map(float,input("Enter two floating point values: ").split(","))) 
+0

Danke, das ist genau das, was ich suchte. – Hatefiend

+0

@HateFiend, Your'e welcome, Ich habe eine weitere Option hinzugefügt, die Sie bei der Antwort tun können. –

+1

Sie brauchen nicht Lambda in der Karte, können Sie einfach tun: 'val1, val2 = Karte (float, raw_input (" was auch immer "). Split (", ")' – user3080953