2022年03月27日

例外処理というそうです。python日記-37

ある決まりを設定して、その決まりから
外れる入力があると、メッセージ付きで、
プログラムが終了する、世界です。
説明コードはpython2で下記のごとくでした。
#!/usr/bin/env python

try:
num_of_input = input("Input number of values: ")
i = 0
vals = []
while i < num_of_input:
val = input("Input value #" + `i` + ": ")
if val >= 100:
raise "TooBig"
vals.append(val)
i = i + 1
print "The following values are user inputs:"
for val in vals:
print val
except "TooBig":
print "The value is too big!!"

「try:」の説明ってなんにもないんですよね。
とりあえず、いつものようにpython3で動作するように
翻訳することから、だったのですが、なかなか
動きませんでした。やっとこさ動作したのが下記。
ファイルpractice31.pyとして、
#!/usr/bin/env python3

try:
num_of_input = input("Input number of values: ")
zz = int(num_of_input)
i = 0
vals = []
while i < zz:
val = int(input("Input value #" + str(i) + ": "))
if val >= 100:
raise ValueError("TooBig")
vals.append(val)
i = i + 1
print("The following values are user inputs:")
for val in vals:
print(val)
#print("sum total: ",sum(vals))
except ValueError:
print("The value is too big!!")

raise_except-2.jpg

コードにあるように、101以上の数値を入力すると、
例外措置発動で、プログラムは最後まで行かず、直ちに終了します。

どんなときに役に立つのか、初心者には実感がわきません。
きのうからやってさっき、やっと動きました。
python2とpython3とで、骨子は何も変わっていないようですが、
細かい作法がはかなり違いますねえ。
選んだ教材がpython2(と思い込んでいますが、違う?)で、
python3に翻訳を試みることでなんとなく
わかってくることも、なくはないです。
コード内オレンジ色のコメント化されているところの
「#」を取ると、入力数値の総和も出ます。

教材の説明コードは、環境がないので、
動作するか、じぶんでは確かめていません。
教材なんだから、動くんだろうと思います。

例外措置にも、クラスというものがあるそうで、
ValueErrorのところの言葉は、何でもいいわけではない
そうです。エディタがpythonを認識するみたいで、
OverNumでは黒いままでした(使える場合は緑になります)。


posted by ブログ開設者 at 22:08| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

※ブログオーナーが承認したコメントのみ表示されます。