2016-09-15 7 views
0

私はリストとして入力を行いたいが、各変数はフロートとして使いたい。リストは文字列で定義されているように私には、以下行い明示のようにする以外に、この変換を行うための簡単な方法があり、私は、例えば、CONCATENATEではなく、追加したい:リストをフロート変数に変換する

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ここ)のすべての要素に適用します。これにより、mapイテレータ(反復可能なもの)が作成され、次にそれが合計されて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