2017-11-03 11 views
-1

を浮遊する1変換:入力複数文字列値と次のコードで

a, b, c = input("A, B, C: ").split() 

float(a) 

print(a) 

abが文字列であり、cは整数、floatなければなりません。文字列から文字列をfloatに変換しようとすると、次のようになります。 0.9、私はこのメッセージを受け取ります:

ValueError: could not convert string to float: '0.9,' 

私は間違っていますか?または私は何かを逃していますか?

+1

はprint文の中でそれをキャストしてみなので、 'プリント(フロート(A))' – josephmbustamante

+1

入力がどのように見えるのでしょうか?文字列に引用符を入力しますか?カンマを含めることはできますか? –

答えて

1

最初のことは@cosinepenguinのように、変換の結果を他の変数に保存する必要があります。

第2の点は、str.splitメソッドは、セパレータとしてスペースを使用して入力を単語で分割することです。あなたが入力関数に入れている "A、B、C:"文字列があれば、値を "0.9、foo、8"としたいかもしれません。あなたがセパレータとしてカンマを使用する必要がある場合:

a, b, c = input("A, B, C: ").split(",") 
2

何をやっていることは例えば、コマンドライン上の値の間にカンマを入れているように見えます:

0.9, text, 10 

ここでは、で終わるだろう「0.9、」変数a、ない「0.9に"あなたは期待しています。

だから、あなたの代わりに、コマンドラインでこれを入力する必要があります。

0.9 text 10 
+0

ああ!あなたが正しいです!しかし、どのようにカンマでbとcを入力しても、浮動小数点数を得ることができますか? –

+0

@LeviAckerman rstripを使用して末尾のカンマを削除する 'float(a.rstrip( '、'))' –

0

あなたはsplitあなたの区切り文字列を供給する必要があります。デフォルトではスペースになりますが、データにはスペースカンマが付きます。

a, b, c = input("A, B, C: ").split(", ") 
関連する問題