ГЛАВА 2, 3, 4, 5. 2 тарау. Python Негіздері Бадарламаларды жазуа кіріспе
Скачать 242.51 Kb.
|
Консольді шығару: Нөмірді енгізіңіз: 6 6 санының факториалы 720-ға тең Цикл for Басқа түрі циклдар ұсынады конструкциясы for. For циклі белгілі бір сандар жиынтығындағы әр Сан үшін шақырылады. Сандар жиынтығы range () функциясы арқылы жасалады. Ресми цикл анықтамасы:
For кілт сөзінен кейін бүтін сандарды сақтайтын int_var айнымалысы келеді (айнымалы атауы кез келген болуы мүмкін), содан кейін in кілт сөзі, range() функциясын шақыру және қос нүкте. Келесі жолдан бастап цикл нұсқауларының блогы орналасқан, олар жолдың басынан шегіністерге ие болуы керек. Циклды орындау кезінде Python range функциясы жасаған коллекциядан барлық сандарды дәйекті түрде алады және сол сандарды int_var айнымалысында сақтайды. Бірінші өту кезінде цикл коллекциядан бірінші санды алады, екіншісінде - екінші сан және т.б., ол барлық сандарды сұрыптағанша. Коллекциядағы барлық сандар сұрыпталған кезде, цикл өз жұмысын аяқтайды. Факториалды есептеу мысалын қарастырайық:
Алдымен консольден нөмірді енгізіңіз. Циклде біз range функциясы жасаған коллекциядағы сандар сақталатын I айнымалысын анықтаймыз. Мұнда range функциясы екі аргументті алады - жинақтың бастапқы саны (мұнда 1 Саны) және сандарды қосу керек Сан (яғни number +1). Консольден 6 Саны енгізіледі делік, содан кейін range функциясын шақыру келесі форманы алады:
Бұл функция 1-ден басталатын және 7-ге дейін бүтін сандармен дәйекті түрде толтырылатын коллекция жасайды. Яғни, бұл жинақ болады [1, 2, 3, 4, 5, 6]. Циклды орындау кезінде сандар осы коллекциядан I айнымалыға ауысады, ал циклдің өзінде I айнымалы факторға көбейтіледі. Нәтижесінде біз санның факторлық мәнін аламыз. Бағдарламаны консольдік шығару: Нөмірді енгізіңіз: 6 6 санының факториалы 720-ға тең Range функциясы Range функциясы келесі формаларға ие: range (stop): 0-ден stop-қа дейінгі барлық бүтін сандарды қайтарады range (start, stop): start (қоса) бастап stop (қоса) дейінгі аралықтағы барлық бүтін сандарды қайтарады. Жоғарыда факториалды бағдарламада дәл осы форма қолданылды. range (start, stop, step): start (қоса алғанда) бастап stop (қоса алғанда) дейінгі аралықта бүтін сандарды қайтарады, олар step мәніне артады Range функциясының қоңырау мысалдары:
Мысалы, 0-ден 4-ке дейінгі барлық сандарды дәйекті түрде шығарамыз:
Ішкі циклдар Кейбір циклдарда басқа циклдер болуы мүмкін. Көбейту кестесін шығару мысалын қарастырайық:
Range(1, 10) үшін сыртқы цикл 9 рет іске қосылады, өйткені range функциясымен қайтарылған коллекцияда 9 Сан болады. Ішкі цикл for J in range (1, 10) сыртқы циклдің бір итерациясы үшін 9 рет, ал сыртқы циклдің барлық итерациялары үшін сәйкесінше 81 рет іске қосылады. Ішкі циклдің әр итерациясында I және j сандарының көбейтіндісі консольге шығарылады.: 1 2 3 4 5 6 7 8 9 2 4 6 8 10 12 14 16 18 3 6 9 12 15 18 21 24 27 4 8 12 16 20 24 28 32 36 5 10 15 20 25 30 35 40 45 6 12 18 24 30 36 42 48 54 7 14 21 28 35 42 49 56 63 8 16 24 32 40 48 56 64 72 9 18 27 36 45 54 63 72 81 Циклден шығу. break және continue Циклды басқару үшін break және continue арнайы мәлімдемелерін пайдалануға болады. Break операторы циклден шығуды жүзеге асырады. Ал continue операторы циклдің келесі итерациясына көшуді орындайды. Break мәлімдемесін циклде оны одан әрі орындауға сәйкес келмейтін жағдайлар пайда болған кезде қолдануға болады. Келесі мысалды қарастырыңыз:
Мұнда біз шексіз циклмен айналысамыз, өйткені while True шарты әрқашан шынайы және әрқашан орындалады. Бұл шексіз орындалуы керек бағдарламаларды құрудың танымал әдісі. Циклде біз консольден кіріс аламыз. Пайдаланушы Нөмірді енгізеді деп болжаймыз - айырбастау үшін шартты ақша сомасы. Егер пайдаланушы "Y" немесе "y" әрпін енгізсе, онда break операторының көмегімен біз циклден шығып, бағдарламаны тоқтатамыз. Әйтпесе, енгізілген соманы айырбастау бағамына бөлеміз, round функциясын қолдана отырып, нәтижені дөңгелектеп, оны консольге шығарамыз. Сонымен, пайдаланушы y пернесін басу арқылы бағдарламадан шыққысы келгенше шексіздікке дейін. Бағдарламаны консольдік шығару: Шығу үшін Y түймесін басыңыз Айырбастау сомасын енгізіңіз: 20000 357.14 доллар беруге Айырбастау сомасын енгізіңіз: Y Айырбастау пунктінің жұмысы аяқталды Бірақ пайдаланушы теріс санды енгізсе ше? Бұл жағдайда бағдарлама теріс нәтиже береді, бұл дұрыс мінез-құлық емес. Бұл жағдайда, есептеуден бұрын, мәннің нөлден аз екенін тексере аламыз, ал егер аз болса, continue операторын қолдана отырып, оны аяқтамай циклдің келесі итерациясына ауысуды орындай аламыз:
Сондай-ақ, Нұсқаулық while блогына немесе кірістірілген if дизайнына жататындығын анықтау үшін шегіністер қайтадан қолданылатынына назар аударамын. Бұл жағдайда біз теріс сома үшін нәтиже ала алмаймыз: Шығу үшін Y түймесін басыңыз Айырбастау сомасын енгізіңіз: -20000 Сома оң болуы керек! Айырбастау сомасын енгізіңіз: 20000 357.14 доллар беруге Айырбастау сомасын енгізіңіз: y Айырбастау пунктінің жұмысы аяқталды Функциялар Функциялар белгілі бір тапсырманы орындайтын және бағдарламаның басқа бөліктерінде қайта пайдалануға болатын код блогын білдіреді. Функцияның ресми анықтамасы:
Функцияның анықтамасы функцияның атауынан, параметрлері бар жақшалар жиынтығынан және қос нүктеден тұратын def өрнегінен басталады. Жақшадағы параметрлер міндетті емес. Келесі жолдан функция орындайтын нұсқаулар блогы келеді. Функцияның барлық нұсқауларында жолдың басынан шегіністер бар. Мысалы, қарапайым функцияны анықтау:
Функция say_hello деп аталады. Оның параметрлері жоқ және консольге "Hello"жолын көрсететін бір нұсқаулық бар. Функцияны шақыру үшін функцияның атауы көрсетіледі, содан кейін жақшада оның барлық параметрлері үшін мәндер беріледі. Мысалы:
Мұнда say_hello функциясы қатарынан үш рет шақырылады. Нәтижесінде біз келесі консоль шығысын аламыз: Hello Hello Hello Енді параметрлермен функцияны анықтаңыз және қолданыңыз:
Функция name параметрін қабылдайды және функция шақырылған кезде, параметрдің орнына мәнді жібере аламыз: Hello, Tom Hello, Bob Hello, Alice Әдепкі мәндер Функцияның кейбір параметрлерін функцияны анықтаған кезде олар үшін әдепкі мәндерді көрсету арқылы қосымша жасай аламыз. Мысалы:
Мұнда name параметрі міндетті емес. Егер функцияны шақырған кезде оған мән берілмесе, онда әдепкі мән қолданылады, яғни "том"жолы. Аталған параметрлер Мәндерді беру кезінде функция оларды берілген ретпен параметрлермен салыстырады. Мысалы, келесі функция болсын:
Функция шақырылған кезде бірінші "Tom" мәні бірінші параметрге - name параметріне, екінші мән - 22 саны екінші параметр - age параметріне беріледі. Мәселен, тәртібіне. Аталған параметрлерді пайдалану беру ретін қайта анықтауға мүмкіндік береді:
Аталған параметрлер функция шақырылған кезде оған мән бере отырып, параметр атауын көрсетуді білдіреді. Параметрлердің анықталмаған саны Жұлдызша таңбасын пайдаланып параметрлердің белгісіз санын анықтауға болады:
Бұл жағдайда sum функциясы бір параметрді алады - *params, бірақ параметр атауының алдындағы жұлдызша, шын мәнінде, осы параметрдің орнына анықталмаған мәндер санын немесе мәндер жиынтығын бере алатынымызды көрсетеді. Функцияның өзінде for циклін қолдана отырып, сіз осы жиынтықтан өтіп, берілген мәндермен әртүрлі әрекеттер жасай аласыз. Мысалы, бұл жағдайда сандардың қосындысы қайтарылады. Нәтижені қайтару Функция нәтижені қайтара алады. Ол үшін функцияда қайтару операторы қолданылады, содан кейін қайтару мәні көрсетіледі:
Функция мәнді қайтаратындықтан, біз бұл мәнді кез-келген айнымалыға тағайындай аламыз, содан кейін оны қолдана аламыз: result2 = exchange(56, 30000). Python-да функция бірден бірнеше мәнді қайтара алады:
Мұнда create_default_user функциясы екі мәнді қайтарады: name және age. Функция шақырылған кезде бұл мәндер рет-ретімен user_name және user_age айнымалыларына беріледі және біз оларды қолдана аламыз. Main функция Бағдарламада көптеген функцияларды анықтауға болады. Олардың барлығын ретке келтіру үшін арнайы негізгі функцияны қосу жақсы тәжірибе болып саналады, онда басқа функциялар шақырылады:
Айнымалылардың ауқымы Ауқым немесе scope оны пайдалануға болатын айнымалының мәнмәтінін анықтайды. Python-да контексттің екі түрі бар: ғаламдық және жергілікті. Ғаламдық контекст айнымалы Ғаламдық дегенді білдіреді, ол кез-келген функциядан тыс анықталады және бағдарламадағы кез-келген функцияға қол жетімді. Мысалы:
Мұнда name айнымалысы ғаламдық және ғаламдық ауқымға ие. Мұнда анықталған екі функция да оны еркін пайдалана алады. Ғаламдық айнымалылардан айырмашылығы, жергілікті айнымалы функцияның ішінде анықталады және тек осы функциядан қол жетімді, яғни жергілікті ауқымға ие:
Бұл жағдайда екі функцияның әрқайсысында жергілікті айнымалы name анықталады. Бұл айнымалылар бірдей деп аталғанымен, бірақ бұл екі түрлі айнымалы, олардың әрқайсысы тек өз функциялары аясында қол жетімді. Сондай-ақ, say_hi функциясында surname айнымалысы анықталған, ол жергілікті, сондықтан say_bye функциясында біз оны пайдалана алмаймыз. Жергілікті айнымалы бірдей атаумен глобалды жасырған кезде айнымалыны анықтаудың тағы бір нұсқасы бар:
Мұнда ғаламдық айнымалы name анықталады. Алайда, say_bye функциясында бірдей атауы бар жергілікті айнымалы анықталады. Егер say_hi функциясы Ғаламдық айнымалыны қолданса, say_bye функциясы Ғаламдық айнымалыны жасыратын жергілікті айнымалыны қолданады. Егер біз жергілікті функцияда Ғаламдық айнымалыны өзгерткіміз келсе және жергілікті айнымалыны анықтамасақ, онда global кілт сөзін қолдануымыз керек:
Python-да, көптеген басқа бағдарламалау тілдеріндегідей, Ғаламдық айнымалыларды пайдалану ұсынылмайды. Жалғыз қолайлы тәжірибе-бұл бағдарлама барысында өзгермейтін Ғаламдық тұрақтылардың аз санын анықтау.
Бұл жағдайда 3.14 саны Pi тұрақтысымен ұсынылған. Бұл мән негізінен өзгермейді, сондықтан оны функциялардан шығарып, тұрақты ретінде анықтауға болады. Әдетте, тұрақты атау бас әріптермен анықталады. |