外れる入力があると、メッセージ付きで、
プログラムが終了する、世界です。
説明コードは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!!")
コードにあるように、101以上の数値を入力すると、
例外措置発動で、プログラムは最後まで行かず、直ちに終了します。
どんなときに役に立つのか、初心者には実感がわきません。
きのうからやってさっき、やっと動きました。
python2とpython3とで、骨子は何も変わっていないようですが、
細かい作法がはかなり違いますねえ。
選んだ教材がpython2(と思い込んでいますが、違う?)で、
python3に翻訳を試みることでなんとなく
わかってくることも、なくはないです。
コード内オレンジ色のコメント化されているところの
「#」を取ると、入力数値の総和も出ます。
教材の説明コードは、環境がないので、
動作するか、じぶんでは確かめていません。
教材なんだから、動くんだろうと思います。
例外措置にも、クラスというものがあるそうで、
ValueErrorのところの言葉は、何でもいいわけではない
そうです。エディタがpythonを認識するみたいで、
OverNumでは黒いままでした(使える場合は緑になります)。