Nessuna esecuzione dopo return

Una funzione può avere più istruzioni di return. Può restituire un valore in un'istruzione if e un altro valore in un'istruzione else. È importante ricordare che la funzione interrompe la sua esecuzione non appena restituisce un valore. Appena la funzione raggiunge un'istruzione return, il programma continua la sua esecuzione dal punto in cui la funzione è stata chiamata:
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
Quindi, la funzione restituisce solo una volta, e il programma continua la sua esecuzione dal punto in cui la funzione è stata chiamata.
Questo è particolarmente utile se puoi restituire un valore in un ciclo; in questo modo, sia il ciclo che la funzione si fermeranno a quel punto e il programma tornerà al punto da cui la funzione è stata chiamata. Possiamo evitare di usare break in cicli simili.

Sfida

Chiameremo un numero “speciale” se è pari e la somma delle sue ultime due cifre è 7.
Implementa una funzione is_special(n) che restituisca True se n è speciale e False altrimenti. Se il numero non è “speciale”, la funzione dovrebbe anche stampare Not special nell'output prima di restituire.
L'input contiene un singolo intero n (100 ≤ n ≤ ).
Il programma dovrebbe stampare Yes se n è speciale e No altrimenti. Nel caso in cui stampi No, il programma dovrebbe anche stampare Not special prima di No.
Input
Output
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