Ֆունկցիաներ առանց արգումենտների

Մենք արդեն աշխատել ենք ֆունկցիաների հետ։ Իրականում, մեր առաջին ծրագիրն արդեն օգտագործում էր Python-ի տարբեր ֆունկցիաներ։ print()-ը, ըստ էության, ֆունկցիա է: min()-ը, max()-ը, input()-ը, sorted()-ը և փակագծերով նշվող մնացած բոլոր հրամանները նույնպես ֆունկցիաներ են:
Ֆունկցիաները կատարում են մի քանի հրամաններ և որոշ դեպքերում վերադարձնում արդյունքը: min()-ը, օրինակ, հաշվում է մի քանի արժեքների նվազագույնը և վերադարձնում այն: Իսկ print()-ը ելքում տպում է իրեն փոխանցված արժեքները:
Ֆունկցիաները հատկապես օգտակար են կրկնությունից խուսափելու համար։ Ընդ որում, մենք կարող ենք նաև սահմանել մեր սեփական ֆունկցիաները: Ենթադրենք՝ ցանկանում եք որևէ առարկա տպել 3 անգամ, և միաժամանակ մեկ այլ բան անել.
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()
Սեփական ֆունկցիա սահմանելու համար անհրաժեշտ է կիրառել def հատուկ բառը, որին պետք է հաջորդի ֆունկցիայի անունը (տվյալ դեպքում՝ print_triangle), իսկ այնուհետև՝ ()-ը և :-ը՝ ֆունկցիայի բլոկի սկիզբը նշելու համար: Հրամանների ցանկը, որը ֆունկցիան պետք է կատարի, տեղադրվում է ֆունկցիայի մարմնի ներսում:
Այս երկու ծրագրերն էլ կատարում են ճիշտ նույն գործողությունները, սակայն երկրորդ ծրագիրը կրկնվող մասը սահմանում է ֆունկցիայի մեջ և ստուգում է, որ կոդը պատճենված չլինի:
Իսկ ահա առաջին ծրագրում շատ է պատճենված (copy-paste արված) կոդը։ Եվ եթե, օրինակ, եռանկյունի տպելու ժամանակ մենք որոշենք *-ը փոխել %-ի, ապա ծրագրի մեջ պետք է շատ փոփոխություններ կատարենք։ Մեծ ծրագրերի դեպքում սա կարող է իսկական խառնաշփոթի հանգեցնել և բազմաթիվ սխալների պատճառ դառնալ:

Առաջադրանք

Սահմանեք ֆունկցիա, որը տպում է ուղղանկյուն և կանչեք այն 3 անգամ: Ուղղանկյան եզրագծերը պետք է նշել #-ով, իսկ ներսը՝ թողնել դատարկ։
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