fb pixel

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

Մենք արդեն աշխատել ենք 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
############
#          #
#          #
#          #
#          #
#          #
#          #
#          #
#          #
############
############
#          #
#          #
#          #
#          #
#          #
#          #
#          #
#          #
############
############
#          #
#          #
#          #
#          #
#          #
#          #
#          #
#          #
############
 
To check your solution you need to sign in
Sign in to continue