入力した値の二乗根を出力し、数値以外を入力すると「ーは数値に変換できません」といったメッセージを出すコードを書いたつもりがうまくいきません。おそらくtry構文の箇所が間違っていると思います。どこが誤っているかご指摘願いたいです。
python
1x = float(input("数値を入力して下さい>>")) 2renew = x 3 4while True: 5 r1 = renew 6 r2 = x/r1 7 renew = (r1+r2)/2 8 print(renew) 9 diff = r1-r2 10 diff = abs(diff) 11 if diff <= 1.0E-6: 12 break 13 print(renew) 14 15 try: 16 x = float(input("数値を入力して下さい")) 17 except ValueError: 18 print(x,"は数値に変換できません") 19 continue 20 except: 21 print("予期せぬエラーです") 22 continue 23 24 print(renew)
コードは「コードの挿入」で記入してください。
ご指摘ありがとうございます。修正致しました。
try は使わずに、if文を使って、入力された値が数値ではない場合はエラーメッセージを出力するようにしてみてはいかがでしょうか?
また、mathモジュールを使えば平方根を返すsqrt()関数が使えます。
回答ありがとうございます。if文を使えばできそうな気がします。やってみます。
tryを学習したばかりでそれを使おうと思ったのですが、やはりこの場合if文の方が適当なのでしょうか?
tryを使いたい場合はwhileの前の部分を下記にしてみてください。
```
x = input("数値を入力して下さい>>")
try:
x_num = float(x)
except ValueError as e:
print(x, "は数値に変換できません")
except:
print("予期せぬエラーです")
```
本当にありがとうございます。
無事想定したコードを書くことができました。