Python da dasturlash haqida oddiy til 3. Yangi boshlanuvchilar uchun Python dasturlash tili. Oqimni boshqarish bo'yicha ko'rsatmalar - if, for, while

Bir necha o'n yillar oldin, dasturchilar boshqalar uchun mavjud bo'lmagan narsalarni biladigan qandaydir shamanlar bo'lib tuyulardi. Ba'zan odamlar tizzalab dasturlashni, qog'ozga kod yozishni o'rgandilar, chunki "aholi jon boshiga kompyuter qurilmalarining kontsentratsiyasi" nihoyatda past edi. Endi uyda ish stoli yoki noutbuki bo'lmagan odamni topish qiyin. Ta'lim texnologiyalari ham bir joyda turmaydi.

Biroz tarix

Python dasturlash tili saksoninchi yillarning oxirida Guido van Rossum tomonidan ishlab chiqilgan. O'sha paytda Gido Gollandiya CWI institutining xodimi edi. U bo'sh vaqtlarida ushbu tilni yozgan va u erda o'zi hissa qo'shgan ABC tili haqida ba'zi fikrlarni qo'ygan.

Til sudralib yuruvchi sharafiga nomlanmagan. Aslida, bu nom g'oyasi etmishinchi yillardagi mashhur britaniyalik komediya shousi bo'lgan "Monti Pitonning uchuvchi sirki", garchi Python hali ham ko'proq ilon bilan taqqoslanadi, hatto rasmiy veb-saytdagi emblemada (u ikkita ilonni ko'rsatadi). boshlar) ko'rsatadi.

Python dasturlash tilining shu qadar mashhur bo'lishining sababi sifatida faqatgina van Rossumning dizayn sezgisi emas. Do'stona foydalanuvchilar hamjamiyatining mavjudligini hisobga olsak, noldan o'rganish yoqimli va oson tajribaga aylanadi.

Yaqinda, 2008 yilda uzoq vaqt davomida sinovdan o'tgan Python 3000 (3.0) ning birinchi versiyasi chiqdi, unda ko'plab arxitektura kamchiliklari bartaraf etildi. Shu bilan birga, ishlab chiquvchilar tilning oldingi versiyalari bilan moslikni saqlashga harakat qilishdi. Eng yangi versiya mavjud bo'lsa-da, ikkala filial (2.x va 3.x) qo'llab-quvvatlanadi.

Qisqacha dasturlash tili

Python boshqa tillarga nisbatan bir qator afzalliklarga ega. Bu deyarli intuitiv ravishda tushunarli, "shaffof" sintaksisga ega. Bu shuni anglatadiki, ushbu tildagi dastur kodini o'qish ancha oson, bu nafaqat uni yozish, balki turli xil takomillashtirish va tekshirishlar uchun ham vaqtni qisqartiradi.

Albatta, "eski maktab" dasturchisi siz albatta bir nechta tillarni bilishingiz kerakligini yoki hatto mashina kodini o'rganishdan boshlashingiz mumkinligini aytadi. Ammo, Python tilida dasturlash kursini tugatgandan so'ng, odam nafaqat aniq bilimga ega bo'ladi, balki o'zi uchun foydali bo'lgan ilovalar va dasturlarni yaratish orqali o'zining ijodiy tabiatini amalga oshirish imkoniyatini ham oladi. Ehtimol, tez orada dasturlash chet tilini bilish kabi zarur bo'ladi.

O'ziga shubha

Dasturlash qiyin degan noto'g'ri tushunchadan voz kechishga arziydi. Yo'q, dasturlash ko'rinadiganidan ancha qiziqroq; boshqa faoliyat va "vaqt etishmasligi" yoki dangasalik aralashishi mumkin.

Asosiy adabiyotlar Python tilida dasturlashni tezda o'rganishga yordam beradi. O'quv kursi asoslarni o'rganishingiz mumkin bo'lgan ikkita kitobni o'qishdan boshlanishi kerak. Birinchisi, Mark Lutzning "Python dasturlash", ikkinchisi esa Mark Summerfildning "Python 3 dasturlash"idir. Lutzning kitobida tilning barcha asosiy tamoyillari batafsil, ba'zan hatto haddan tashqari ko'p tasvirlangan. Ba'zilar Mark Lutzni o'zlashtirish uchun emas, balki asosiy bilimlarni chuqurlashtirish uchun o'qishni maslahat berishadi. Summerfildning kitobi hamma narsani qisqacha tushuntiradi, muallif o'quvchini hech qanday qiyinchilik bilan qo'rqitmaydi. Boshqa adabiyotlar ham bor, lekin bu darsliklar eng foydali va ma'lumotlidir.

kirish kursi

Keling, boshlang'ich maktabga qaytaylik. Qoida tariqasida, hatto bola ham birinchi sinfga minimal bilim bilan keladi: ota-onalar kimdir bilan o'qigan, kimdir "nol" ga o'tgan. Xuddi shu narsa Python dasturlash tilini o'rganish uchun ham amal qiladi. Bu haqiqatan ham qulay va "shaffof", ammo dasturlarning asosiy tamoyillari haqida minimal ma'lumotga ega bo'lmasdan, o'qitish qiyin bo'ladi. Bu musiqani eshitmasdan musiqa o'rganishga o'xshaydi. Shuning uchun, dasturlashni umuman uchratmaganlar "kirish minimumi" bilan tanishishlari kerak.

CS50 ma'ruzalari foydali yordam bo'ladi. Bu Garvard Universitetining Java Script dasturlash kursi, lekin birinchi ma'ruzalar kompyuter va umuman dasturlar o'rtasidagi o'zaro aloqani tushunarli va tushunarli tarzda tushuntiradi. Rus tilida so'zlashuvchi foydalanuvchi ushbu kursning tarjimasi, qo'shimcha materiallar, ma'ruzalarning matnli versiyalari va amaliy topshiriqlar bilan video yozuvlariga kirish huquqiga ega. Videolarni YouTube kabi deyarli hamma joyda topish mumkin, ammo butun tarkib Java Script saytida.

Internetda

Python dasturlash tili tobora ommalashib bormoqda, shuning uchun uzoq vaqt davomida o'z-o'zini o'rganish uchun juda ko'p materiallarga ega bir nechta portallar mavjud. Masalan, "Yangi boshlanuvchilar uchun Python 3". Ushbu saytda yangi boshlanuvchilar uchun juda ko'p materiallar mavjud, undan cheat varaq sifatida foydalanish mumkin. Codecademy veb-saytida bepul kirish imkoniyati bilan ushbu mavzu bo'yicha katta hajmdagi ma'lumotlar ham mavjud.

Forumda muloqot muhim ahamiyatga ega. Yolg'iz o'rganish har doim qiyinroq, shuning uchun turli jamoalarni e'tiborsiz qoldirmang.

Pullik kurslar

Siz har doim pullik kurslardan foydalanishingiz mumkin, lekin ba'zida bu juda ko'p pul talab qiladi va natija qoniqarsiz bo'lishi mumkin. Shuning uchun, albatta, bepul kirish vazifasini taklif qiladigan kurslarni tanlash tavsiya etiladi. Masalan, GeekBrains-da "Python dasturlash asoslari" mavzusida intensiv mavzu mavjud. Dars bepul va har 10 kunda o'tkaziladi. Ro'yxatdan o'tish uchun siz saytga kirishingiz kerak.

Maslahat: Qaysi kursni tanlamasligingizdan qatʼiy nazar, avvalo til asoslarini bilib oling, shunda siz oʻzingiz osongina oladigan narsaga vaqt sarflamaysiz. Yuqoridagi kitoblarni o'qish kifoya qiladi.

Albatta, nazariyani o'zlashtirgandan so'ng, men mashq qilishni xohlayman. Bu erda Nik Parlantening ma'ruzalarini eslatib o'tish kerak. Ular ingliz tilida, garchi umuman ingliz tilida yaxshi o'quv adabiyotlari juda ko'p va bu ajablanarli emas. Ma'ruzalarda Nik nafaqat Python dasturlash tilini o'rgatadi, balki mukammal amaliy topshiriqlarni ham beradi.

Foydalanish

Python dasturlash tili ko'p odamlar kundalik foydalanadigan ko'plab ilovalarni yaratish uchun ishlatilgan. Masalan, bu BitTorrent torrent mijozining oltinchi versiyasi. Shuningdek, Gimp bitmap grafik muharririda "Python" ("Pyton") ishlatiladi. Uning yordamida, masalan, qo'shimcha modullar, filtrlar yaratiladi. “Civilization IV” va “Batterfield 2”ning katta qismi shu tilda yozilgan.

Python Google, Facebook, Instagram, Dropbox, Pinterest kabi kompaniyalar tomonidan qo'llaniladi. Shuningdek, u Yandex Disk dasturining yadrosida ishlaydi. Kompaniya xodimlarining 10% ga yaqini Python tilida yozishadi va ko‘plab dasturchilar uni o‘zlarining sevimli tili deb atashadi.

