Funzioni senza argomenti

Abbiamo già lavorato con le funzioni in Python. In effetti, il nostro primo programma ha già utilizzato una funzione. print() è in realtà una funzione. min(), max(), input(), sorted(), e tutti gli altri comandi con le parentesi tonde sono tutte funzioni.
Le funzioni eseguono diversi comandi e in alcuni casi restituiscono un risultato. min() calcola il minimo tra diversi valori e restituisce quel valore. print(), d'altra parte, stampa un valore in output.
Le funzioni sono particolarmente utili per eliminare codice ripetitivo. Possiamo anche definire le nostre funzioni personalizzate. Immagina di voler stampare un certo oggetto 3 volte e fare qualcos'altro nel mezzo:
print('*')
print('##')
print('***')
print('####')
print('*****')

n = int(input())
print('~' * n)

print('*')
print('##')
print('***')
print('####')
print('*****')

name = input()
print(f'Hi, {name}')

print('*')
print('##')
print('***')
print('####')
print('*****')
def print_triangle():
    print('*')
    print('##')
    print('***')
    print('####')
    print('*****')

print_triangle()
n = int(input())
print('~' * n)

print_triangle()
name = input()
print(f'Hi, {name}')

print_triangle()
Per definire una funzione personalizzata è necessario utilizzare la parola chiave def seguita dal nome della funzione (print_triangle nel nostro caso) che è seguita da () e da : per indicare l'inizio del blocco della funzione. L'elenco dei comandi che la funzione deve eseguire è posto in un blocco indentato all'interno del corpo della funzione.
Entrambi questi programmi eseguono esattamente le stesse operazioni, ma il secondo definisce la parte ripetitiva in una funzione e assicura che il codice non venga copiato e incollato.
Al contrario, il primo ha molte parti copiate e incollate, e nel caso decidessimo di cambiare * con % quando stampiamo un triangolo, sarebbe necessario apportare molte modifiche e passare attraverso ogni riga per effettuare la modifica. Questo può diventare davvero complicato per codebase più grandi ed è molto soggetto a errori.

Sfida

Definisci una funzione che stampa un rettangolo e chiamala 3 volte. I bordi del rettangolo dovrebbero essere composti dal simbolo #, e la parte interna dovrebbe essere vuota.
__Output__
############
#          #
#          #
#          #
#          #
#          #
#          #
#          #
#          #
############
############
#          #
#          #
#          #
#          #
#          #
#          #
#          #
#          #
############
############
#          #
#          #
#          #
#          #
#          #
#          #
#          #
#          #
############
 

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