現在、Zelleの本からPythonを学んでいて、摂氏から華氏に変換するコンバータを書きました。それは問題なく動作します:摂氏 - 華氏コンバータ(Zelle)を書くときに浮動小数点エラーが発生する
print("This program will convert Celsius to Fahrenheit")
c = eval(input("Input the temperature in Celsius: "))
for i in range(10):
f = c * (9/5) + 32
print(f)
Zelleは0から100の摂氏へのすべての10度を華氏に変換され、列のような互いの上に設定されているように、後でこれを適合させることが求められます。
print("This program will do 10 temperature conversions.")
c = [0,10,20,30,40,50,60,70,80,90,100]
f = c * (9/5) + 32
for i in range(1):
print(c)
for i in range(1):
print(f)
私は次のエラーを取得:あるように私はそれを残す場合は、エラー状態、
1):「ライン63、fourthprogramで F = Cの*(9 /私はこのようにそれを書きました5)+ 32 TypeError: 'float型'のnon-intでシーケンスを掛けることができません "
2)私が2のように(9/5)別の番号に変更すると、第4プログラムで f = c * 2 + 32 TypeError:リストに連結できるのは "int"ではない "
ここでは、私が理解できないことがいくつかあります。 Stack Overflowの他の答えによると、 "float"エラーは、文字列として扱われる変数に関連することがよくありますが、変数に数値が与えられているように見えます。他のエラー、私はChel 2以前のZelleによって与えられたオプションでリストを書き直そうとしましたが、それは助けにはなりません。
この浮動小数点エラー、具体的には他のより複雑な浮動小数点エラーについてはどうすれば対処できますか?
Zelleは彼のウェブサイトで回答を得ていますが、私のコードが書かれているように動作しない理由を知りたいと思います。
ありがとうございます。
'eval'は使用しないでください。浮動小数点値を期待しているなら、 'c = float(input(...))'を使ってください。入力が有効な浮動小数点リテラルでない場合は、ランダムなPython式を評価するのではなく、例外を扱うことができるように例外を発生させます。 – chepner