Ifodalar
Ba'zi Python iboralar kabi tillarga o'xshashdir C va Java, ba'zilari esa yo'q:
Qo'shish, ayirish va ko'paytirish bir xil, ammo bo'linish harakati boshqacha. Python-da bo'linishlarning ikki turi mavjud. Ular qavatning bo'linishi (yoki butun sonli bo'linish) // va suzuvchi nuqta/bo'linish.[77] Python ham qo'shdi ** eksponentatsiya uchun operator.
Python 3.5-dan yangi @ infix operatori joriy etildi. Kabi kutubxonalar tomonidan foydalanishga mo'ljallangan NumPy uchun matritsani ko'paytirish.[78][79]
Python 3.8 dan sintaksis :=, "morj operatori" deb nomlangan. U kattaroq ifodaning bir qismi sifatida o'zgaruvchilarga qiymatlarni beradi.[80]
Python-da, == raqamlar bilan qiymatlarni taqqoslaydigan Java bilan solishtirganda qiymati bo'yicha taqqoslanadi[81] va mos yozuvlar bo'yicha ob'ektlar.[82] (Ob'ektlarda Java-dagi qiymatlarni taqqoslash. Bilan bajarilishi mumkin teng () usul.) Pythonniki bu operatori ob'ekt identifikatorlarini taqqoslash uchun ishlatilishi mumkin (ma'lumotnoma bilan taqqoslash). Pythonda taqqoslashlar zanjirband bo'lishi mumkin, masalan a <= b <= c.
Python so'zlardan foydalanadi va, yoki, emas ramziy emas, balki mantiqiy operatorlari uchun &&, ||, ! Java va C da ishlatiladi.
Python a ifodasi bilan ifodalangan turga ega ro'yxatni tushunish. Python 2.4 kengaytirilgan ro'yxat tushunchalarini "a" deb nomlangan umumiy ifodaga aylantirdi generator ifoda.[59]
Anonim funktsiyalar yordamida amalga oshiriladi lambda iboralari; ammo, bu tananing faqat bitta ibora bo'lishi mumkinligi bilan cheklangan.
Pythondagi shartli iboralar quyidagicha yoziladi x agar c else y bo'lsa[83] (operandlar tartibidan farq qiladi v? x: y boshqa ko'plab tillar uchun umumiy bo'lgan operator).
Python ularni ajratib turadi ro'yxatlar va koreyslar. Ro'yxatlar quyidagicha yoziladi [1, 2, 3], o'zgarishi mumkin va ularni lug'at kalitlari sifatida ishlatish mumkin emas (lug'at tugmachalari bo'lishi kerak) o'zgarmas Python-da). Tupllar quyidagicha yoziladi (1, 2, 3), o'zgarmasdir va shu tariqa barcha elementlar o'zgarmas bo'lishi sharti bilan lug'atlarning kalitlari sifatida ishlatilishi mumkin. The + operatori ikkita katakchani birlashtirish uchun ishlatilishi mumkin, bu ularning tarkibini to'g'ridan-to'g'ri o'zgartirmaydi, aksincha taqdim etilgan ikkala katakchaning elementlarini o'z ichiga olgan yangi katakchani ishlab chiqaradi. Shunday qilib, o'zgaruvchiga berilgan t dastlab teng (1, 2, 3), ijro t = t + (4, 5) birinchi baholaydi t + (4, 5), bu hosil beradi (1, 2, 3, 4, 5), keyin qaytib tayinlanadi t, shu bilan samarali ravishda "tarkibini o'zgartirish" t, tuple ob'ektlarining o'zgarmas tabiatiga mos keladigan bo'lsa. Qavslar aniq kontekstdagi strelka uchun ixtiyoriydir.[84]
Python xususiyatlari ketma-ketlik bunda har biri tayinlanishi mumkin bo'lgan har qanday narsani (o'zgaruvchiga, yozilishi mumkin bo'lgan xususiyatga va boshqalarga) baho beradigan bir nechta iboralar, xuddi shu tarzda tashkil etiladigan qutbli harflar bilan bir xil tarzda bog'lanadi va umuman chap tomonga qo'yiladi. topshiriq bayonotidagi teng belgi. Bayonot an kutmoqda takrorlanadigan takrorlanayotganda taqdim etiladigan yoziladigan iboralar bilan bir xil miqdordagi qiymatlarni ishlab chiqaradigan va ishlab chiqarilgan qiymatlarning har birini chapdagi tegishli ifodaga belgilab beradigan teng belgining o'ng tomonidagi ob'ekt.[85]
Python-da "string format" operatori mavjud %. Bu shunga o'xshash ishlaydi printf formatdagi satrlar C, masalan. "spam =% s tuxum =% d" % ("bla", 2) ga baho beradi "spam = bla tuxum = 2". Python 3 va 2.6+ da, bu bilan to'ldirildi format () usuli str sinf, masalan. "spam ={0} tuxum ={1}".format("bla", 2). Python 3.6 "f-satrlari" ni qo'shdi: bla = "bla"; tuxum = 2; f'spam ={bla} tuxum ={tuxum}'.[86]
Python-dagi satrlar bo'lishi mumkin birlashtirilgan, ularni "qo'shish" orqali (butun sonlar va suzuvchi qo'shimchalar bilan bir xil operator). Masalan, ‹Code› bosib chiqarish ('spam' + 'tuxum') ‹code› spameggs beradi. Agar sizning qatorlaringizda raqamlar bo'lsa ham, ular butun son sifatida emas, balki qator sifatida qo'shiladi. ‹Kod› bosib chiqarish ("2" + "2") ‹kodni 22 22//code› beradi.
Python-ning har xil turlari mavjud torli harflar:
Bir yoki ikkita tirnoq belgilari bilan ajratilgan qatorlar. Dan farqli o'laroq Unix chig'anoqlari, Perl va Perl ta'sirida bo'lgan tillar, bitta tirnoq va ikkita tirnoq belgilari bir xil ishlaydi. Ikkala turdagi iplar teskari chiziqdan foydalanadi (\) sifatida qochish xarakteri. String interpolatsiyasi Python 3.6-da "formatlangan satr harflari" sifatida mavjud bo'ldi.[86]
Uchta tirnoqli satrlar, ular uchta bitta yoki ikkita tirnoq belgilarining ketma-ketligi bilan boshlanadi va tugaydi. Ular bir nechta qatorlarni qamrab olishi va shunga o'xshash ishlashi mumkin bu erda hujjatlar qobiqlarda, Perl va Yoqut.
Xom ip mag'lubiyatga an bilan old qo'shimchasi bilan belgilangan navlar r. Qochish ketma-ketligi talqin qilinmaydi; shuning uchun to'g'ridan-to'g'ri teskari burilishlar tez-tez uchraydigan joyda, masalan, xom iplar foydalidir doimiy iboralar va Windows- uslub yo'llari. Taqqoslash "@- kotirovka " C #.
Python-da bor massiv indeksi va massivlarni kesish sifatida ko'rsatilgan ro'yxatlardagi iboralar a [kalit], a [start: stop] yoki a [start: stop: step]. Ko'rsatkichlar nolga asoslangan, va salbiy ko'rsatkichlar oxiriga nisbatan. Tilim elementlardan oladi boshlang ga qadar, lekin shu jumladan emas To'xta indeks. Uchinchi bo'lak parametri, deyiladi qadam yoki qadam, elementlarni o'tkazib yuborish va orqaga qaytarish imkonini beradi. Masalan, tilim indekslari chiqarib tashlanishi mumkin a [:] butun ro'yxatning nusxasini qaytaradi. Tilimning har bir elementi a sayoz nusxa.
Pythonda, masalan, tillardan farqli o'laroq, iboralar va iboralar orasidagi farq qat'iyan amalga oshiriladi Umumiy Lisp, Sxema, yoki Yoqut. Bu ba'zi bir funktsiyalarni takrorlashga olib keladi. Masalan:
Tushunishlarni ro'yxatlash va boshqalar uchun- ilmoqlar
Shartli iboralar va boshqalar agar bloklar
The eval () va boshqalar exec () o'rnatilgan funktsiyalar (Python 2-da, exec bayonotdir); birinchisi iboralar uchun, ikkinchisi iboralar uchun.
Bayonotlar ifodaning bir qismi bo'lishi mumkin emas, shuning uchun ro'yxat va boshqa tushunchalar yoki lambda iboralari, barcha iboralar, bayonotlarni o'z ichiga olmaydi. Kabi alohida topshiriq bayonoti a = 1 shartli gapning shartli ifodasi tarkibiga kira olmaydi. Buning afzalligi shundaki, topshiriq operatorini adashtirishda klassik C xatosidan qochish mumkin = tenglik operatori uchun == sharoitda: agar (c = 1) {...} sintaktik jihatdan yaroqli (lekin ehtimol mo'ljallanmagan) C kodi, lekin agar c = 1: ... Python-da sintaksis xatosini keltirib chiqaradi.
Python - bu ko'p paradigma dasturlash tili. Ob'ektga yo'naltirilgan dasturlash va tizimli dasturlash to'liq qo'llab-quvvatlanadi va uning ko'plab xususiyatlari qo'llab-quvvatlanadi funktsional dasturlash va aspektga yo'naltirilgan dasturlash (shu jumladan tomonidan metaprogramma[53] va metaobektlar (sehrli usullar)).[54] Boshqa ko'plab paradigmalar kengaytmalar orqali qo'llab-quvvatlanadi, shu jumladan shartnoma bo'yicha loyihalash[55][56] va mantiqiy dasturlash.[57]
Python foydalanadi dinamik yozish va birikmasi ma'lumotni hisoblash va uchun tsiklni aniqlaydigan axlat yig'uvchi xotirani boshqarish.[58] Shuningdek, u dinamik xususiyatlarga ega ism o'lchamlari (kech majburiy), bu dasturni bajarish paytida usul va o'zgaruvchan nomlarni bog'laydi.
Python dizayni ba'zi qo'llab-quvvatlaydi funktsional dasturlash ichida Lisp an'ana. Unda bor filtr, xaritava kamaytirish funktsiyalar; tushunchalar ro'yxati, lug'atlar, to'plamlar va generator iboralar.[59] Standart kutubxonada qarzga olingan funktsional vositalarni amalga oshiradigan ikkita modul (itertools va functools) mavjud Xaskell va Standart ML.[60]
Tilning asosiy falsafasi hujjatda umumlashtirilgan The Python Zen (PEP 20) o'z ichiga oladi aforizmlar kabi:[61]
Chiroyli xunukdan yaxshiroqdir.
Yashirin narsadan oshkora yaxshiroqdir.
Oddiy murakkabdan yaxshiroqdir.
Murakkab murakkabdan yaxshiroqdir.
O'qish qobiliyati hisobga olinadi.
Python o'zining barcha funktsiyalarini yadroga o'rnatganidan ko'ra, juda yuqori darajada ishlab chiqilgan kengaytiriladigan. Ushbu ixcham modullik uni mavjud dasturlarga programlanadigan interfeyslarni qo'shish vositasi sifatida ayniqsa mashhur qildi. Van Rossumning katta standart kutubxonasi va osonlikcha kengaytiriladigan tarjimoni bo'lgan kichik yadroli til haqidagi tasavvurlari uning ko'ngli qolganidan kelib chiqqan ABC, qarama-qarshi yondashuvni qo'llab-quvvatlagan.[35]
Python dasturchilarga kodlash metodologiyasida tanlov berish bilan birga, sodda, kamroq tartibsiz sintaksis va grammatikaga intiladi. Aksincha Perl"buni amalga oshirishning bir nechta yo'li mavjud"shiori, Python" buni amalga oshirishning aniq usuli bo'lishi kerak, va yaxshisi bitta bo'lishi kerak "dizayn falsafasini o'z ichiga oladi.[61] Aleks Martelli, a Yo'ldosh da Python dasturiy ta'minot fondi va Python kitob muallifi, "Biror narsani" aqlli "deb ta'riflash - bu yozadi emas Python madaniyatidagi iltifot deb qaraldi. "[62]
Python ishlab chiquvchilari undan qochishga intilishadi muddatidan oldin optimallashtirish, va muhim bo'lmagan qismlariga yamoqlarni rad eting CPython aniqlik evaziga tezlikni marginal oshirilishini ta'minlaydigan mos yozuvlar dasturi.[63] Tezlik muhim bo'lganida, Python dasturchisi vaqt kabi muhim funktsiyalarni C kabi tillarda yozilgan kengaytma modullariga ko'chirishi yoki ishlatishi mumkin. PyPy, a hozirda kompilyator. Cython shuningdek, Python skriptini C ga tarjima qiladigan va Python tarjimoniga to'g'ridan-to'g'ri C darajasidagi API qo'ng'iroqlarini amalga oshiradigan mavjud.
Python dasturchilarining muhim maqsadi - uni ishlatishni qiziqarli qilish. Bu tilning nomida aks etgan - ingliz komediya guruhiga hurmat Monty Python[64]- va o'quv qo'llanmalariga va spam-tuxumlarga ishora qiluvchi misollar kabi ma'lumotlarga vaqti-vaqti bilan o'ynaydigan yondashuvlarda ( mashhur Monty Python eskizi) standart o'rniga foo va bar.[65][66]
Umumiy neologizm Python hamjamiyatida pitonik, dastur uslubi bilan bog'liq keng ma'noga ega bo'lishi mumkin. Kodni pitonik deb aytish, uning Python iboralarini yaxshi ishlatishini, tabiiy yoki tilda ravonligini ko'rsatishini, Pythonning minimalist falsafasiga mos kelishini va o'qish imkoniyatiga ahamiyat berishini anglatadi. Aksincha, tushunish qiyin bo'lgan yoki boshqa dasturlash tilidan qo'pol transkripsiya kabi o'qiladigan kod deyiladi jonsiz.
Python-ning foydalanuvchilari va muxlislari, ayniqsa bilimdon yoki tajribali deb hisoblanganlar, ko'pincha shunday nomlanadi Pitonistalar.[67][68]
foydalanmaydi jingalak qavslar bloklarni chegaralash uchun va iboralardan keyin vergul bilan ixtiyoriy. Undan kamroq sintaktik istisnolar va maxsus holatlar mavjud C yoki Paskal.[69]
Chiziq
Do'stlaringiz bilan baham: |