Qanday boshlash kerak

Hech qanday kod "havoda" ishlay olmaydi, Python dasturlash tili ham bu qoidaga bo'ysunadi. Noldan o'rganish, garchi u nazariyadan boshlangan bo'lsa-da, aslida, shaxsiy kompyuterda ish muhitini o'rnatishdan boshlanadi. Buni qanday qilish kerak? Hammasi oddiy: siz rasmiy Python veb-saytidagi havolaga o'tishingiz, o'rnatuvchini yuklab olishingiz va ishga tushirishingiz, so'ngra u tomonidan tavsiya etilgan amallarni diqqat bilan bajarishingiz kerak.

Iltimos, kompyuteringizda o'rnatilgan operatsion tizimga mos keladigan faylni yuklab olishingiz kerakligini unutmang!

O'rnatish muvaffaqiyatli bo'lsa, konsolni oching (odatda, bu "ctrl + alt + T" klaviatura yorlig'i bilan amalga oshirilishi mumkin). Endi siz birinchi dasturingizni yozishingiz mumkin. Masalan, "python3" ni kiriting. Agar konsolda dasturning versiyasi ko'rsatilgan (masalan, 3.4.0) "salom" bo'lsa, unda hamma narsa tartibda, agar bo'lmasa, "Python" ning uchinchi versiyasini buyruq bilan o'rnatishingiz kerak: "sudo apt-get install python3".
Biroq, bu talab qilinmaydi. Siz istalgan qulay matn muharririda kod yozishingiz va keyin uni konsol orqali ishga tushirishingiz yoki tarqatish bilan birga kelgan IDLE ishlab chiqish muhitidan foydalanishingiz mumkin.

IDLE-ni ishga tushiring. Kichkina dastur yaratish uchun faqat bir qator kod kerak bo'ladi.

chop ("Salom dunyo!")

IDLE oynasiga ushbu kodni kiriting va Enter tugmasini bosing. Atrof-muhit bir zumda harakat bilan javob beradi - u ekranda kerakli matnni ko'rsatadi. Birinchi dastur tayyor.

Pythonda dasturlash

1-qism. Til xususiyatlari va asosiy sintaksisi

Kontent seriyasi:

Python-ni o'rganishga arziydimi?

Python eng mashhur zamonaviy dasturlash tillaridan biridir. U turli xil muammolarni hal qilish uchun mos keladi va boshqa dasturlash tillari kabi bir xil xususiyatlarni taklif qiladi: dinamizm, OOP va kross-platformani qo'llab-quvvatlash. Pythonning rivojlanishi 1990-yillarning oʻrtalarida Gvido Van Rossum tomonidan boshlangan edi, shuning uchun hozirgi kunga kelib u standart “bolalik” kasalliklaridan xalos boʻlishga, tilning eng yaxshi tomonlarini sezilarli darajada rivojlantirishga va Python-dan foydalanadigan koʻplab dasturchilarni jalb qilishga muvaffaq boʻldi. loyihalarini amalga oshirish.

Ko'pgina dasturchilar faqat Java yoki C++ kabi "klassik" dasturlash tillarini o'rganish zarur deb hisoblaydilar, chunki boshqa tillar baribir bir xil imkoniyatlarni taqdim eta olmaydi. Biroq, so'nggi paytlarda dasturchining bir nechta tillarni bilishi ma'qul, degan fikr paydo bo'ldi, chunki bu uning dunyoqarashini kengaytiradi, unga vazifalarni yanada ijodiy hal qilish va mehnat bozorida raqobatbardoshligini oshirish imkonini beradi.

Java va C++ kabi ikkita tilni mukammal o'rganish juda qiyin va ko'p vaqt talab etadi; Bundan tashqari, bu tillarning ko'p jihatlari bir-biriga ziddir. Shu bilan birga, Python ikkinchi til roli uchun juda mos keladi, chunki u OOPda allaqachon mavjud bo'lgan bilimlar tufayli darhol o'zlashtiriladi va uning imkoniyatlari ziddiyatli emas, balki boshqa dasturlash bilan ishlashda olingan tajribani to'ldiradi. til.

Agar dasturchi dasturiy ta'minotni ishlab chiqish sohasida endigina ish boshlagan bo'lsa, u holda Python ideal "kirish" dasturlash tili bo'ladi. O'zining ixchamligi tufayli til sintaksisini tezda o'zlashtirishga imkon beradi va yillar davomida shakllangan aksiomalar ko'rinishidagi "meros" ning yo'qligi OOPni tezda o'zlashtirishga yordam beradi. Ushbu omillar tufayli Python-ning o'rganish egri chizig'i juda qisqa bo'ladi va dasturchi amaliy tadqiqotlardan tijorat loyihalariga o'ta oladi.

Shu sababli, ushbu maqolani o'qigan kishi tajribali dasturchi bo'ladimi yoki dasturiy ta'minotni ishlab chiqish sohasida yangi boshlovchi bo'ladimi, ushbu bo'limning sarlavhasi bo'lgan savolga javob "ha" bo'lishi kerak.

Ushbu maqolalar turkumi boshqa texnologiyalar bilan integratsiyalashuv nuqtai nazaridan tilning eng asosiy tamoyillaridan tortib uning ilg'or imkoniyatlarigacha izchil ma'lumot berib, o'rganish egri chizig'ini muvaffaqiyatli yengib o'tishga yordam berish uchun mo'ljallangan. Birinchi maqolada biz Pythonning asosiy xususiyatlari va sintaksisi haqida gapiramiz. Kelajakda biz ushbu mashhur til bilan ishlashning yanada murakkab jihatlarini, xususan, Python-da ob'ektga yo'naltirilgan dasturlashni ko'rib chiqamiz.

Python arxitekturasi

Har qanday til, dasturlash yoki aloqa uchun, kamida ikkita qismdan iborat - lug'at va sintaksis. Python tili xuddi shu tarzda tashkil etilgan bo'lib, bajariladigan dasturlarni tashkil etuvchi iboralarni yaratish uchun sintaksis va standart kutubxona va plaginlar ko'rinishidagi lug'at, funktsiyalar to'plamini ta'minlaydi.

Yuqorida aytib o'tilganidek, Python sintaksisi juda ixcham, ayniqsa Java yoki C++ bilan solishtirganda. Bir tomondan, bu yaxshi, chunki sintaksis qanchalik sodda bo'lsa, uni o'rganish shunchalik oson bo'ladi va undan foydalanish jarayonida kamroq xatolarga yo'l qo'yishingiz mumkin. Biroq, bunday tillarning kamchiliklari bor - ular eng oddiy ma'lumotlarni etkazish uchun ishlatilishi mumkin va murakkab tuzilmalarni ifoda eta olmaydi.

Bu Python-ga taalluqli emas, chunki u oddiy, ammo soddalashtirilgan tildir. Gap shundaki, Python mavhumlik darajasi yuqori, masalan, Java va C++ dan yuqori bo‘lgan til bo‘lib, kichikroq hajmdagi manba kodida bir xil hajmdagi ma’lumotlarni uzatish imkonini beradi.

Bundan tashqari, Python umumiy maqsadli tildir, shuning uchun uni dasturiy ta'minotni ishlab chiqishning deyarli har qanday sohasida (mustaqil, mijoz-server, veb-ilovalar) va har qanday mavzu sohasida foydalanish mumkin. Bundan tashqari, Python mavjud komponentlar bilan osongina integratsiyalanadi, bu esa Python-ni allaqachon yozilgan ilovalarga joylashtirish imkonini beradi.

Python muvaffaqiyatining yana bir qismi uning standart va maxsus kengaytma modullaridir. Standart Python kengaytma modullari har bir dasturiy ta'minotni ishlab chiqish loyihasida, string va matnni qayta ishlashda, operatsion tizim bilan o'zaro aloqada, veb-ilovalarni qo'llab-quvvatlashda yuzaga keladigan muammolarni hal qilish uchun yaxshi mo'ljallangan va tasdiqlangan funksionallikdir. Ushbu modullar Python-da ham yozilgan, shuning uchun ular o'zining eng muhim xususiyatiga ega - kross-platforma, bu sizga loyihalarni bir operatsion tizimdan ikkinchisiga tez va og'riqsiz o'tkazish imkonini beradi.

Agar kerakli funksionallik Python standart kutubxonasida bo'lmagan bo'lsa, keyinchalik uni qayta ishlatish uchun o'zingizning kengaytma modulingizni yaratishingiz mumkin. Shuni ta'kidlash kerakki, Python uchun kengaytma modullari nafaqat Python-ning o'zida, balki boshqa dasturlash tillari yordamida ham yaratilishi mumkin. Bunday holda, murakkab ilmiy hisob-kitoblar kabi resurs talab qiladigan vazifalarni samaraliroq amalga oshirish mumkin bo'ladi, lekin agar kengaytma moduli tili Python kabi o'zaro platformalar bo'lmasa, o'zaro faoliyat platformaning afzalligi yo'qoladi.

Python ish vaqti

Ma'lumki, barcha platformalararo dasturlash tillari bir xil modelga muvofiq qurilgan: bu haqiqiy portativ manba kodi va portativ bo'lmagan va har bir o'ziga xos platformaga xos bo'lmagan ish vaqti muhiti. Ushbu ish vaqti odatda dasturni saqlash uchun zarur bo'lgan manba kodini va turli yordamchi dasturlarni bajaradigan tarjimonni o'z ichiga oladi - tuzatuvchi, teskari assembler va boshqalar.

Java Runtime Environment qo'shimcha ravishda kompilyatorni o'z ichiga oladi, chunki manba kodi Java virtual mashinasi uchun bayt-kodga kompilyatsiya qilinishi kerak. Python ish vaqti faqat tarjimonni o'z ichiga oladi, u ham kompilyator hisoblanadi, lekin Python manba kodini to'g'ridan-to'g'ri maqsadli platformaning mahalliy kodiga kompilyatsiya qiladi.

Hozirda Python uchun uchta mashhur ish vaqti ilovalari mavjud: CPython, Jython va Python.NET. Nomidan ko'rinib turibdiki, birinchi muhit C da, ikkinchisi Java da, oxirgisi esa .NET da amalga oshiriladi.

CPython ish vaqti odatda oddiygina Python deb ataladi va odamlar Python haqida gapirganda, ko'pincha bu dasturga murojaat qilinadi. Ushbu dastur C tilida yozilgan tarjimon va kengaytma modullaridan iborat bo'lib, standart C kompilyatori mavjud bo'lgan har qanday platformada ishlatilishi mumkin.Bundan tashqari, turli operatsion tizimlar, jumladan, OC Windows ning turli versiyalari uchun ish vaqtining allaqachon kompilyatsiya qilingan versiyalari mavjud. va turli tarqatishlar.linux. Ushbu va keyingi maqolalarda, agar alohida ko'rsatilmagan bo'lsa, CPython ko'rib chiqiladi.

Jython ish vaqti Java Virtual Machine (JVM) bilan ishlash uchun Python dasturidir. JVM ning 1.2.2 versiyasidan boshlab har qanday versiyasi qo'llab-quvvatlanadi (Javaning joriy versiyasi 1.6). Jython o'rnatilgan Java mashinasini (Java ish vaqti muhiti) va Java dasturlash tilini bilishni talab qiladi. Java manba kodini qanday yozishni bilishingiz shart emas, lekin siz JAR fayllari va Java appletlari, shuningdek JavaDOC formatidagi hujjatlar bilan tanishishingiz kerak bo'ladi.

Atrof-muhitning qaysi versiyasini tanlash faqat dasturchining afzalliklariga bog'liq, umuman olganda, CPython va Jython-ni ham kompyuterda saqlash tavsiya etiladi, chunki ular bir-biriga zid emas, balki bir-birini to'ldiradi. CPython muhiti tezroq ishlaydi, chunki JVM ko'rinishida oraliq qatlam yo'q; bundan tashqari, Pythonning yangilangan versiyalari dastlab CPython muhiti sifatida chiqariladi. Biroq, Jython kengaytma moduli sifatida har qanday Java sinfidan foydalanishi va JVM ilovasi mavjud bo'lgan har qanday platformada ishlashi mumkin.

Ikkala ish vaqti ham taniqli GPL bilan mos keladigan litsenziya ostida chiqariladi, shuning uchun ular tijorat va bepul/bepul dasturiy ta'minotni ishlab chiqish uchun ishlatilishi mumkin. Python uchun ko'pgina kengaytma modullari GPL litsenziyasi ostida chiqariladi va har qanday loyihada erkin foydalanish mumkin, ammo tijoriy kengaytmalar yoki yanada qattiqroq litsenziyalarga ega kengaytmalar ham mavjud. Shuning uchun, Python-dan tijorat loyihasida foydalanayotganda, kengaytmaning plagin litsenziyalarida qanday cheklovlar mavjudligini bilishingiz kerak.

Python bilan ishlashni boshlash

Python-dan foydalanishni boshlashdan oldin uning ish vaqti muhitini o'rnatishingiz kerak - bu maqolada u CPython va shunga mos ravishda python tarjimonidir. O'rnatishning turli usullari mavjud: ilg'or foydalanuvchilar Python-ni umumiy manba kodidan o'zlari kompilyatsiya qilishlari mumkin, siz www.python.org veb-saytidan ma'lum bir operatsion tizim uchun tayyor bajariladigan fayllarni yuklab olishingiz mumkin va nihoyat, ko'plab Linux distributivlari bilan birga keladi. Python tarjimoni allaqachon o'rnatilgan. Ushbu maqola Python 2.x ning Windows versiyasidan foydalanadi, ammo taqdim etilgan misollar Python ning istalgan versiyasida ishga tushirilishi mumkin.

O'rnatuvchi Python bajariladigan fayllarni belgilangan katalogga joylashtirgandan so'ng, siz quyidagi tizim o'zgaruvchilari qiymatlarini tekshirishingiz kerak:

  • YO'L. Ushbu o'zgaruvchi Python o'rnatilgan katalogga yo'lni o'z ichiga olishi kerak, shunda operatsion tizim uni topa oladi.
  • PYTHONHOME. Bu o'zgaruvchi faqat Python o'rnatilgan katalogga yo'lni o'z ichiga olishi kerak. Ushbu katalog standart Python modullari uchun qidiriladigan lib pastki katalogini ham o'z ichiga olishi kerak.
  • PİTONPATH. Python-ga ulanadigan kengaytmali modullarni o'z ichiga olgan kataloglar ro'yxatiga ega o'zgaruvchi (ro'yxat elementlari tizim ajratuvchi bilan ajratilishi kerak).
  • PYTHONSTARTUP. Har safar interaktiv Python tarjimon seansi boshlanganda bajarilishi kerak bo'lgan Python skriptiga yo'lni belgilaydigan ixtiyoriy o'zgaruvchi.

