問題
n に整数を入力として受け取って、
- 20と50の間(20も50も範囲に含む)にあったら True
- そうでなかったら False
と表示するプログラムを作ってください。
解答
解説
この問題のポイントは次の3点です。
- 標準入力
- 例外処理
- if文
順番に見ていきましょう。
標準入力
値や文字などの入力を受け付けて、その入力値に対して処理をして、その結果を表示させる。
何かの課題だったり、競プロと呼ばれる競技プログラミングなどでよく見かけますパターンですね。
値や文字などの入力を受け付けることを「標準入力」と言います。
つまり、プログラムの中には書いてない値を使って、処理をすることになります。
Pythonにおける標準入力はinput()
関数を使います。
引数には文字列を指定でき、値の入力待ちになる直前にその文字列が表示されるので、入力して欲しい値についての説明を入れることが多いです。
例えば、2つの数値を入力して、その和を出力するプログラムはこんな感じなります。
value1 = input('1つ目の値を入力してください>')
value1 = int(value1)
value2 = input('2つ目の値を入力してください>')
value2 = int(value2)
plus_two_value = value1 + value2
print(f'2つの値の和は{plus_two_value}です。')
上記の実行結果
input()
関数を使う際に1つ注意しておくことがあります。
それは、入力されたものは文字列(str型)になります。
そのため、上記ではint()
関数を使って文字列からint型に変換しています。
この1点だけ、覚えておいてください。
例外処理
次に例外処理です。
if文に似ているな〜と思ったりしますが、例外処理はエラーが起きた時にどういう処理をさせたいかを書きます。
プログラムの実行中にエラー、想定していないことが起きると、本来はそこで処理は止まってしまいます。
エラーが起きた時に何か処理をさせたい場合に例外処理を使います。
不具合の原因を特定したい時や、想定されるエラーがある時などに使うことが多いです。
今回は、標準入力を使用して、整数を入力として受け取るプログラムを書きましたが、整数以外が入力されることが想定されるため、整数以外が入力された場合の処理を書くために例外処理を使いました。
Python の例外処理はtry
、except
を使います。
例えば、今回のように標準入力で整数を受け付けたい場合に、整数に変換できない入力があり、そのことを出力するには次のように書きます。
value1 = input('整数を入力してください>')
try:
value1 = int(value1)
except:
print('整数以外が入力されました。')
else:
print(f'入力された値は{value1}です。')
上記の実行結果
try
の中に書いた処理でエラーが発生した場合、except
の処理が実行され、エラーが発生しなかった場合はelse
の処理が実行されます。else
は書かないでも構いません。
if
、elif
、else
に似てますよね。
except
ではエラーの種類を限定することもできます。
int()
関数で想定されるのはValueError
のため、ValueError
に限定することもできます。
if文
if
文については次の記事を参考にしてください。
if
、elif
、else
を使った簡単な例を載せておきます。
sample_list = [9, 101, 67]
for value in sample_list:
if value > 100:
print(f'{value} は100より大きいです。')
elif 10 < value <= 100:
print(f'{value} は10より大きく、100以下です。')
else:
print(f'{value} は10以下です。')
print('=-=-=-=-=-=-=-=-=-=-=')
上記の実行結果
9 は10以下です。
=-=-=-=-=-=-=-=-=-=-=
101 は100より大きいです。
=-=-=-=-=-=-=-=-=-=-=
67 は10より大きく、100以下です。
=-=-=-=-=-=-=-=-=-=-=
Google Colaboratory
今回のコードは Google Colaboratory での動作を確認しています。
環境構築の不要な Google が提供している Webサービスなので、Python を学習中の方にはオススメです。
おわりに
今後も具体的な問題・課題の解説記事を増やしていきたいと思っています。
解説して欲しい問題・課題がありましたら、お問い合わせフォームからご連絡ください。
以上です。
コメント