Fonctions sans arguments

Nous avons déjà travaillé avec des fonctions en Python. En fait, notre premier programme utilisait déjà une fonction. print() est en réalité une fonction. min(), max(), input(), sorted(), et toutes les autres commandes avec des parenthèses sont toutes des fonctions.
Les fonctions exécutent plusieurs commandes et, dans certains cas, renvoient un résultat. min() calcule le minimum de plusieurs valeurs et renvoie cette valeur. print(), quant à elle, affiche une valeur en sortie.
Les fonctions sont particulièrement utiles pour éliminer du code répétitif. Nous pouvons également définir nos propres fonctions. Imaginez que vous souhaitiez imprimer un certain objet 3 fois et faire autre chose entre-temps :
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()
Pour définir une fonction personnalisée, il faut utiliser le mot-clé def suivi du nom de la fonction (print_triangle dans notre cas), suivi de () et d'un : pour marquer le début du bloc de la fonction. La liste des commandes que la fonction doit exécuter est placée dans un bloc indenté à l'intérieur du corps de la fonction.
Ces deux programmes effectuent exactement les mêmes opérations, mais le second définit la partie répétitive dans une fonction et s'assure que le code n'est pas copié-collé.
En revanche, le premier contient beaucoup de copier-coller, et si nous décidons de changer les * en % lors de l'impression d'un triangle, il faudrait faire de nombreuses modifications et passer en revue chaque ligne pour effectuer le changement. Cela peut devenir très compliqué pour des codes plus volumineux et est très sujet aux erreurs.

Challenge

Définissez une fonction qui imprime un rectangle de dimensions et appelez-la 3 fois. Les bordures du rectangle doivent être constituées du symbole #, et la partie intérieure doit être vide.
__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