Tarjimon bilan ishlash uchun buyruq qatori quyidagi tuzilishga ega.

PYTHONHOME\python (variantlar) [ -c buyrug'i | skript fayli | - ] (argumentlar)

Python interaktiv rejimi

Tarjimonni buyruq yoki skript faylini ko'rsatmasdan ishga tushirsangiz, u interaktiv rejimda ishlaydi. Ushbu rejimda alohida buyruqlar yoki ifodalarni kiritishingiz mumkin bo'lgan maxsus Python qobig'i ishga tushiriladi va ularning qiymati darhol hisoblab chiqiladi. Bu Python-ni o'rganishda juda qulay, chunki siz ma'lum bir qurilishning to'g'riligini darhol tekshirishingiz mumkin.

Baholangan ifodaning qiymati keyingi ifodalarda ishlatilishi uchun Yagona pastki chiziq (_) nomli maxsus oʻzgaruvchida saqlanadi. Interaktiv seansni Windows tizimida Ctrl-Z yoki Linuxda Ctrl-D tugmalarini bosib tugatishingiz mumkin.

Variantlar - seans davomida tarjimonning harakatini o'zgartirishi mumkin bo'lgan ixtiyoriy qator qiymatlari; ularning ahamiyati ushbu va keyingi maqolalarda muhokama qilinadi. Variantlardan keyin tarjimon bajarishi kerak bo'lgan bitta buyruq yoki bajarilishi kerak bo'lgan skriptni o'z ichiga olgan faylga yo'l keladi. Shuni ta'kidlash joizki, buyruq nuqta-vergul bilan ajratilgan bir nechta ifodalardan iborat bo'lishi mumkin va operatsion tizim uni tarjimonga to'g'ri o'tkazishi uchun qo'shtirnoq ichiga olinishi kerak. Argumentlar bajariladigan skriptga keyingi qayta ishlash uchun uzatiladigan parametrlardir; ular dasturga satr sifatida uzatiladi va bo'shliqlar bilan ajratiladi.

Python to'g'ri o'rnatilganligini va ishlayotganligini tekshirish uchun quyidagi buyruqlarni bajarishingiz mumkin:

c:\>python-v
c:\> python –c “import vaqti; chop etish vaqti.asctime()”

-v opsiyasi ishlatilayotgan Python ilovasining versiyasini ko'rsatadi va undan chiqadi, ikkinchi buyruq esa tizim vaqti qiymatini ekranga chiqaradi.

Python skriptlarini istalgan matn muharririda yozishingiz mumkin, chunki ular oddiy matnli fayllardir, lekin Python bilan ishlash uchun moʻljallangan maxsus ishlab chiqish muhitlari mavjud.

Python sintaksisi asoslari

Python manba kodi skriptlari shunday nomlardan iborat mantiqiy qatorlar, ularning har biri o'z navbatida iborat jismoniy iplar. # belgisi izohlarni bildirish uchun ishlatiladi. Sharhlar va bo'sh satrlar tarjimon tomonidan e'tiborga olinmaydi.

Quyidagi juda muhim jihat Pythonni ikkinchi dasturlash tili sifatida o‘rganayotgan dasturchilar uchun g‘alati tuyulishi mumkin. Gap shundaki, Python-da manba kodidagi iboralarni bir-biridan ajratish uchun mas'ul bo'lgan belgi yo'q, masalan, C++ yoki Java-da nuqta-vergul (;) kabi. Nuqtali vergul bir nechta ko'rsatmalarni bir xil jismoniy chiziqda bo'lsa, ajratish imkonini beradi. Bundan tashqari, jingalak qavslar () kabi qurilish yo'q, bu sizga ko'rsatmalar guruhini bitta blokga birlashtirishga imkon beradi.

Jismoniy satrlar satr oxiri belgisi bilan ajratiladi, lekin agar ifoda bitta satr uchun juda uzun bo'lsa, ikkita jismoniy satrni bitta mantiqiy qatorga birlashtirish mumkin. Buni amalga oshirish uchun birinchi qatorning oxiriga teskari chiziq belgisini (\) kiritishingiz kerak, so'ngra keyingi qator tarjimon tomonidan birinchisining davomi sifatida talqin qilinadi, ammo boshqa belgilar uchun bu mumkin emas. \ belgisidan keyin birinchi qatorda bo'ling, masalan, # bilan izoh. Indentatsiya kod bloklarini ajratib ko'rsatish uchun ishlatiladi. Bir xil o'lchamdagi mantiqiy chiziqlar blokni tashkil qiladi va kichikroq chiziqli mantiqiy chiziq paydo bo'lganda blok tugaydi. Shuning uchun Python skriptining birinchi qatori chekinmasligi kerak. Ushbu oddiy qoidalarni o'zlashtirish sizga yangi tilni o'rganish bilan bog'liq ko'pgina xatolardan qochishga yordam beradi.

Python sintaksisida boshqa dasturlash tillaridan boshqa tub farqlar yo'q. Operatorlar va kalit so'zlarning standart to'plami mavjud, ularning aksariyati dasturchilarga allaqachon tanish, ammo Python-ga xos bo'lganlar ushbu va keyingi maqolalarda ko'rib chiqiladi. O'zgaruvchilar, usullar va sinflar identifikatorlarini o'rnatishning standart qoidalari ham qo'llaniladi - nom pastki chiziq yoki har qanday holatning lotin belgisi bilan boshlanishi kerak va @, $, % ni o'z ichiga olmaydi. Bundan tashqari, identifikator sifatida faqat bitta pastki chiziq belgisidan foydalanish mumkin emas (interaktiv rejim uchun izohga qarang).

Python-da ishlatiladigan ma'lumotlar turlari

Python-da qo'llaniladigan ma'lumotlar turlari ham boshqa tillardagi kabi - butun va real ma'lumotlar turlari; bundan tashqari, murakkab ma'lumotlar turi qo'llab-quvvatlanadi - haqiqiy va xayoliy qism bilan (bunday raqamga misol 1,5J yoki 2j, bu erda J -1 kvadrat ildizidir). Python bitta, ikki yoki uch qo'shtirnoq ichiga olinishi mumkin bo'lgan satrlarni qo'llab-quvvatlaydi, Java-dagi kabi satrlar esa o'zgarmas ob'ektlardir, ya'ni. yaratilgandan keyin ularning qiymatini o'zgartira olmaydi.

Python-da ikkita qiymat variantiga ega mantiqiy bool ma'lumotlar turi ham mavjud - True va False. Biroq, Python-ning eski versiyalarida bunday ma'lumotlar turi mavjud emas edi va qo'shimcha ravishda, har qanday ma'lumot turi mantiqiy qiymatga "True" yoki "False" ga uzatilishi mumkin edi. Barcha nolga teng bo'lmagan raqamlar va bo'sh bo'lmagan satrlar yoki ma'lumotlar to'plamlari "To'g'ri" deb hisoblangan, bo'sh va nol qiymatlar esa "Yolg'on" deb hisoblangan. Bu xususiyat Python-ning yangi versiyalarida saqlanib qolgan, ammo kodning o'qish qobiliyatini oshirish uchun mantiqiy o'zgaruvchilar uchun bool turidan foydalanish tavsiya etiladi. Shu bilan birga, agar siz eski Python ilovalari bilan orqaga qarab muvofiqlikni saqlashingiz kerak bo'lsa, mantiqiy o'zgaruvchilar sifatida 1 (True) yoki 0 (False) dan foydalaning.

Ma'lumotlar to'plami bilan ishlash uchun funksionallik

Python ma'lumotlar to'plamini saqlash uchun uchta turdagi to'plamlarni belgilaydi:

  • tuple;
  • ro'yxat (ro'yxat);
  • lug'at.

