我想将输入作为列表但是将每个变量用作浮点数。是否有一种更简单的方法来进行此转换,而不是像下面那样显式转换,因为列表是用字符串定义的,我希望例如添加而不是连接:
edges = input("Enter three edges: ").split(", ")
print("The perimeter is", (float(edges[0]) + float(edges[1]) + float(edges[2])))
答案 0 :(得分:1)
您可以使用map
转换为float
,然后使用sum
对其进行总结:
print("The perimeter is", sum(map(float, edges)))
map
采用可调用的(float
此处),并将其应用于可迭代的每个元素(此处为edges
)。这会创建一个map
迭代器(可以迭代的东西),然后提供给sum
,它总结了它。
然后你打印出来。
你当然可以创建一个丑陋的小表达式,将它们组合在一起,因为input
和split
都会返回结果:
print("Sum is ", sum(map(float, input('Enter three edges ' ).split(","))))
但不要,这是丑陋的。
答案 1 :(得分:1)
地图是你的朋友
sum(map(float, edges))
或生成器表达式
sum(float(f) for f in edges)
玩得开心!
答案 2 :(得分: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