милдеттери
Буга чейин биз бардык кодубузду app.py ичинде жазып келгенбиз, бирок программаларыбыз чоңойгон сайын бизге кодубузду уюштуруунун жакшы жолу керек. Биз өзүбүздүн кодубузду функция деп атаган кичинекей, башкарылуучу жана тейлөөгө мүмкүн болгон бөлүктөргө бөлүшүбүз керек. Функция белгилүү бир тапшырманы аткарган коддун бир нече саптары үчүн контейнер.
Мисалы, сиз буга чейин Pythonдо бир нече орнотулган функциялар жөнүндө билдиңиз print()
жана input()
. Ар бир функциянын максаты бар жана белгилүү бир ишти аткарууну билет. Ошентип, биз чоң татаал программаларды курганда, кодубузду кайра колдонууга мүмкүн болгон кичинекей бөлүктөргө, б.а. функцияларга бөлүшүбүз керек.
Келгиле, куттуктоо билдирүүсүн басып чыгаруу үчүн программаны түзүү менен бул түшүнүктү түшүнөлү.
print('Hi there!')
print('Welcome aboard!')
Бул жерде бизде эки гана сап коддон турган жөнөкөй программа бар. Эми, айталы, биз аларды кайра колдоно турган функцияга коюу үчүн башка программаларга керек болобуз.
Мага сакталган ачкыч сөздү киргизейин def
Python тилинде, ал аныктоо үчүн кыска жана функцияны аныктоо үчүн колдонулат.
def greet_user():
print('Hi there!')
print('Welcome aboard!')
Эми бул код блогу функцияны аныктайт "greet_user
” андан кийин коддордун саптары менен. Бул функция чакырылганда, бул эки сап аткарылат. Муну колдонолу:
print('start')
greet_user()
print('finish')
Программа ырааттуу түрдө аткарылат, демек, программада аны чакырардан мурун функцияны аныкташыңыз керек.
параметрлер
Белгиленген функциялар Pythonдун орнотулган функцияларына караганда бир аз башкача иштейт. Мисалы, учурда print()
функция, ал биз басып чыгаргыбыз келген кээ бир маалыматты алат, бирок биздин саламдашуу функциябыз эч кандай маалыматты кабыл албайт. Колдонуучунун атын ушул жерге берип, анан “саламатсызбы” дегендин ордуна колдонуучунун атын басып чыгарсаңыз жакшы болбойт беле?
Муну аныкталган функциянын кашаанын ичиндеги параметрлерди кошуу менен кыла аласыз. Мен сага көрсөтөм:
def greet_user(name):
print('Hi there!')
print('Welcome aboard!')
Азыр "name
” кашаанын ичиндеги локалдык өзгөрмө сыяктуу иштейт жана биз аны чакырганда колдонуучунун атын бере алабыз.
greet_user('Shahbaz')
Эми ат параметри " деп коюлдуShahbaz
”. Аны колдонуу үчүн программаны өзгөртөлү.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
print('finish')
Белгилей кетчү нерсе, биринчи саптагы "ат" Параметр деп аталат, ал эми Шахбаз деген ат аргумент деп аталат.
Келгиле, бул программаны иштетели.
Ошентип, бул параметрлер менен биз функцияларыбызда маалымат ала алабыз.
Эми кызыктуу бир нерсе кылалы. Саламдашуу билдирүүсүнө башка ат кошкуңуз келди дейли. Бул жөнөкөй.
def greet_user(name):
print(f'Hi {name}')
print('Welcome aboard!')
print('start')
greet_user('Shahbaz')
greet_user('Aayush')
print('finish')
Эми функциянын параметри болгондо, биз ал параметр үчүн маанини берүүгө милдеттүүбүз. Эгер сиз функциядан атты алып салсаңыз жана программаны иштетсеңиз, биз ката алабыз. Сиз үтүр менен бөлүнгөн бир функцияда бир нече параметрди да колдонсоңуз болот.
Мисалы, greet_user(first_name, last_name):
. Аргументтер да ушундай эле форматталат.
Keyword Arguments
Буга чейин биз функциялар үчүн параметрлерди аныктаган сайын ар дайым баалуулуктарды беришибиз керек экенин билдик, антпесе ката алабыз. Акыркы программада аргументтер 'Shahbaz'
жана 'Bhatti'
позициялык аргументтер деп аталат, алар программадагы алардын позициясын же тартибин билдирет.
Python тилинде бизде позиция маанилүү эмес, ачкыч сөз аргументтери деп аталган аргументтин дагы бир түрү бар. Мен сага алардын кантип иштээрин көрсөтүп берейин.
Акыркы программаны караңыз. Биз аны төмөнкүдөй өзгөртө алабыз:
def greet_user(first_name, last_name):
print(f'Hi {first_name} {last_name}')
print('Welcome aboard!')
print('start')
greet_user(first_name='Shahbaz', last_name='Bhatti')
print('finish')
Азыр first_name
жана last_name
ачкыч сөз параметрлери болуп саналат. Сиз алардын ордун алмаштыра аласыз жана натыйжа бирдей болот.
Эми бул биз ар дайым ачкыч аргументтерди колдонушубуз керек дегенди билдирбейт. Көбүнчө биз позициялык аргументтерди колдонобуз, бирок белгилүү бир жагдайларда бул ачкыч аргументтер кодубуздун окулушун жакшыртууга жардам берет.
Ачкычтуу сүйлөм боюнча аргументтерди билишиңиз керек болгон дагы бир нерсе бар. Ачкычтуу сүйлөм боюнча аргумент ар дайым позициялык аргументтерден кийин келүүгө тийиш.
Кайтаруу билдирүүсү
Буга чейин биз функцияларды кантип түзүүнү жана алардын параметрлерин колдонуу менен маалымат жөнөтүүнү үйрөндүк. Эми баалуулуктарды кайтаруучу функцияларды кантип түзүүнү үйрөнөлү. Бул өзгөчө пайдалуу, эгерде сиз кандайдыр бир эсептөөлөрдү жасап жатсаңыз жана натыйжаны функцияңызды колдонуп жаткан адамга кайтаргыңыз келсе. Мен сага көрсөтөм.
Сандын квадратын эсептей турган функцияны аныктайлы.
def square(number):
return number*number
Бул санды функциядан тышкары кайтаруу үчүн биз return операторун колдондук. Эми, эгерде биз бул функцияны чакырсак, анда ал сыяктуу маанини кайтарат input()
функция. Аны терминалга басып чыгаралы.
Сиз ошол эле натыйжаны кайтаруу билдирүүсүн колдонбостон эле алууга болот деп талаша аласыз. Келгиле, текшерип көрөлү.
Биз эки нерсени көрүп жатабыз, 9 саны жана эч бири. Бул жерде эмне болуп жатат?
Python котормочу бул кодду аткарганда, алгач квадрат функцияны чакырат жана башкаруу функцияга өтөт. Бул жерде биз бул берилген сандын квадратын эсептеп, андан кийин аны терминалга басып чыгарабыз.
Эми, демейки боюнча, бардык функциялар none маанисин кайтарат. Демек, бул жерде бизде кайтаруу билдирүүсү жок болсо, демейки боюнча Python эч кимди кайтарбайт. None - бул маанинин жоктугун билдирген объект. Бул C, C++, Java жана Javascript тилдеринде эч нерсе же нөл сыяктуу.
Киришүү!
Функциялардын маанилүүлүгүн түшүндүңүз деп үмүттөнөм.
Эгер сиз коддоо карьераңызда чоң жана татаал программаларды жазууну пландап жатсаңыз, алар Python үйрөнүүнүн маанилүү аспектиси.
Таштап Жооп