Kortej ma'lumotlarning o'zgarmas tartiblangan ketma-ketligidir. U har xil turdagi elementlarni o'z ichiga olishi mumkin, masalan, boshqa kortejlar. Kortej qavslar ichida aniqlanadi va uning elementlari vergul bilan ajratiladi. Tuple() o'rnatilgan maxsus funksiyasi berilgan ma'lumotlar ketma-ketligidan kortejlar yaratish imkonini beradi.

Ro'yxat - elementlarning o'zgaruvchan tartibli ketma-ketligi. Ro'yxatning elementlari ham vergul bilan ajratilgan, lekin allaqachon kvadrat qavs ichida o'rnatilgan. Ro'yxatlar yaratish uchun list() funksiyasidan foydalaniladi.

Lug'at - bu elementni kalit identifikatori bilan birga saqlaydigan xesh-jadval. Elementlarga keyingi kirish ham kalit orqali amalga oshiriladi, shuning uchun lug'atda saqlash birligi kalit ob'ektlar juftligi va bog'langan qiymat ob'ektidir. Lug'at o'zgaruvchan, lekin tartiblanmagan to'plamdir, shuning uchun lug'atdagi elementlarning tartibi vaqt o'tishi bilan o'zgarishi mumkin. Lug'at jingalak qavslar ichida ko'rsatilgan, kalit qiymatdan ikki nuqta bilan ajratilgan va kalit/qiymat juftlarining o'zi vergul bilan ajratilgan. Dict() funktsiyasi lug'atlar yaratish uchun mavjud.

Ro'yxat 1 Python-da mavjud bo'lgan turli xil to'plamlarning namunalarini ko'rsatadi.

Listing 1. Pythonda mavjud to'plam turlari
('w','o','r','l','d') # besh elementdan iborat kortej (2.62,) # bitta element korteji [“test”,“me”] # ikkita element ro'yxati # bo'sh ro'yxat ( 5:'a', 6:'b', 7:'c' ) # 3-elementli lug'at int tugmalari bilan

Pythonda funksiyalarni aniqlash

Python OOP-ni qo'llab-quvvatlasa-da, lekin uning ko'pgina xususiyatlari alohida funktsiyalar sifatida amalga oshiriladi; Bundan tashqari, kengaytma modullari ko'pincha funktsiyalar kutubxonasi shaklida ham ishlab chiqariladi. Funktsiyalar sinflarda ham qo'llaniladi, bu erda ular an'anaviy usul deb ataladi.

Pythonda funksiyalarni aniqlash sintaksisi juda oddiy; yuqoridagi talablarga muvofiq:

def FUNCTION_NAME (parametrlar): ifoda #1 ifoda #2 ...

Ko'rib turganingizdek, def kalit so'zini, ikki nuqta va chekinishni ishlatish kerak. Funktsiyani chaqirish ham juda oddiy:

FUNCTION_NAME (parametrlar)

Ko'rib chiqilishi kerak bo'lgan bir nechta Python-ga xos narsalar mavjud. Java-da bo'lgani kabi, ibtidoiy qiymatlar qiymat bo'yicha uzatiladi (parametrning nusxasi funktsiyaga kiradi va u funktsiya chaqirilishidan oldin o'rnatilgan qiymatni o'zgartira olmaydi) va murakkab ob'ektlar turlari havola orqali uzatiladi (ma'lumotnoma uzatiladi) funktsiyaga va u ob'ektni yaxshi o'zgartirishi mumkin).

Parametrlar oddiygina ro'yxatga olish tartibi yoki nom bo'yicha uzatilishi mumkin, bu holda qo'ng'iroq qilayotganda siz standart qiymatlar mavjud bo'lgan parametrlarni ko'rsatishingiz shart emas, faqat majburiy bo'lganlarni o'tkazing yoki qo'ng'iroq qilishda parametrlar tartibini o'zgartiring. funktsiyasi:

#butun sonlarni bo'lish funksiyasini bajaradi - operator yordamida // def foo(delimoe, delitel): return delimoe // delitel print divide(50,5) # ish natijasi: 10 chop bo'lish(delitel=5, delimoe=50) # natija ishlaydi: 10

