2017-02-20 9 views
1

мне нужно принимать на входе, как следующее:Python3 - Несколько входов

Enter two floating point values: 54.99, 32.3 

В одной строке, я хочу взять в оба значения и сохранить их в виде числа с плавающей точкой, но я был не в состоянии. До сих пор у меня есть следующее:

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

В этой же строке я хочу, чтобы их отличить от чисел с плавающей запятой. Как это можно сделать?

Я не хочу, чтобы это сделать:

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

ответ

3

Я не уверен, если есть лучший способ, но вы можете сделать это с пониманием списка в одной строке:

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

Другой вариант, который вы можете сделать это с помощью функции карты:

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

Обратите внимание, что в Python 3.x вторая версия возвращает объект карты, а не список.

Хотя, вы можете преобразовать его в список, выполнив:

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

Спасибо, что это именно то, что я искал. – Hatefiend

+0

@Hatefiend, Твой приветствую, я добавил еще один вариант, который вы можете сделать при ответе. –

+1

Вам не нужна лямбда на карте, вы можете просто сделать: 'val1, val2 = map (float, raw_input (" whatever "). Split (", ")' – user3080953

Смежные вопросы