return文の後の処理は行われない
関数には複数の
return
文が含まれることがあります。if
文である値を返し、else
文で別の値を返すことができます。重要なのは、関数は値を返すとすぐにその実行を停止するということです。関数がreturn
文に到達するとすぐに、プログラムは関数が呼び出された場所から実行を続けます。def process_only_even(n):
if n % 2 == 1:
return 'This was an odd number!'
print('Very interesting number ...', n)
n += 18
print('Adding 18 will result in:', n)
return n
print(process_only_even(5))
# This was an odd number!
print(process_only_even(6))
# Very interesting number ... 6
# Adding 18 will result in: 24
# 24
したがって、関数は一度だけ値を返し、プログラムは関数が呼び出された地点から実行を続けます。
特に、ループの中で値を返すことができる場合に便利です。そうすると、ループと関数の両方がその時点で停止し、プログラムは関数が呼び出された場所に戻ります。そのような場合、
break
を使う必要がなくなります。 チャレンジ
ある数が偶数で、その下2桁の合計が7である場合、その数を「特別な数」と呼びます。
is_special(n)
という関数を実装してください。もしn
が特別な数であればTrue
を返し、そうでなければFalse
を返します。数が「特別な数」でない場合、関数は値を返す前にNot special
も出力する必要があります。入力は単一の整数
n
からなります(100 ≤ n ≤ )。プログラムは、もし
n
が特別な数であればYes
を出力し、そうでなければNo
を出力します。No
を出力する場合、No
の前にNot special
も出力する必要があります。入力 | 出力 |
116 | Yes |
117 | Not special
No |
Constraints
Time limit: 2 seconds
Memory limit: 512 MB
Output limit: 1 MB