Python'dagi funktsiya qiymatni qaytarishi kerak, ya'ni qaytish iborasidan so'ng qaytariladigan qiymatdan foydalanish yoki qaytish bayonoti yo'q bo'lganda, funktsiyaning oxiriga yetganda None doimiysini qaytarishi kerak. Funktsiya e'lonlari misollaridan ko'rinib turibdiki, Pythonda funktsiyadan biror narsa qaytarilganmi yoki yo'qligini ko'rsatish shart emas, ammo funktsiyada qiymatni qaytaruvchi bitta return iborasi mavjud bo'lsa, u holda boshqa qaytish bayonotlari bu funktsiya qiymatlarni qaytarishi kerak va agar bunday qiymat yo'q bo'lsa, siz "None" qaytishini aniq yozishingiz kerak.

Agar funktsiya juda oddiy bo'lsa va bitta satrdan iborat bo'lsa, uni to'g'ridan-to'g'ri foydalanish joyida aniqlash mumkin, Pythonda bunday konstruktsiya lambda funktsiyasi (lambda) deb ataladi. Lambda funksiyasi anonim funksiya (o‘z nomisiz) bo‘lib, uning tanasi ba’zi ifoda qiymatini qaytaruvchi qaytish bayonotidir. Ushbu yondashuv ba'zi holatlarda qulay bo'lishi mumkin, ammo shuni ta'kidlash kerakki, bunday funktsiyalardan qayta foydalanish mumkin emas ("qayerda tug'ilgan bo'lsangiz, bu sizga yordam berdi").

Shuningdek, Pythonning rekursiyadan foydalanishga bo'lgan munosabatini tavsiflash kerak. Odatiy bo'lib, rekursiya chuqurligi 1000 daraja bilan cheklangan va bu darajadan o'tganda, istisno tashlanadi va dastur to'xtaydi. Biroq, agar kerak bo'lsa, bu chegara o'zgartirilishi mumkin.

Python-dagi funktsiyalar hujjatlar yoki ichki o'rnatilgan funktsiyalarni aniqlash qobiliyati kabi boshqa qiziqarli xususiyatlarga ega, ammo ular yanada murakkab misollar bilan seriyadagi keyingi maqolalarda muhokama qilinadi.

O Python(ba'zilar "python" deyishsa-da, "python" deyish yaxshiroq) - ushbu tadqiqot mavzusi, ushbu dasturlash tilini yaratuvchisi, gollandiyalik Gvido van Rossum eng yaxshi aytadi:

"Python - dinamik semantikaga ega, talqin qilinadigan, ob'ektga yo'naltirilgan, yuqori darajali dasturlash tilidir. O'rnatilgan yuqori darajadagi ma'lumotlar tuzilmalari bilan birlashtirilgan. dinamik yozish va bog'lash tilni tezkor dastur ishlab chiqish uchun jozibador qiladi (RAD, Rapid Application Development). Bundan tashqari, u dasturiy ta'minot komponentlarini ulash uchun skript tili sifatida ishlatilishi mumkin. Python sintaksisini o'rganish oson va kodning o'qilishiga urg'u beradi, bu esa dasturiy mahsulotlarni saqlash xarajatlarini kamaytiradi. Python modullilik va kodni qayta ishlatishni rag'batlantiradigan modullar va paketlarni qo'llab-quvvatlaydi. Python tarjimoni va katta standart kutubxonasi barcha asosiy platformalar uchun manba va bajariladigan kod sifatida bepul va qayta tarqatilishi mumkin."

O'rganish jarayonida ushbu ta'rifning ma'nosi ochiladi, ammo hozircha Python universal dasturlash tili ekanligini bilish kifoya. Uning afzalliklari va kamchiliklari, shuningdek, qo'llanilishi sohalari mavjud. Python keng ko'lamli vazifalar uchun keng standart kutubxona bilan birga keladi. Python uchun sifatli kutubxonalar Internetda turli mavzularda mavjud: matnni qayta ishlash vositalari va Internet texnologiyalari, tasvirlarni qayta ishlash, ilovalarni yaratish vositalari, ma'lumotlar bazasiga kirish mexanizmlari, ilmiy hisoblash paketlari, GUI qurish kutubxonalari va boshqalar. Bundan tashqari, Python C, C++ (va Java) bilan integratsiya qilish uchun tarjimonni ushbu tillardagi dasturlarga joylashtirish orqali va aksincha, Python dasturlarida ushbu tillarda yozilgan kutubxonalardan foydalanish orqali juda oddiy vositalarga ega. Python tili bir nechta tillarni qo'llab-quvvatlaydi paradigmalar dasturlash: imperativ (protsessual, tizimli, modulli yondashuvlar), ob'ektga yo'naltirilgan va funktsional dasturlash.

Python - bu dasturiy mahsulotlarni (va ularning prototiplarini) yaratish uchun butun texnologiya deb hisoblashimiz mumkin. U deyarli barcha zamonaviy platformalarda (32-bit va 64-bit) C kompilyatori va Java platformasida mavjud.

Dasturiy ta'minot sanoatida C/C++, Java, Visual Basic, C# dan boshqa hech narsa uchun joy yo'qdek tuyulishi mumkin. Biroq, unday emas. Ehtimol, ushbu ma'ruzalar va amaliy mashqlar kursi tufayli Python yangi tarafdorlariga ega bo'ladi, ular uchun u ajralmas vositaga aylanadi.

Tilni qanday tasvirlash mumkin?

Ushbu ma'ruzaning maqsadi Python-ni tizimli ravishda tasvirlash emas: buning uchun original ma'lumotnoma mavjud. Bu erda tilni bir vaqtning o'zida bir nechta jihatlarda ko'rib chiqish taklif etiladi, bunga qat'iy akademik yondashuvdan ko'ra haqiqiy dasturlashga tezda qo'shilish imkonini beradigan bir qator misollar orqali erishiladi.

Biroq, tilni tasvirlashda to'g'ri yondashuvga e'tibor qaratish lozim. Dasturni yaratish har doim aloqa bo'lib, unda dasturchi kompyuterga harakatlarni bajarishi uchun zarur bo'lgan ma'lumotlarni uzatadi. Dasturchi ushbu harakatlarni qanday tushunishini (ya'ni "ma'nosi") deb atash mumkin semantika. Ushbu ma'noni etkazish vositasi sintaksis dasturlash tili. Xo'sh, tarjimonning o'tganlarga asoslanib qiladigan ishlari odatda deyiladi pragmatika. Dasturni yozishda ushbu zanjirda hech qanday nosozliklar bo'lmasligi juda muhimdir.

Sintaksis to'liq rasmiylashtirilgan qismdir: uni tasvirlash mumkin rasmiy til sintaksis diagrammalar (bu ma'lumotnoma qo'llanmalarida amalga oshiriladi). Pragmatikaning ifodasi til tarjimonining o'zi. Aynan u sintaksisga muvofiq yozilgan "xabar" ni o'qiydi va uni unga kiritilgan algoritmga muvofiq harakatlarga aylantiradi. Faqat semantika norasmiy komponent bo'lib qoladi. Ma'noni rasmiy tavsifga tarjima qilishda dasturlashning eng katta murakkabligi yotadi. Python tilining sintaksisi dasturchining muammoni tushunishini tarjimon tomonidan “tushunish”iga yaqinlashtirishga yordam beradigan kuchli xususiyatlarga ega. Pythonning ichki tuzilishi yakuniy ma'ruzalardan birida muhokama qilinadi.

Python tilining tarixi

Pythonni Gvido van Rossum 1991 yilda Amoeba taqsimlangan operatsion tizimida ishlayotgan paytda boshlagan. Unga tizim qo'ng'iroqlarini qo'llab-quvvatlaydigan kengaytiriladigan til kerak edi. Asos sifatida ABC va Modula-3 olindi. U ilon nomidan ko'ra, BBCning Monty Python's Flying Circus komediya seriali nomi sifatida Pythonni tanladi. O'shandan beri Python Guido ishlagan tashkilotlar ko'magida rivojlandi. Til ayniqsa, nafaqat ijodkorlar jamoasi, balki butun dunyo bo'ylab dasturchilar jamoasi ishlayotgan bir paytda, ayniqsa faol takomillashtirilmoqda. Va shunga qaramay, tilni rivojlantirish yo'nalishi bo'yicha oxirgi so'z Gvido van Rossumda qoladi.

Ushbu material dasturlash bilan allaqachon tanish bo'lgan va Python dasturlash tilini o'rganmoqchi bo'lganlar uchun mo'ljallangan. U sizga Python tilining xususiyatlarini, sintaksis xususiyatlarini va Python bilan ishlashning asosiy tamoyillarini 10 daqiqada misollar bilan ko'rsatish uchun mo'ljallangan. Bu erda "suv" yo'q - dasturlash tili bilan bevosita bog'liq bo'lmagan ma'lumotlar. Boshlaymiz!

Python dasturlash tili kuchli yozish bilan ajralib turadi (Kuchli yozish tilning ifodalarda har xil turlarni aralashtirishga ruxsat bermasligi va avtomatik yashirin konvertatsiyalarni amalga oshirmasligi bilan ajralib turadi, masalan, qatordan to'plamni ayirib bo'lmaydi) , dinamik terish qo'llaniladi - barcha turlari dasturni bajarish jarayonida allaqachon aniqlangan.

O'zgaruvchilar deklaratsiyasi ixtiyoriy, nomlar katta-kichikligiga sezgir (var va VAR ikki xil o'zgaruvchidir).

Python - bu ob'ektga yo'naltirilgan til, tildagi hamma narsa ob'ektdir.

Yordam oling

Python-da yordam (yordam) har doim tarjimonda mavjud. Agar ob'ekt qanday ishlashini bilmoqchi bo'lsangiz, yordamga qo'ng'iroq qiling( ). Shuningdek, foydali ko'rsatma dir() bo'lib, u ob'ektning barcha usullarini va ob'ektlarning xususiyatlarini ko'rsatadi .__doc__ , bu sizga docstringni ko'rsatadi:

>>> help(5) int obyekti bo‘yicha yordam: (va hokazo) >>> dir(5) ["__abs__", "__add__", ...] >>> abs.__doc__ "abs(raqam) -> raqam Argumentning mutlaq qiymatini qaytaring."

Python sintaksisi

Python-da blokni tugatuvchi konstruktsiyalar mavjud emas (masalan, sinf yoki funksiya deklaratsiyasi) - bloklar chekinish yordamida aniqlanadi. Blokning boshida chekinishni oshiring, blok oxirida kamaytiring. Chekishni talab qiladigan bayonotlar ikki nuqta (:) bilan tugatiladi. Blokni boshlash bayonotidan keyin sizda kod bo'lmasa, sintaksis tekshiruvidan o'tish uchun o'tish bayonotini kiriting.

Rangelist == 1 bo'lganda: o'tish

Bir qatorli sharhlar funt belgisi (#) bilan boshlanadi, ko'p qatorli sharhlar sharhning boshida va oxirida (""") ishlatiladi.

Qiymatlar teng belgisi ("=") yordamida tayinlanadi (aslida ob'ektlarga jarayonda nomlar beriladi).

Farqni tekshirish ikkita teng belgilar ("==") bilan amalga oshiriladi.

Siz += operatori yordamida qiymatni oshirishingiz va chap tomonda o'zgaruvchini va o'ng tomonda o'sish / pasayish sodir bo'ladigan qiymatni belgilab, -= bilan kamaytirishingiz mumkin. Bu Python-dagi ko'plab ma'lumotlar turlari, jumladan satrlar bilan ishlaydi.

Bir qatorda bir nechta o'zgaruvchilarga qiymat belgilashingiz mumkin. Misollar:

>>> myvar = 3 >>> myvar += 2 >>> myvar 5 >>> myvar -= 1 >>> myvar 4 """Bu ko‘p qatorli izoh. Quyidagi satrlar ikkita qatorni birlashtiradi.""" >>> mystring = "Salom" >>> mystring += "dunyo." >>> mystring chop Salom dunyo. # Bu o'zgaruvchilarni bir qatorga almashtiradi(!). # Bu kuchli yozishni buzmaydi, chunki qiymatlar # tayinlanmaydi, lekin yangi ob'ektlar # eski nomlarga bog'langan. >>> myvar, mystring = mystring, myvar

Python-da ma'lumotlar turlari

Python-da ro'yxatlar (ro'yxatlar), kortejlar (kortejlar) va lug'atlar (lug'atlar) kabi ma'lumotlar turlari mavjud. Python 2.5 dan oldingi versiyalarda to'plamlar modulidan foydalangan holda va keyingi versiyalarda tilga o'rnatilgan to'plamlar ham mavjud.

Ro'yxatlar bir o'lchovli massivlarga o'xshaydi. Boshqa ro'yxatlardan iborat ro'yxat bo'lishi mumkin.

Lug'atlar - bu kalit orqali ma'lumotlarga kirish mumkin bo'lgan assotsiativ massivlar.

Kortejlar o'zgarmas bir o'lchovli massivlardir.

Python-dagi "massivlar" har qanday turdagi bo'lishi mumkin, ya'ni siz raqamlar, satrlar va boshqa ma'lumotlar turlarini ro'yxatlar/lug'atlar/kortejlarda birlashtirishingiz mumkin.

Birinchi elementning indeksi 0 ga teng. Salbiy indeks qiymati oxirgidan birinchisiga sanashni boshlaydi, [-1] oxirgi elementga ishora qiladi.

O'zgaruvchilar funktsiyalarga ishora qilishi mumkin.

>>> namuna = , ("a", "tuple")] >>> mylist = ["Ro‘yxat 1", 2, 3.14] >>> mylist = "Ro‘yxat 1-bandi" # Biz elementni o‘zgartirmoqdamiz >>> mylist[-1] = 3.21 # Bu yerda biz oxirgi elementga murojaat qilamiz >>> mydict = ("Kalit 1": "Qiymat 1", 2: 3, "pi": 3.14) >>> mydict[ "pi"] = 3.15 # Lug'at qiymatlarini shu tarzda o'zgartirasiz >>> mytuple = (1, 2, 3) >>> myfunction = len >>> print myfunction(mylist) 3

