Funktionen ohne Argumente

Wir haben bereits mit Funktionen in Python gearbeitet. Tatsächlich hat unser erstes Programm schon eine Funktion verwendet. print() ist eigentlich eine Funktion. min(), max(), input(), sorted() und alle anderen Befehle mit Klammern sind alles Funktionen.
Funktionen führen mehrere Befehle aus und geben in einigen Fällen ein Ergebnis zurück. min() berechnet das Minimum mehrerer Werte und gibt diesen Wert zurück. print() hingegen gibt einen Wert auf der Ausgabe aus.
Funktionen sind besonders nützlich, um sich wiederholenden Code zu eliminieren. Wir können auch eigene Funktionen definieren. Stellen Sie sich vor, Sie möchten ein bestimmtes Objekt dreimal ausgeben und zwischendurch etwas anderes tun:
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()
Um eine eigene Funktion zu definieren, muss man das Schlüsselwort def verwenden, gefolgt vom Namen der Funktion (print_triangle in unserem Fall), gefolgt von () und einem :, um den Beginn des Funktionsblocks zu markieren. Die Liste der Befehle, die die Funktion ausführen soll, wird in einem eingerückten Block innerhalb des Funktionskörpers platziert.
Beide Programme führen genau die gleichen Operationen aus, aber das zweite definiert den sich wiederholenden Teil in einer Funktion und stellt sicher, dass der Code nicht kopiert und eingefügt wird.
Das erste hingegen enthält viel Copy-Paste, und wenn wir uns entscheiden würden, das * durch % zu ersetzen, wenn wir ein Dreieck drucken, müssten wir viele Änderungen vornehmen und jede Zeile durchgehen, um die Änderung vorzunehmen. Dies kann bei größeren Codebasen wirklich chaotisch werden und ist sehr fehleranfällig.

Herausforderung

Definieren Sie eine Funktion, die ein Rechteck der Größe ausgibt und rufen Sie sie dreimal auf. Die Ränder des Rechtecks sollten aus dem Symbol # bestehen, und das Innere soll leer sein.
__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