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

To check your solution you need to sign in
Sign in to continue