Ikki nuqta (:) yordamida massivni (roʻyxat yoki kortej) kesishingiz mumkin. Indeksning boshlang'ich qiymatini bo'sh qoldirish sizga birinchi qiymatdan boshlashni bildiradi, indeks oxiridagi bo'sh qiymati massivning oxirgi elementini qabul qiladi. Salbiy indekslar massiv oxiridan orqaga qarab hisoblanadi (-1 oxirgi elementni bildiradi).

Misollarga qarang:

>>> mylist = ["Ro'yxat elementi 1", 2, 3.14] >>> ro'yxatni chop etish[:] ["Ro'yxat elementi 1", 2, 3.14000000000000001] >>> ro'yxatni chop etish ["Ro'yxat elementi 1", 2] > >> chop mylist[-3:-1] ["Ro'yxat elementi 1", 2] >>> chop mylist # Uchinchi parametr qo'shilgan "qadam" 1 o'rniga # N element bosqichlarida Python qadamiga ega bo'ladi. # Masalan. , bu birinchi elementni qaytaradi, keyin uchinchisiga o'tadi va # uni qaytaradi (shunday qilib, 0-indekslashda 0 va 2-bandlar). >>> chop mylist[::2] ["Ro'yxat elementi 1", 3.14]

Python tilidagi satrlar

Satrni belgilash uchun apostrof (‘) yoki qo‘sh tirnoq (qo‘sh tirnoq - “) ishlatilishi mumkin. Shu sababli, siz apostroflar bilan belgilangan satr ichida tirnoqlarga ega bo'lishingiz mumkin (masalan, "U "salom" dedi." to'g'ri qatordir).

Ko'p qatorli satrlar uch apostrof yoki tirnoq (""") yordamida belgilanadi. Python unicode-ni qutidan tashqarida qo'llab-quvvatlaydi. Biroq, Python-ning ikkinchi versiyasi unikodni o'z ichiga olgan qatorni belgilash uchun (u) belgisidan foydalanadi: u"Bu unicode string". Python3 barcha satrlari unicode Agar siz Python3 da oldingi versiyalarda asosan satr bo'lgan baytlar ketma-ketligini xohlasangiz, (b) belgisidan foydalaning: b"Bu bayt qatori".

Parametr qiymatlarini satrga almashtirish uchun (%) operatori va kortej ishlatiladi. Har bir %s o‘rniga chapdan o‘ngga siljish elementi qo‘yiladi. Nomlangan parametrlarni almashtirish uchun lug'atdan ham foydalanishingiz mumkin:

>>>chop etish "Ism: %s\ Raqam: %s\ String: %s" % (myclass.name, 3, 3 * "-") Ism: Poromenos raqami: 3 String: --- strString = """ Bu ko'p qatorli satr.""" # OGOHLANTIRISH: "%(key)s" da keyingi s ga e'tibor bering. >>> chop etish "Bu %(fe'l)s a %(ism)s". % ("ism": "test", "fe'l": "is") Bu test.

Oqimni boshqarish bo'yicha ko'rsatmalar - if, for, while

If , for , while operatorlari dasturning bajarilish tartibini boshqarish uchun ishlatiladi. Python-da hech qanday kalit yoki quti yo'q, agar uning o'rniga ishlatilsa. For roʻyxat (yoki kortej) elementlarini takrorlash uchun ishlatiladi. Raqamlar ketma-ketligini olish uchun diapazondan foydalaning ( ). Break tsiklning bajarilishini buzish uchun ishlatiladi.

Ushbu konstruktsiyaning sintaksisi:

