我想將輸入作爲列表,但將每個變量用作浮點。有沒有更簡單,使其他的這種轉換不是明確地像我這樣做下面,作爲一個列表與字符串定義的方式,我想,例如,添加而不是連擊:將列表轉換爲浮點變量
edges = input("Enter three edges: ").split(", ")
print("The perimeter is", (float(edges[0]) + float(edges[1]) + float(edges[2])))
我想將輸入作爲列表,但將每個變量用作浮點。有沒有更簡單,使其他的這種轉換不是明確地像我這樣做下面,作爲一個列表與字符串定義的方式,我想,例如,添加而不是連擊:將列表轉換爲浮點變量
edges = input("Enter three edges: ").split(", ")
print("The perimeter is", (float(edges[0]) + float(edges[1]) + float(edges[2])))
你可以使用map
來轉化爲float
秒,然後sum
他們總結:
print("The perimeter is", sum(map(float, edges)))
map
需要調用(float
這裏),並將其應用到的迭代(edges
這裏)的每一個元素。這將創建一個迭代器(可以迭代的東西),然後將其提供給sum
進行彙總。
然後你打印它。
你當然可以創建一個醜陋的小表情,結合他們全部放在一起,因爲input
和split
返回結果:
print("Sum is ", sum(map(float, input('Enter three edges ').split(","))))
,但不這樣做,它的醜陋。
地圖是你的朋友
sum(map(float, edges))
或發電機表達
sum(float(f) for f in edges)
玩得開心!
因爲你可能想邊緣僅作爲數字,你可以將它們轉換初期:
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