2016-09-15 108 views
0

我想將輸入作爲列表,但將每個變量用作浮點。有沒有更簡單,使其他的這種轉換不是明確地像我這樣做下面,作爲一個列表與字符串定義的方式,我想,例如,添加而不是連擊:將列表轉換爲浮點變量

edges = input("Enter three edges: ").split(", ") 
print("The perimeter is", (float(edges[0]) + float(edges[1]) + float(edges[2]))) 

回答

1

你可以使用map來轉化爲float秒,然後sum他們總結:

print("The perimeter is", sum(map(float, edges))) 

map需要調用(float這裏),並將其應用到的迭代(edges這裏)的每一個元素。這將創建一個迭代器(可以迭代的東西),然後將其提供給sum進行彙總。

然後你打印它。

你當然可以創建一個醜陋的小表情,結合他們全部放在一起,因爲inputsplit返回結果:

print("Sum is ", sum(map(float, input('Enter three edges ').split(",")))) 

,但不這樣做,它的醜陋

1

地圖是你的朋友

sum(map(float, edges)) 

或發電機表達

sum(float(f) for f in edges) 

玩得開心!

0

因爲你可能想邊緣僅作爲數字,你可以將它們轉換初期:

edges = [float(edge) for edge in input("Enter three edges: ").split(", ")] 
print("The perimeter is", sum(edges)) 

採樣運行:

Enter three edges: 1.2, 3.4, 5.6 
The perimeter is 10.2 
相關問題