Rangelist = diapazon(10) >>> diapazon roʻyxatidagi raqamlar uchun diapazon roʻyxatini chop eting: # Raqam kortejdagi # raqamlardan biri ekanligini tekshiring. agar (3, 4, 7, 9) dagi raqam: # "Break" for ni # "else" bandini bajarmasdan tugatadi. break else: # "Davom etish" tsiklning navbatdagi # iteratsiyasini boshlaydi. Bu "bu erda juda befoyda, chunki # bu tsiklning oxirgi bayonoti. continue else: # "else" bandi ixtiyoriydir va agar tsikl "buzilmagan" bo'lsa # bajariladi. pass # Agar diapazon ro'yxati == 2 bo'lsa, hech narsa qilmang: chop eting "Ikkinchi element (ro'yxatlar 0 ga asoslangan) 2 " elif rangelist == 3: chop eting "Ikkinchi element (roʻyxatlar 0 ga asoslangan) 3" aks holda: diapazon roʻyxati == 1 boʻlganda “Bilmayman” deb chop eting.

Pythonda funksiyalar

Funktsiyalar "def" kalit so'zi yordamida e'lon qilinadi. Ixtiyoriy argumentlar funksiya deklaratsiyasidagi majburiy argumentlarga amal qiladi va standart qiymat bilan belgilanadi. Funktsiyani chaqirishda siz argumentlarni ularning nomi va qiymatini ko'rsatib, ba'zi ixtiyoriy argumentlarni o'tkazib yuborishingiz yoki ularni funksiyada e'lon qilinganidan boshqacha tartibda joylashtirishingiz mumkin.

Funktsiyalar kortejni qaytarishi mumkin va kortejni ochishdan foydalanib, siz bir nechta qiymatlarni qaytarishingiz mumkin.

Lambda funksiyalari bitta argumentni qayta ishlovchi maxsus funksiyalardir.

Parametrlar havola orqali uzatiladi. O'tgan ro'yxatga elementlarni qo'shish orqali siz funktsiyadan tashqarida yangilangan ro'yxatni olasiz. Bunday holda, funktsiya ichidagi parametrlarga yangi qiymat berish mahalliy harakat bo'lib qoladi. Faqat xotira joylashuvi uzatilganligi sababli, parametrga o'zgaruvchi sifatida yangi ob'ektni belgilash yangi ob'ekt yaratilishiga olib keladi.

Kod misollari:

# Def funcvar(x) bilan bir xil: return x + 1 funcvar = lambda x: x + 1 >>> print funcvar(1) 2 # an_int va a_string ixtiyoriy, agar bittasi o‘tkazilmagan bo‘lsa, ularda standart qiymatlar # bo‘ladi ( 2 va mos ravishda "Standart qator"). def passing_example(a_list, an_int=2, a_string="Birlamchi qator"): a_list.append("Yangi element") an_int = 4 a_list, an_int, a_stringni qaytaring >>> my_list = >>> my_int = 10 >> > o'tish_misolini (mening_ro'yxatim, my_int) (, 4, "Birlamchi qator") >>> my_list >>> my_int 10 ni chop etish

Python darslari

Python sinflarda bir nechta merosning cheklangan shaklini qo'llab-quvvatlaydi.

Xususiy o'zgaruvchilar va usullar nomning boshida ikkita pastki chiziq va bittadan ko'p bo'lmagan (masalan: "__spam") yordamida e'lon qilinishi mumkin (odatda, bu tarjimon tomonidan tekshirilmaydi).

Shuningdek, biz sinf misollariga o'zboshimchalik bilan nom berishimiz mumkin. Misollarni ko'rish:

Sinf MyClass(obyekt): umumiy = 10 def __init__(self): self.myvariable = 3 def myfunction(self, arg1, arg2): return self.myvariable # Bu sinfning namunasi >>> classinstance = MyClass() >> > classinstance.myfunction(1, 2) 3 # Bu o'zgaruvchi barcha sinflar tomonidan taqsimlanadi. >>> classinstance2 = MyClass() >>> classinstance.common 10 >>> classinstance2.common 10 # Misol o‘rniga # sinf nomidan qanday foydalanishimizga e’tibor bering. >>> MyClass.common = 30 >>> classinstance.common 30 >>> classinstance2.common 30 # Bu sinfdagi o‘zgaruvchini yangilamaydi, # o‘rniga eski # o‘zgaruvchi nomiga yangi obyektni bog‘laydi. >>> classinstance.common = 10 >>> classinstance.common 10 >>> classinstance2.common 30 >>> MyClass.common = 50 # Bu o‘zgarmadi, chunki "umumiy" # endi misol o‘zgaruvchisi. >>> classinstance.common 10 >>> classinstance2.common 50 # Bu sinf MyClass'dan meros bo'lib o'tadi. Yuqoridagi # sinf misoli "ob'ekt" dan meros bo'lib, uni # "yangi uslubdagi sinf" deb ataydi. # Bir nechta meros quyidagi tarzda e'lon qilinadi: # sinf BoshqaClass(MyClass1, MyClass2, MyClassN) sinf BoshqaClass(MyClass): # "O'z-o'zidan" argumenti avtomatik ravishda # uzatiladi va sinf misoliga ishora qiladi, shuning uchun siz # misol o'zgaruvchilarini yuqoridagi kabi o'rnatishingiz mumkin, lekin class.def __init__(self, arg1) ichidan: self.myvariable = 3 print arg1 >> > classinstance = OtherClass("salom") salom >>> classinstance.myfunction(1, 2) 3 # Bu sinfda .test a'zosi yo'q, lekin # baribir misolga bittasini qo'shishimiz mumkin. E'tibor bering # bu faqat classinstance a'zosi bo'ladi. >>> classinstance.test = 10 >>> classinstance.test 10

Pythonda istisnolar

Python-dagi istisnolar try-except bloklarida ko'rib chiqiladi:

Def some_function(): urinib ko'ring: # Nolga bo'linish 10/0 istisnoni keltirib chiqaradi, bundan mustasno ZeroDivisionError: "Op, yaroqsiz" deb chop eting. boshqa: # Istisno sodir bo'lmadi, biz yaxshimiz. pass finally: # Bu kod bloki ishga tushirilgandan so'ng amalga oshiriladi # va barcha istisnolar ishlov berilgandan so'ng, hatto # ishlov berish paytida yangi istisno paydo bo'lsa ham. “Buni tugatdik” deb chop eting. >>> some_function() Yaroqsiz. Buni tugatdik.

Python-da modullarni import qilish

Tashqi kutubxonalar import kalit so'zidan foydalangan holda importdan keyin ishlatiladi. Ayrim funksiyalarni import qilish uchun importdan ham foydalanishingiz mumkin.

Vaqtdan tasodifiy import import soati randomint = random.randint(1, 100) >>> print randomint 64

Python da fayllar bilan ishlash

Python-da fayllar bilan ishlash uchun juda ko'p kutubxonalar mavjud. Masalan, ketma-ketlashtirish (ma'lumotlarni tuzlangan kutubxona yordamida satrlarga aylantirish):

Import bodring mylist = ["Bu", "is", 4, 13327] # Yozish uchun C:\\binary.dat faylini oching. # fayl nomi qatoridan oldingi r harfi teskari chiziqdan qochish uchun ishlatiladi. myfile = open(r"C:\\binary.dat", "w") pickle.dump(mylist, myfile) myfile.close() myfile = open(r"C:\\text.txt", "w" ) myfile.write("Bu namuna qatori") myfile.close() myfile = open(r"C:\\text.txt") >>> print myfile.read() "Bu namuna qator" myfile .close() # O'qish uchun faylni oching. myfile = open(r"C:\\binary.dat") loadedlist = pickle.load(myfile) myfile.close() >>> yuklanganlar ro‘yxatini chop etish ["Bu", "is", 4, 13327]

Turli xil

  • Shartlar bir-biriga yopishishi mumkin, masalan, 1< a < 3 проверит, что a одновременно меньше 3 и больше 1.
  • Massivlardagi o'zgaruvchilar yoki elementlarni o'chirish uchun del dan foydalanishingiz mumkin.
  • Ro'yxatlar juda kuchli ma'lumotlarni manipulyatsiya qilish imkoniyatlarini beradi. If yoki for iboralaridan keyin for iboralaridan foydalanib ifoda yaratishingiz mumkin:
>>> lst1 = >>> lst2 = >>> print >>> print # Har qanday element uchun shart to‘g‘ri yoki yo‘qligini tekshiring. # "har qanday" ro'yxatdagi biror element rost bo'lsa, rostni qaytaradi. >>> any(]) True # Buning sababi, 4 % 3 = 1 va 1 rost, shuning uchun any() # rostni qaytaradi. # Shart qancha to'g'ri ekanligini tekshiring. >>> yig‘indisi(1 uchun i in, agar i == 4 bo‘lsa) 2 >>> del lst1 >>> lst1ni chop etish >>> del lst1
  • Global o'zgaruvchilar funktsiyalardan tashqarida e'lon qilinadi va ular ichida maxsus deklaratsiyalarsiz o'qilishi mumkin, lekin agar siz ularni yozmoqchi bo'lsangiz, maxsus "global" kalit so'zidan foydalanib, funktsiya boshidan e'lon qilishingiz kerak, aks holda Python yangi qiymat beradi. mahalliy o'zgaruvchiga:
number = 5 def myfunc(): # Bu chop etadi 5. chop raqam def anotherfunc(): # Bu istisno keltirib chiqaradi, chunki o'zgaruvchi chop etishdan oldin # bog'lanmagan. Python # ob'ekt keyinchalik unga bog'lanishini biladi va global ob'ektga kirish o'rniga yangi, mahalliy # ob'ektni yaratadi. chop raqam raqami = 3 def yetanotherfunc(): global raqam # Bu global raqamni to'g'ri o'zgartiradi. raqam = 3

Python dasturlash tilini qanday o'rganish mumkin

Ushbu material Python bo'yicha keng qamrovli qo'llanma deb da'vo qilmaydi. Python dasturlash tilida juda ko'p kutubxonalar va turli funktsiyalar mavjud bo'lib, siz til bilan ishlashni davom ettirish va qo'shimcha manbalarni o'rganish orqali bilib olasiz.

Agar yuqoridagi ma'lumotlar siz uchun etarli bo'lmasa - Python dasturlash tilini tavsiflovchi kengaytirilgan materialni ko'ring - - bu til haqida batafsil ma'lumot beradi.

Boshqa materiallar qatorida men Python The Hard Way o'rganishni tavsiya qilaman. Va, albatta, Python 2 o'quv qo'llanmasi va Python 3 darsligi.

Stavros Korokithakisga "Python-ni 10 daqiqada o'rganing" qo'llanmasi uchun katta rahmat.

Agar siz ushbu materialda biror narsani yaxshilashni istasangiz - izohlarda yozing.

Til sintaksisi Python ko'p jihatdan Perl, C va Java kabi tillarning sintaksisiga o'xshash, ammo ayni paytda ushbu dasturlash tillaridan bir qator farqlar mavjud. Ushbu maqolada biz kerakli narsalarni ko'rib chiqamiz asoslar bu dasturlash tili.

Birinchi Python dasturi:

Birinchidan, shuni ta'kidlash kerakki Python Siz ikkita rejimda dasturlashingiz mumkin: interaktiv va skriptlangan

Interaktiv dasturlash rejimi:

Argument sifatida fayl nomini o'tkazmasdan, u ishlaydi Python tarjimoni:

So'rov qatoridan keyin quyidagi matnni kiriting Python va Enter tugmasini bosing:

>>> chop etish "Salom, Python!"

Agar siz hamma narsani to'g'ri bajargan bo'lsangiz, tarjimon qatorni chiqaradi:

Agar siz xatoga yo'l qo'ysangiz, kodni to'g'ri qayta yozganingizga va 2.x tarjimonidan foydalanayotganingizga ishonch hosil qiling (3.x versiyasi uchun chop etish buyrug'ini ishlatishingiz kerak ("Salom, Python"))

Skriptni dasturlash rejimi:

Python buyruq satrida ishga tushiring fayl nomi bilan (uni skript deb ham yuritiladi) parametr sifatida ushbu faylda yozilgan kodni bajara boshlaydi. Skriptni bajarish tugallangandan so'ng, tarjimon yana nofaol bo'ladi.

Keling, oddiy skript dasturini yarataylik Python. Har qanday matn muharririni oching (Sublime, Notepad++, gedit...), unda test nomi va .py kengaytmali fayl yarating (kodni o'z ichiga olgan barcha fayllar). Python kengaytmasi bo'lishi kerak .py) va bizga tanish bo'lgan kodni ushbu faylga yozing va faylni saqlang:

Chop etish uchun "Salom, Python!"

(Bu shunday deb taxmin qilinadi Python tarjimoni siz uni PATH o'zgaruvchisida o'rnatgansiz, ya'ni tarjimonni ishga tushirish uchun istalgan katalogga pythonni kiritishingiz mumkin)

Shundan so'ng, buyruq satriga quyidagi qatorni kiriting va Enter tugmasini bosing:

Python-da identifikatorlar:

Python tilidagi identifikatorlar o'zgaruvchiga, funksiyaga, sinfga, modulga yoki boshqa ob'ektga murojaat qilish uchun ishlatiladigan nomlar. Identifikator harf (a dan Z gacha) yoki pastki chiziq (_) bilan boshlanishi kerak, undan keyin har qanday miqdordagi harflar, pastki chiziq va raqamlar (0 dan 9 gacha) bo'lishi kerak.

DA Python tinish belgilari yoki @, $ yoki % kabi maxsus belgilar identifikator sifatida ruxsat etilmaydi. Bundan tashqari, Python katta-kichik harf sezgir, ya'ni mushuk va mushuk ular ikki xil nom.

Pythonda identifikatorlarni nomlash uchun quyidagi konventsiya mavjud:

  • Sinf nomlari bosh harf bilan boshlanadi, qolgan barcha identifikatorlar kichik harf bilan boshlanadi.
  • Identifikatorning birinchi belgisi sifatida pastki chiziqdan foydalanish berilgan identifikatorning shaxsiy ekanligini bildiradi (sinfdan tashqari foydalanishdan himoyalangan).
  • Agar identifikator ikkita pastki chiziq bilan boshlansa va tugasa (masalan, __init__), bu tilda aniqlangan maxsus nom ekanligini anglatadi.

Pythonda zahiralangan (kalit so'z) so'zlar:

Bu jadvalda hammasi mavjud Python kalit so'zlari.

va elif agar chop etish
kabi boshqa Import oshirish
ta'kidlamoq bundan mustasno ichida qaytish
tanaffus exec hisoblanadi harakat qilib ko'ring
sinf nihoyat lambda esa
davom eting uchun emas qaysi
def dan yoki Yo'l bering
del global o'tish

Ushbu zaxiralangan so'zlarni o'zgaruvchi nomi yoki boshqa identifikator sifatida ishlatib bo'lmaydi. Hammasi Python kalit so'zlari faqat kichik harflardan iborat. Tarjimonda kalit so'zlar ro'yxatini buyruq bilan olish mumkin

Yordam("kalit so'zlar")

Chiziqlar va chiziqlar:

Birinchi xususiyatlardan biri Python Ushbu dasturlash tilini o'rganishni boshlagan dasturchilarning e'tiborini tortadigan narsa shundaki, u alohida kod bloklarini belgilash uchun qavslardan foydalanmaydi. Ularning o'rniga Python ikki nuqta va chekinish ishlatiladi.

Chiziqlardagi bo'shliqlar soni ixtiyoriydir va har kim o'z xohishiga ko'ra tanlaydi, ammo kelishuv bo'yicha u to'rt bo'shliqqa teng. Bunday holda, butun blokning chegarasi bir xil bo'lishi kerak.

Masalan, ushbu kod bloki ishlaydi (garchi siz buni shunday yozmasligingiz kerak):

Agar rost boʻlsa: “Salom” deb yozing, aks holda: “Xayr” deb chop eting.

Bu xatoga yo'l qo'yadi:

Agar rost boʻlsa: “Salom” deb chop eting.

Shunday qilib, in Python bir xil chekinishli bir nechta kod qatorlari alohida kod blokini hosil qiladi. Bunday tizim tufayli kodning o'qilishi sezilarli darajada oshadi va yozish odati aniq va tuzilgan.

Ko'p qatorli ifodalar:

Python tilidagi ifodalar odatda yangi qator bilan tugaydi. Biroq, bu dasturlash tilida kod satr oxiri bilan tugamasligini ko'rsatadigan maxsus satr uzilish belgisi (\) mavjud. Misol uchun:

Jami = element1 + \ element2 + \ item3

Kvadrat qavslar ((), jingalak qavslar (( )) yoki dumaloq qavslar (()) ichidagi iboralar qator uzilish belgisiga muhtoj emas. Misol uchun:

Kunlar = ["Yakshanba", "dushanba", "seshanba", "chorshanba", "payshanba", "juma", "shanba"]

Python tilidagi iqtiboslar:

DA Python Satr ma'lumotlar turini belgilash uchun bitta ("), qo'sh ("") va uch (""" yoki """) tirnoqlardan foydalanishingiz mumkin va satr bir xil tirnoq bilan boshlanishi va tugashi kerak. Kodning bir nechta satrini o'z ichiga olgan qator uch qo'shtirnoq ichiga olinishi kerak. Misol uchun:

Ism = "wasd" description = "Ba'zi matn" tarjimai holi = """ Bir necha qator kodli uzun matn """

Savollaringiz bormi?

Xato haqida xabar bering

Tahririyatimizga yuboriladigan matn: