Python dasturlash tili qanday ishlash kerak. Mashinada o'qishni qanday o'rganish kerak? Dinamik kompilyatsiya va baytekod

Python dasturlash tilini o'rganishim kerakmi? Axir, bu tilning o'lib ketayotganini tez-tez eshitish mumkin. Ushbu masala Quora saytining foydalanuvchilari tomonidan muhokama qilindi va o'z fikrlari bilan o'rtoqlashdi.

Bill Carwn, SQL dasturchisi, maslahatchi, trener va muallif

Assembler tili sizga ixcham, samarali va loyihaga optimallashtirilgan kod yozish uchun ajoyib imkoniyat beradi. Siz bir nechta kilobaytni o'z ichiga oladigan ushbu tilda yozilgan kod bilan ajoyib narsalarni qilishingiz mumkin. Ammo montaj tili yordamida olinadigan samaradorlik darajasi qo'shimcha ish, qo'shimcha vaqt va talab qilinadigan ko'nikmalarni oqlamaydi.

To'g'ri, tillar tobora ommalashib bormoqda va uni yo'qotmoqda. Ishlab chiqarish samaradorligi dasturlashda asosiy vazifadir, shuning uchun vaqti-vaqti bilan hech bo'lmaganda ba'zi ish turlari uchun unumdorlikni oshiradigan yangi tillar yaratilmoqda.

Hozirgi kunda ko'pgina dasturchilar yuqori darajadagi tillardan foydalanadilar - ular yanada samarali bo'lishi kerak. Yuqori darajadagi tillarni mashina kodiga (C yoki C ++) kompilyatsiya qilish mumkin, yoki ularni mustaqil arxitektura yordamida baytekodga kompilyatsiya qilish va virtual mashinada (Java) ishlatish mumkin yoki ularni qayta ishlash mumkin (JavaScript, PHP, Ruby, Python, Perl va boshqalar).

Yig'ilish tilini o'rganish kerak degan noto'g'ri fikr, chunki "bu Pythondan yaxshiroq". Bu eskirgan ma'lumotlarga asoslangan soqov nuqtai nazar.

Bill Poucher, ICPC ijrochi direktori, energiya, sintetik genetika va boshqalar sohasidagi dasturlar.

Python-ni o'rganing. O'zingizni dasturlash tajribasi bilan ta'minlang. Bu til o'ziga xos nafislikka ega.

C ni Unix mashinalari uchun til sifatida o'rganing. UNIXni tushunish nisbatan sodda.

Knutni tushunish uchun MIXni o'rganing.

Boshqalar bilan ishlashda qiynalmaslik uchun, shuningdek, ob'ektga yo'naltirilgan dasturlash dasturini o'zlashtirish uchun Java-ni o'rganing.

C ++ tilini xohlagan uslubda dasturlash uchun o'rganing. Uning kuchli tomoni shundaki, bu dasturlashning asosiy tili. Uning zaif tomoni shundaki, unda dasturlash uchun uning uslubini tushunish kerak.

Rekursiya haqida tushunchangizni mustahkamlash uchun LISP-ni o'rganing.

Siz hech bo'lmaganda biror narsani o'rganmasligingiz kerakligini aytdimmi? Yo'q. Chunki bajarilishi kerak bo'lgan yagona narsa - o'zingizni biror narsani doimiy ravishda o'rganishga, ayniqsa muammolarni qanday hal qilishni o'rganishga odatlantirish.

Shiva Shinde, Python-ni kodlash oson, ammo o'qish qiyin

Python dasturlash tili o'lmaydi, u eng tez rivojlanayotgan tillardan biridir.

  1. O'rganish oson
  • Hozirgi vaqtda AQShning eng yaxshi 10 ta kompyuter dasturidan 8 tasi ushbu tildan foydalanadi (Filip Guo, CACM)
  • Python dasturlarida odatda boshqa dasturlash tillarida uchraydigan minimal namunalar mavjud. Shuning uchun, muammolarni hal qilishda ko'pincha nostandart echimlardan foydalanishingiz mumkin.
  • Agar siz dasturlash tajribasiga ega bo'lsangiz, hatto bu tilda ham bo'lmasa, unda siz Python-ni tezda o'zlashtirasiz.

2. To'liq funksionallik

  • Bu nafaqat statistika uchun til. Python ma'lumotlarni yig'ish va tozalash, ma'lumotlar bazalari va yuqori samarali hisoblash mashinalari bilan ishlash uchun, shuningdek boshqa ko'plab imkoniyatlarga ega.
  • Bu juda ko'p o'rnatilgan kutubxonalarga ega bo'lgan umumiy dasturlash tili. Ma'lumotlar va ma'lumotlar bazalarini boshqarish, shuningdek tarmoq dasturlash bilan ishlash uchun juda yaxshi. Bu juda yaxshi o'ylangan til, juda katta miqdordagi resurslar mavjud.

3. Ilmiy ma'lumotlarning jiddiy kutubxonalari

  • Python juda ko'p ma'lumotlardan foydalanadigan muhim ilmiy kutubxonalarga ega.
  • Ushbu ilmiy kutubxonalarning asosini SciPy ekotizimi tashkil etadi, u hatto o'z konferentsiyalarini ham o'tkazadi.
  • Pandas va Matplotlib SciPy tarkibiy qismidir. Ular mashinalarni o'rganish, matn ishlab chiqarish va tarmoqni tahlil qilish kabi turli xil mavzularda yuqori darajadagi ma'lumotlarni taqdim etadi.

Hernan Sulaj, pragmatik dasturchi

Ushbu til juda ommalashgan, uning ahamiyati ilmiy jamoada o'sib bormoqda. Shuningdek, dasturlash tilining foydaliligi siz unga nima qilishni xohlayotganingizga bog'liq.

Menga umuman PHP yoqmaydi, lekin men uning ko'p qirrali va qudratli ekanligini va bu tilni o'zlashtirish uchun oson ekanligini inkor etadigan darajada ahmoq emasman.
  Assemblerni o'rganishga kelsak, bu til qaysi protsessor bilan ishlayotganingizga bog'liq.

Agar siz bittasi bilan qanday ishlashni bilsangiz, uni protsessor oilasida bir muncha vaqt ishlatishingiz mumkin. Vaqt o'tishi bilan va ular ba'zi o'zgarishlarga duch kelishdi. Shu ma'noda, bu eng kam bardoshli tillar oilasidir.

Magnus Lichka, dasturiy ta'minot ishlab chiqaruvchisi va Gothenburgdagi maslahatchi

Ko'p foydalanuvchilar Python-ni yaxshi ko'radilar. Ba'zi dasturlar uchun bu juda sekin bo'ladi va masalan, ular montaj qilish tili bilan tezroq ishlaydi, ammo C dasturida yozilgan kod har qanday platforma uchun ishlayotganiga qaramay, C dasturida ham tez ishlaydi.

Ko'pgina startaplar Python tilida muvaffaqiyat qozonishdi, shundan so'ng ular Java, C ++ yoki S dagi ba'zi dasturlarni qayta yozishga majbur bo'lishdi. Agar ushbu startaplar assembler tili bilan ishlay boshlagan bo'lsa, demak ularning moliyalashtirilishi ular bo'lishidan ancha oldin tugagan. tez, ammo o'qish qiyin bo'lgan kod to'liq bo'lishi kerak edi.

Biroq, montaj tili bilan ishlashda siz nafaqat turli xil protsessor arxitekturalariga, balki turli xil operatsion tizimlarda farq qiladigan texnik tafsilotlarga duch kelishingiz kerak.

So'nggi yangilanish: 01.24.2018

Python - bu har xil turdagi dasturlarni yaratishga mo'ljallangan yuqori darajadagi mashhur dasturlash tili. Bular veb-ilovalar va o'yinlar va ish stoli dasturlari va ma'lumotlar bazalari bilan ishlash. Mashinasozlik va sun'iy intellektni tadqiq qilish sohasida ancha keng tarqalgan pion.

Python birinchi marta 1991 yilda gollandiyalik dasturchi Gido Van Rossum tomonidan e'lon qilingan. O'shandan beri bu til rivojlanishda juda katta yo'lni bosib o'tdi. 2000 yil versiyasi 2000 yilda, 3.0 versiyasi 2008 yilda nashr etilgan. Variantlar orasidagi bunday katta bo'shliqlarga o'xshab ko'rinishga qaramay, obro'-e'tibor doimiy ravishda paydo bo'ladi. Shunday qilib, ushbu materialni yozishda hozirgi joriy versiya 3,7 ga teng. Barcha relizlar, versiyalar va til o'zgarishlari, shuningdek tarjimonlarning o'zi va ish uchun zarur yordam dasturlari va boshqa foydali ma'lumotlar haqida batafsil ma'lumotni https://www.python.org/ rasmiy veb-saytida topish mumkin.

Python dasturlash tilining asosiy xususiyatlari:

Python juda sodda dasturlash tilidir, u qisqa va shu bilan birga juda sodda va tushunarli sintaksisga ega. Shunga ko'ra, o'rganish juda oson va aslida bu ayniqsa o'rganish uchun eng mashhur dasturlash tillaridan biri. Xususan, 2014 yilda AQShda o'qitish uchun eng mashhur dasturlash tili deb tan olindi.

Python nafaqat o'qitish sohasida, balki ma'lum dasturlarni, shu jumladan tijorat dasturlarini yozishda ham mashhur. Shuning uchun ko'pgina kutubxonalar biz foydalana oladigan ushbu til uchun yozilgan.

Bundan tashqari, ushbu dasturlash tilining juda katta hamjamiyati bor, Internetda siz ko'plab foydali materiallar, misollar topishingiz va ushbu til bo'yicha mutaxassislardan malakali yordam olishingiz mumkin.

Python dasturlarini yaratish uchun bizga tarjimon kerak. Uni o'rnatish uchun biz https://www.python.org/ veb-saytiga o'tamiz va yuklamalar bo'limining asosiy sahifasida tilning so'nggi versiyasini yuklab olish uchun havolani topamiz (hozirda u 3.7.2):

Tilning so'nggi versiyasining tavsifi bilan sahifadagi havolani kuzatib boring. Uning pastki qismida siz turli xil operatsion tizimlar uchun tarqatish ro'yxatini topishingiz mumkin. Bizga kerak bo'lgan paketni tanlang va uni yuklab oling. Masalan, mening vaziyatimda, bu Windows 64-bitli, shuning uchun paketning havolasini tanlayman Windows x86-64 o'rnatiladigan dastur. Distribyutorni yuklab olingandan so'ng, uni o'rnating.

Shunga ko'ra, MacOS uchun siz MacOS 64 bitli o'rnatuvchini tanlashingiz mumkin.

Windows-da, o'rnatuvchi ishga tushirilganda, o'rnatish ustasi oynasini ishga tushiradi:

Bu erda biz tarjimon o'rnatiladigan yo'lni belgilashimiz mumkin. Sukut sifatida qoldiring, ya'ni. C: \\ Foydalanuvchilar \\ [foydalanuvchi nomi] \\ AppData \\ Mahalliy \\ Dasturlar \\ Python \\ Python36 \\.

Bundan tashqari, eng past qismida, atrof-muhit o'zgaruvchilarida tarjimonga yo'lni qo'shish uchun "Python-ga Python 3.6 qo'shish" katakchasini belgilang.

Windows-da "Boshlash" menyusiga o'rnatilgandan so'ng, biz turli xil python dasturlariga kirish uchun piktogramlarni topamiz:

Bu erda Python 3.7 yordam dasturi (64-bit) biz skriptni ishlatishimiz mumkin bo'lgan tarjimonni anglatadi. Fayl tizimida tarjimon faylining o'zi o'rnatish amalga oshirilgan yo'l bo'ylab topilishi mumkin. Windows-da, bu standart yo'l. C: \\ Foydalanuvchilar \\ [foydalanuvchi nomi] \\ AppData \\ Mahalliy \\ Dasturlar \\ Python \\ Python37, va tarjimon o'zi python.exe faylini taqdim etadi. Linux-da o'rnatish /usr/local/bin/python3.7 yo'li bo'ylab amalga oshiriladi.

Python puxta ishlab chiqilgan dasturlash tili bo'lib, real muammolarni echimini ishlab chiquvchilar har kuni echishi kerak bo'lgan narsalar toifasidan echish uchun juda mos keladi. U turli dasturlarda - boshqa dasturiy komponentlarni boshqarish vositasi sifatida va mustaqil dasturlarni amalga oshirish uchun ishlatiladi. Aslida, Python ko'p maqsadli dasturlash tili sifatida o'ynashi mumkin bo'lgan rollarning doirasi deyarli cheksiz: uni amalga oshirish uchun foydalanish mumkin

veb-saytlar va o'yin dasturlaridan robot va kosmik kemalarni boshqarishgacha bo'lgan har qanday narsa.

Biroq, endi Python-ning qamrovini bir nechta keng toifalarga bo'lish mumkin. Keyingi bir nechta bo'limlarda hozirgi kunda Python-dan eng ko'p foydalaniladigan narsalar, shuningdek har bir hududda ishlatiladigan vositalar tasvirlangan. Biz bu erda aytib o'tilgan vositalarni o'rganish imkoniyatiga ega bo'lmaymiz. Agar ulardan biri sizni qiziqtirsa, Python loyihasi veb-saytiga tashrif buyuring

Tizimli dasturlash

Python-ning operatsion tizim xizmatlariga kirish uchun o'rnatilgan interfeysi uni ko'chma dasturlar va tizimni boshqarish vositalarini (ba'zida qobiq vositalari deb atash mumkin) yaratishda ideal vosita qiladi. Python dasturlari fayllar va kataloglarni qidirish, boshqa dasturlarni ishga tushirish, bir nechta jarayonlar va iplar yordamida parallel hisob-kitoblarni amalga oshirishlari mumkin va

juda ko'p.

Python standart kutubxonasi POSIX standartlariga to'liq mos keladi va operatsion tizimning barcha tipik vositalarini qo'llab-quvvatlaydi: atrof-muhit o'zgaruvchilari, fayllar, rozetkalar, quvurlar, jarayonlar, ko'p tishli ijro modeli, odatiy iboralar, taqriz satrlari argumentlari, ma'lumot oqimining standart kirish interfeyslari yordamida taqlid. qobiq buyruqlarini ishga tushirish, fayl nomlarini qo'shish va boshqalar

Bunga qo'shimcha ravishda, Python tizim interfeysi ko'chma, masalan, katalog daraxtini nusxalash, qanday operatsion tizimda ishlatilganidan qat'i nazar, o'zgarishlarni talab qilmaydi. EVE Online tomonidan ishlatiladigan Stackless Python tizimi, shuningdek, ma'lumotlarni parallel ravishda qayta ishlash uchun ilg'or echimlarni taklif etadi.

GUI

Python-ning soddaligi va yuqori rivojlanish tezligi uni ajoyib GUI vositasi qiladi. Python Tk GUI API-ga tkinter deb nomlangan standart ob'ektga yo'naltirilgan interfeysni o'z ichiga oladi (Python 2.6 da u Tkinter deb ataladi) t, bu Python dasturlariga operatsion tizimga xos bo'lgan tashqi ko'rinishga ega portativ grafik interfeysni amalga oshirishga imkon beradi. Python asosidagi GUI /

tkinterni MS Windows, X Window (bir tomonlama UNIX va Linux tizimlarida) va Mac OS-da (klassik versiyada ham, OS X-da ham) o'zgartirishsiz ishlatish mumkin. Bepul PMW kengaytmasi tkinter to'plami uchun qo'shimcha vizual qismlarni o'z ichiga oladi. Bundan tashqari, C ++ kutubxonasi bazasida WxPython GUI API mavjud bo'lib, u Python-da ko'chma grafik interfeyslarni qurish uchun alternativ vositalarni taklif qiladi.

PythonCard va Dabot kabi yuqori darajadagi vositalar wxPython va tkinter kabi API-lar atrofida qurilgan. Kerakli kutubxonani tanlashda siz Qt (PyQt-dan foydalanish), GTK (PyGtk-dan foydalanish), MFC (PyWin32-dan foydalanish), .NET (IronPython-dan foydalanish), Swing (Jython-dan foydalanish) kabi boshqa GUI yaratish vositalaridan ham foydalanishingiz mumkin. - Python tilining Java-da qo'llanilishi, bu 2-bo'limda yoki JPype-da tasvirlangan). Keyingi bo'limda tavsiflangan Jython, Python veb-ramkalari va CGI skriptlaridan foydalanishingiz mumkin va veb-interfeysli yoki yuqori interfeys talabisiz dasturlarni ishlab chiqish uchun foydalanuvchi interfeysini yaratish uchun qo'shimcha imkoniyatlarni taqdim etishingiz mumkin.

Veb-skript

Python tarjimoni standart Internet modullari bilan ta'minlangan, bu dasturlarga mijoz va server rejimida turli xil tarmoq operatsiyalarini bajarishga imkon beradi. Skriptlar rozetkalar orqali o'zaro aloqa qilishlari, server tomonidan CGI skriptlariga berilgan shakllardan ma'lumotlarni olishlari mumkin; FTP orqali fayllarni uzatish; XML fayllarini qayta ishlash; uzatish, qabul qilish, yaratish va tahlil qilish

elektron pochta xabarlari Belgilangan URL manzillaridan veb-sahifalarni yuklab oling qabul qilingan veb-sahifalarning HTML va XML belgilarini tahlil qilish; XML-RPC, SOAP va Telnet shovqinlarini va boshqalarni amalga oshiring.

Python-ni tashkil etadigan kutubxonalar bunday vazifalarni amalga oshirishni juda osonlashtiradi.

Bundan tashqari, Python tarmoq dasturlarini Internetda topish mumkin bo'lgan uchinchi tomon vositalarining katta to'plami mavjud. Masalan, HTMLGen tizimi Python sinf tavsiflari asosida HTML sahifalarni yaratishga imkon beradi. Mod_python to'plami Apache veb-serverida ishlaydigan Python skriptlarini ishga tushirish uchun mo'ljallangan va Python Server Pages dvigatel shablonlarini qo'llab-quvvatlaydi. Jython tizimi ta'minlaydi

muammosiz Python / Java integratsiyasi va mijoz tomonida ishlaydigan server yonma-yon turadigan ilovalarni qo'llab-quvvatlaydi.

Bunga qo'shimcha ravishda, Python-da to'liq ishlaydigan va yuqori sifatli veb-saytlarni tezda yaratish qobiliyatini qo'llab-quvvatlaydigan Django, TurboGears, web2py, Pylons, Zope va WebWare kabi Python uchun to'liq veb-ishlab chiqish paketlari mavjud. Bularning aksariyati ob'ektlarga nisbatan xaritalash, Model / View / Controller arxitekturasi, server tomonlari skriptlari, shablonlarni qo'llab-quvvatlash va AJAX texnologiyalari kabi xususiyatlarni o'z ichiga oladi.

veb-ilovalarni ishlab chiqish uchun to'liq va ishonchli echimlar.

Komponentlarni integratsiyasi

Python-dan foydalangan holda dasturiy ta'minot tarkibiy qismlarini bitta dasturga integratsiya qilish imkoniyati yuqorida biz Python-ni boshqarish tili sifatida gaplashganda muhokama qilingan edi. Pythonning kengayishi va unga qo'shilish qobiliyati

c va C ++ tizimlari uni boshqa tizimlar va tarkibiy qismlarning harakatlarini tavsiflash uchun qulay va moslashuvchan tilga aylantiradi. Masalan, C tilidagi kutubxona bilan integratsiya Python-ga kutubxona tarkibiy qismlarini tekshirish va ishga tushirishga imkon beradi va Python-ni dasturiy mahsulotlarga o'rnatish ushbu mahsulotlarni qayta tiklamasdan yoki ularni dastlabki kod bilan ta'minlamasdan dasturiy mahsulotlarni sozlash imkonini beradi.

Dastur kodini avtomatik ravishda yaratadigan Swing va SIP kabi vositalar, Python-da kompilyatsiya qilingan tarkibiy qismlarni keyinchalik skriptlarda ishlatish uchun bog'lash harakatlarini avtomatlashtirishi mumkin va Cython tizimi dasturchilarga Python va C. Hug Python kabi platformalarda dastur kodini aralashtirishga imkon beradi. KOM

mS Windows-da, Jython - Java dasturida, IronPython - .NET dasturida va turli xil CORBA dasturlarida dasturiy komponentlar bilan o'zaro aloqalarni tashkil etishning alternativ usullari mavjud. Masalan, Windows operatsion tizimida Python skriptlari MS Word va Excel kabi dasturlarni boshqarish platformalaridan foydalanishi mumkin.

Ma'lumotlar bazasi uchun dasturlar

Python barcha asosiy aloqador ma'lumotlar bazalariga kirish uchun interfeyslarga ega - Sybase, Oracle, Informix, ODBC, MySQL, PostgreSQL, SQLite va boshqalar. Python dunyosida turli xil ma'lumotlar bazalariga kirishni birlashtiradigan Python skriptlaridan SQL ma'lumotlar bazalariga kirish uchun ko'chma ma'lumotlar bazasi dasturiy interfeysi mavjud. Masalan, ko'chma API-dan foydalanganda bepul MySQL ma'lumotlar bazasi bilan ishlashga mo'ljallangan skript boshqa ma'lumotlar bazalari tizimlari (masalan, Oracle) bilan deyarli o'zgarishsiz ishlay oladi. Buning uchun zarur bo'lgan narsa ishlatilgan past darajadagi interfeysni almashtirishdir.

Standart tuzlash moduli oddiy dasturlarni saqlash tizimini amalga oshiradi, bu dasturlarga Python ob'ektlarini fayllarda yoki ixtisoslashtirilgan ob'ektlarda saqlash va tiklashga imkon beradi. Internetda, shuningdek, ZODB deb nomlangan uchinchi tomon ishlab chiquvchilari tomonidan yaratilgan tizimni topishingiz mumkin.

Bu to'liq ob'ektga yo'naltirilgan ma'lumotlar bazasi.

python skriptlarida foydalanish uchun. Shuningdek, bor

namoyish etadigan SQLObject va SQLAlchemy kabi vositalar

python klassidagi modeldagi aloqalar jadvallari. Python 2.5-dan boshlab,

python-ning standart qismi SQLite ma'lumotlar bazasi.

Tez prototiplash

Python dasturlarida Python va C dasturlarida yozilgan komponentlar bir xil ko'rinadi. Buning yordamida siz avval Python tilida tizimlarning prototiplarini yaratishingiz, so'ngra tanlangan qismlarni C va C ++ kabi kompilyatsiya qilinadigan tillarga o'tkazishingiz mumkin. Ba'zi boshqa prototiplarni ishlab chiqish vositalaridan farqli o'laroq, Python prototip tuzatilgandan so'ng tizimni to'liq qayta yozishni talab qilmaydi. Tizimning C ++ ta'minotiga qadar ishlashni talab qilmaydigan qismlari

python-da qoldiring, bu esa bunday tizimni ishlatish va undan foydalanishni sezilarli darajada osonlashtiradi.

Matematik dasturlash

va ilmiy hisoblash

Yuqorida aytib o'tilgan matematik hisob-kitoblar uchun NumPy kengaytmasi qator ob'ektlari, oddiy matematik kutubxonalar interfeysi kabi juda kuchli elementlarni o'z ichiga oladi. NumPy kengaytmasi - kompilyatsiya dasturlash tillarida yozilgan matematik kutubxonalar bilan integratsiya orqali Pythonni murakkab, ammo qulay matematik hisoblash dasturiy vositasiga aylantiradi, bu ko'pincha an'anaviy kompilyatsiya tillarida yozilgan mavjud kodni, masalan, FORTRAN va C ++ o'rnini bosishi mumkin.

Python uchun qo'shimcha matematik vositalar animatsion effektlar va uch o'lchovli ob'ektlarni yaratish qobiliyatini qo'llab-quvvatlaydi, parallel hisob-kitoblarni tashkil etishga imkon beradi va hokazo. Masalan, mashhur SciPy va ScientificPython kengaytmalari ilmiy hisoblash uchun qo'shimcha kutubxonalarni taqdim etadi va NumPy kengaytma imkoniyatlaridan foydalanadi.

O'yinlar, rasmlar, sun'iy intellekt,

XML robotlari va boshqalar

Python dasturlash tili bu erda aytib o'tilganlarga qaraganda kengroq vazifalarni hal qilish uchun ishlatilishi mumkin. Masalan:

O'yin dasturlari va animatsiyalar yordamida yarating

pygame tizimlari

Boshqa kompyuterlar bilan ketma-ket aloqa qilish

pySerial kengaytmasi yordamida port

Rasmlarni PIL kengaytmalari, PyOpenGL,

Blender, Mayya va boshqalar

PyRo vositasi yordamida robotni boshqaring

Xml to'plami, xmlrp moduli yordamida XML hujjatlarini tahlil qiling

plash va uchinchi tomon kengaytmalari

Neyro-emulyator yordamida sun'iy aqlni dasturlash

ekspert tizimlarining tarmoqlari va qobiqlari

NLTK to'plamidan foydalanib, tabiiy til birikmalarini tahlil qiling.

Siz hatto PySol-dan foydalanib solitaire tarkibini ajratishingiz mumkin. PyPI veb-saytida yoki qidirish mexanizmlari orqali ko'plab boshqa amaliy dasturlar uchun qo'llab-quvvatlashni topish mumkin (Google yoki http://www.python.org-da havolalarni qidiring).

Umuman olganda, Python-dan ko'pgina foydalanish komponentlarning integratsiyasi deb ataladigan bir xil rolni o'zgartirishdir. Python-dan C-da yozilgan komponentlar kutubxonalariga interfeys sifatida foydalanish Python-da turli xil amaliy sohalardagi muammolarni hal qilish uchun skriptlarni yaratishga imkon beradi. Integratsiyani qo'llab-quvvatlaydigan ko'p qirrali, ko'p maqsadli dasturlash tili sifatida, Python  juda keng qo'llanilishi mumkin.

Aytgancha, noutbukni quvvat bilan ta'minlashda muammolaringiz bormi? Sizga noutbuk uchun quvvat manbalarini juda arzon narxlarda sotib olishingizni maslahat beramiz. Kompaniya darrom.com.ua veb-saytida har qanday noutbuk uchun quvvat manbalarini topishingiz mumkin.

Python  - Kuchli va oson o'rganiladigan dasturlash tili. Bu qulay yuqori darajadagi ma'lumotlar tuzilmalari va ob'ektga yo'naltirilgan dasturlash uchun sodda, ammo samarali yondashuvni ta'minlaydi. Python  talqin qilingan til. Yozma dasturlarni ishlatish uchun sizga CPython tarjimoni kerak. Piton tarjimoni va katta standart kutubxona rasmiy veb-saytdagi barcha asosiy platformalar uchun manba va ikkilik fayllar shaklida bemalol mavjud. Python  http://www.python.org va cheklovsiz tarqatilishi mumkin. Bundan tashqari, sayt tarqatish va ko'plab uchinchi tomon modullariga va batafsil hujjatlarga havolalarni o'z ichiga oladi.
  Til aniq va izchil sintaksisga ega, puxta o'ylangan modullik va miqyoslilik xususiyatiga ega, shuning uchun tilda yozilgan manba kodi Python  dasturlarni o'qish oson. Tilni ishlab chiquvchilar Python  "Python Zen" deb nomlangan ma'lum dasturiy falsafaga amal qiling. Uning matni ushbu buyruqni ishlatgan holda tarjimon tomonidan berilgan:

   \u003e\u003e\u003e bu Python Zen-ni import qiling, Tim Peters Go'zal chirkindan afzaldir. Aniqlik yashirindan yaxshiroqdir. Oddiy murakkabdan yaxshiroq. Murakkabdan ko'ra murakkabroq. Kvartira ichkaridan yaxshiroqdir. Zichroq zichroqdan yaxshiroqdir. O'qish soni hisobga olinadi. Maxsus holatlar "qoidalarni buzish uchun etarli emas. Garchi amaliylik poklikni buzadi. Xatolar hech qachon jimgina o'tmasligi kerak. Ochiq jim bo'lmasdan. Ehtimol noaniqlik bo'lsa, taxmin qilish vasvasasidan voz keching. Bitta bo'lishi kerak va afzal bittasi bo'lishi kerak". Siz buni gollandiyaliksiz aniqlamasligingiz mumkin. Hozir har qachongidan ham yaxshi. Garchi hech qachon hozirgi paytda * hozirdan yaxshiroq emas. Agar amalga oshirishni tushuntirish qiyin bo'lsa, bu yomon fikr. Agar uni tushuntirish oson bo'lsa, yaxshi fikr bo'lishi mumkin. Ism bo'shliqlari - bu ulkan g'oyani qo'llab-quvvatlaydigan narsalardan ko'pini qilaylik!

Tarjimada bu quyidagicha ko'rinadi:

  •   Go'zal chirkindan yaxshiroqdir.
  •   Aniqlik yashirindan yaxshiroqdir.
  •   Oddiy murakkabdan yaxshiroq.
  •   Murakkab murakkabdan yaxshiroqdir.
  •   Kvartira ichkaridan yaxshiroqdir.
  •   Zichroq zichroqdan yaxshiroq.
  •   O'qish bilan bog'liq masalalar.
  •   Maxsus holatlar qoidalarni buzadigan darajada maxsus emas.
  •   Shu bilan birga, amaliylik nomukammallikdan ko'ra muhimroqdir.
  •   Xatolar hech qachon buzilmasligi kerak.
  •   Agar aniq oshkor qilmasa.
  • Noaniqliklarga duch kelganda, taxmin qilish vasvasasidan voz keching.
  •   Buning bitta va ravshan bitta usuli bo'lishi kerak.
  •   Garchi dastlab golland emasligingiz aniq bo'lmasa ham.
  •   Hozir har qachongidan ham yaxshi.
  •   Garchi hozirgi paytda hech qachon yaxshiroq bo'lmasada.
  •   Agar amalga oshirishni tushuntirish qiyin bo'lsa, fikr yomon.
  •   Agar amalga oshirishni tushuntirish oson bo'lsa, ehtimol g'oya yaxshi.
  •   Ism maydonlari - bu ajoyib narsa! Biz ularni kattaroq qilamiz!

Python  - Faol ravishda rivojlanayotgan dasturlash tili, yangi versiyalari taxminan har ikki yarim yilda chiqariladi. Shu sababli va boshqa bir qator sabablar Python  ANSI, ISO yoki boshqa rasmiy standartlar mavjud emas; CPython ularning rolini o'ynaydi.

Til tarixi

Python tilining rivojlanishi 1980 yil oxirida Gollandiya CWI instituti xodimi tomonidan boshlangan. Tarqalgan Amoeba OS kengaytirilgan skript tilini talab qildi, buning uchun Guido van Rossum Python-ni yaratdi. Yangi til ABC tili uchun eng yaxshi amaliy dasturlarni jalb qildi. 1991 yil fevral oyida Guido manbaning matni alt.s manbalarini yangiliklar guruhida e'lon qildi. Til nomi sudralib yuruvchilarning turlaridan kelib chiqmagan. Muallif bu nomni 1970-yillardagi Monty Pythonning Uchib ketgan sirki deb nomlangan britaniyalik mashhur komediya televizion tomoshasi sharafiga qo'ydi. Shunga qaramay, tilning timsoli ilon boshlari bilan tasvirlangan. Keng qamrovli sinovdan so'ng Python 3.0 ning birinchi versiyasi chiqdi. Bugungi kunda rivojlanishning ikkala sohasi qo'llab-quvvatlanadi (Python 3.x va 2.x).

Python ko'plab dasturlash tillari ta'siri ostida yaratilgan: Modula-3, C, C ++, Smalltalk, Lisp, Fortran, Java, Miranda, Icon. Python juda aniq sintaksisga ega bo'lishiga qaramay, ushbu tilning dizayn tamoyillaridan biri eng kam ajablantiradigan printsipdir.

Standart kutubxona

Boy standart kutubxona Pythonning diqqatga sazovor joylaridan biridir. Ko'p tarmoq protokollari va Internet formatlari bilan ishlash uchun vositalar mavjud. Oddiy iboralar, matnli kodlash, multimedia formatlari, kriptografik protokollar, arxivlar bilan ishlash uchun modullar mavjud. Oddiy kutubxonadan tashqari, turli platformalarda barcha tizim qo'ng'iroqlariga interfeysni ta'minlaydigan ko'plab kutubxonalar mavjud.
  Python uchun DB-API 2 ma'lumotlar bazasi uchun dastur interfeysining spetsifikatsiyasi qabul qilindi va turli xil ma'lumotlar bazalariga kirish uchun ushbu spetsifikatsiyaga mos keladigan paketlar ishlab chiqildi: Oracle, MySQL, PostgreSQL, Sybase, Firebird (Interbase), Informix, Microsoft SQL Server va SQLite.
Ko'p o'lchovli qatorlar bilan ishlash uchun NumPy kutubxonasi sizga ixtisoslashtirilgan paketlar bilan taqqoslanadigan ilmiy hisob-kitoblarni bajarishga imkon beradi. SciPy NumPy-dan foydalanadi va matematik algoritmlarning keng doirasiga kirishni ta'minlaydi. Numarray katta hajmdagi ilmiy ma'lumotlar bilan ishlash uchun maxsus mo'ljallangan.
  Python C va C ++ tillarida maxsus modullarni yozish uchun oddiy va qulay C API ta'minlaydi. SWIG kabi vosita Python kodida C / C ++ kutubxonalaridan foydalanish uchun deyarli avtomatik ravishda bog'lanishlarni olish imkonini beradi. Ctypes standart kutubxona vositasi Python dasturlariga to'g'ridan-to'g'ri dinamik C kutubxonalariga kirishga imkon beradi. Sizga C / C ++ kodini to'g'ridan-to'g'ri Python manbali fayllariga kiritishga imkon beradigan modullar mavjud, ular kengaytmalarni yaratadi.
  Python va undagi kutubxonalarning aksariyati bepul va manba kodlarida taqdim etiladi. Bundan tashqari, ko'plab ochiq tizimlardan farqli o'laroq, litsenziya Python-dan tijorat ishlarida foydalanishni cheklamaydi va mualliflik huquqidan boshqa majburiyatlarni zimmasiga olmaydi.

Qo'llash sohalari

Python - barqaror va keng tarqalgan til. U ko'plab loyihalarda va turli xil fazilatlarda qo'llaniladi: asosiy dasturlash tili sifatida yoki kengaytmalarni yaratish va amaliy integratsiya uchun. Python ko'plab loyihalarni amalga oshirdi va kelajakda dasturlarni prototiplashda faol foydalanilmoqda. Python ko'plab yirik kompaniyalar tomonidan qo'llaniladi.
  NumPy, SciPy va MatPlotLib paketlari bilan Python ilmiy hisoblashlar uchun universal muhit sifatida mashhur Matlab, IDL tijorat paketlarini almashtirish uchun faol foydalanilmoqda.
  Houdini va Nuke kabi professional 3D grafik dasturlarida Python dasturlarning standart xususiyatlarini kengaytirish uchun ishlatiladi.

Manbalar

Taqdimotlar

Uy vazifasi

Xabarlarni tayyorlang:

  •   Python olimlar uchun vosita sifatida
  •   Python va Ruby (taqqoslash)
  •   Python va WEB
  •   Python va grafik kutubxonalar (wxPython, PyQt, PyGTK va boshqalar) yordamida oynali dasturlarni yaratish

Keling, nazariy va amaliy qismga o'tamiz va tarjimon nimadan boshlaylik.

Tarjimon

Tarjimon - Bu boshqa dasturlarni ishlaydigan dastur. Pythonda dastur yozganingizda, tarjimon dasturingizni o'qiydi va undagi ko'rsatmalarni bajaradi. Aslida, tarjimon bu sizning dastur kodingiz va kompyuteringizning apparatlari o'rtasidagi dastur mantig'ining qatlamidir.

Amaldagi Python versiyasiga qarab, tarjimon o'zi C dasturida, Java sinflari to'plamida va boshqa biron bir shaklda, lekin keyinchalik undan ko'prog'ini amalga oshirishi mumkin.

Konsolda skriptni ishga tushirish

Keling, tarjimonni konsolda ishga tushiramiz:

Endi buyruqlar kiritilishini kutmoqda, shu erda quyidagi yo'riqnomani kiriting:

"Salom dunyo!"

xursandchilik, bizning birinchi dasturimiz! : D

Fayldan skriptni ishga tushirish

"Test.py" faylini quyidagi tarkib bilan yarating:

   # chop "salom olami" ni "salom olami" ni bosib chiqaring # 2 bosma 10 bosma kuch 2 2 10 *

va ushbu faylni bajaring:

   # python /path/to/test.py

Dinamik kompilyatsiya va baytekod

Skriptni ishga tushirgandan so'ng, avval virtual mashina uchun skriptning dastlabki kodini baytekodga to'playdi. Tarkibi  - bu shunchaki tarjima bosqichi, va bytecode - bu dasturning dastlabki kodini past darajadagi platformadan mustaqil taqdim etish. Python dasturni bajarish tezligini oshirish uchun skriptning dastlabki kodidagi har bir yo'riqnomani bytecode ko'rsatmalar guruhiga tarjima qiladi, chunki baytekod juda tez ishlaydi. Bytekodga kompilyatsiya qilingandan so'ng, kengaytma bilan fayl yaratiladi ".pyc"  skript manbai yonida.

Keyingi safar dasturingizni ishga tushirganingizda, tarjimon kompilyatsiya bosqichini chetlab o'tib, kompilyatsiya qilingan faylni ".pyc" kengaytmasi bilan ijro etish uchun beradi. Ammo, agar siz dasturingizning dastlabki kodini o'zgartirsangiz, unda baytekodga kompilyatsiya bosqichi yana amalga oshiriladi, chunki Python avtomatik ravishda manba fayli o'zgartirilgan kunni kuzatib boradi.

Agar Python faylni baytekod bilan yoza olmasa, masalan, diskka yozish uchun ruxsat yo'qligi sababli dastur zarar ko'rmaydi, shunchaki baytekod xotirada to'planib, dastur oxirida o'chiriladi.

Python virtual mashinasi (PVM)

Kompilyatsiya jarayoni o'tgandan so'ng, bytekod deb nomlangan mexanizmga o'tkaziladi virtual mashina, baytekod ko'rsatmalarini bajaradi. Virtual mashina  - Bu ish vaqti mexanizmi, u har doim Python tizimi tarkibida mavjud va bu Python Interpreter deb nomlangan tizimning ekstremal tarkibiy qismidir.

Buni birlashtirish uchun biz yana bir bor vaziyatga oydinlik kiritamiz, bytekodga kompilyatsiya qilish avtomatik ravishda amalga oshiriladi va PVM tarjimon va kompilyator bilan o'rnatgan Python tizimining bir qismi. Har bir narsa dasturchi uchun oshkora bo'ladi va siz ushbu operatsiyalarni qo'lda bajarishingiz shart emas.

Ishlash

C va C ++ kabi tillarni biladigan dasturchilar Python ish vaqti modelidagi ba'zi farqlarni sezishlari mumkin. Birinchisi, qurish fazasining etishmasligi yoki "make" yordam dasturini chaqirish; Python dasturlarini dastlabki kodni yozgandan so'ng darhol ishga tushirish mumkin. Ikkinchi farq shundaki, baytekod ikkilik mashina kodi emas (masalan, Intel mikroprotsessoriga ko'rsatmalar), bu Python dasturining ichki vakili.

Shu sabablarga ko'ra Python dasturlari C / C ++ kabi tez ishlay olmaydi. Ko'rsatmalar mikroprosessor tomonidan emas, balki virtual tizim tomonidan ishlab chiqiladi va baytekodni bajarish uchun qo'shimcha izoh talab qilinadi, ko'rsatmalar mikroprosessor mashinasi ko'rsatmalariga qaraganda ko'proq vaqt talab qiladi.

Ammo, boshqa tomondan, an'anaviy tarjimonlardan farqli o'laroq, masalan PHPda, bu erda qo'shimcha kompilyatsiya bosqichi mavjud - tarjimon har safar dasturning manba kodini tahlil qilishga hojat yo'q.

Natijada Python an'anaviy kompilyatsiya va an'anaviy talqiniy dasturlash tillari o'rtasida ishlashda.

Alternativ Python dasturlari

Kompilyator va virtual mashina haqida yuqorida aytilganlar CPython deb nomlangan (ANSI C amalga oshirish) standart Python dasturiga xosdir. Biroq, Jython va IronPython kabi muqobil dasturlar ham mavjud, ular hozir muhokama qilinadi.

Bu Python-ning standart va asl ijrosi, shuning uchun ANSI C-da yozilganligi sababli shunday nomlangan, chunki biz paketni tanlaganimizda uni biz o'rnatgan edik. ActivePython  yoki o'rnatilgan Freebsd  portlar. Bu mos yozuvlar amalga oshirilganligi sababli, odatda tezroq, barqarorroq va yaxshiroqmuqobil dasturlarga qaraganda.

Jython

Dastlab JPython deb nomlangan, asosiy maqsad java dasturlash tili bilan qattiq integratsiya. Jython-ning bajarilishi Java bytecode-ga Python kodini kompilyatsiya qiladigan va keyin paydo bo'lgan byt-kodni o'tkazadigan Java sinflaridan iborat. java Virtual Mashinasi (JVM).

Jythonning maqsadi Python dasturlariga Java dasturlarini boshqarish imkoniyatini berish, xuddi CPython C / C ++ komponentlarini boshqarishi mumkin. Ushbu dastur Java bilan muammosiz integratsiyalashuvga ega. Python dastur kodi Java bytecode-ga tarjima qilinganligi sababli, ish vaqtida haqiqiy Java dasturiga o'xshaydi. Jython dasturlari appletlar va servletlar vazifasini bajarishi, Java mexanizmlari va boshqalardan foydalangan holda grafik interfeys yaratishi mumkin. Bundan tashqari, Jython Python kodida Java sinflarini import qilish va undan foydalanish imkoniyatini qo'llab-quvvatlaydi.

Biroq, Jython-ning bajarilishi pastroq tezlikni ta'minlaydi va CPython-ga nisbatan kamroq barqaror bo'lganligi sababli, Java kodiga interfeys sifatida skriptlash tiliga muhtoj bo'lgan Java dasturchilari uchun qiziqroq.

Amalga oshirish Python dasturlarini Microsoft .NET Framework Windows operatsion tizimida foydalanish uchun yaratilgan dasturlar bilan, shuningdek Mono Linux uchun ochiq ekvivalenti bilan ta'minlash uchun mo'ljallangan. .NET platformasi va C # ishlash vaqti dasturiy ta'minot ob'ektlari o'rtasida o'zaro ishlashni ta'minlash uchun ishlatilgan - dasturlash tilidan qat'i nazar, Microsoft-ning oldingi COM modeli ruhida.

IronPython Python dasturlariga boshqa .NET dasturlash tillarida mavjud bo'lgan mijoz va server komponentlarining rolini o'ynashga imkon beradi. Beri microsoft tomonidan ishlab chiqilganIronPython, boshqa narsalar qatori, sezilarli darajada ishlashni optimallashtirishni kutishi mumkin.

Ishlashni optimallashtirish vositalari

Boshqa dasturlar, shu jumladan dinamik kompilyator mavjud Psixo  va Shedskin C ++ tarjimoni, bu asosiy ijro modelini optimallashtirishga harakat qilmoqda.

Psyco Dynamic Compily

Psixo tizimi  bu dasturlarni tezroq ishlashiga imkon beradigan baytekodni bajarish modelini kengaytiruvchi komponent. Psixo  kengaytmasi PVM, dasturning baytekod qismlarini haqiqiy ikkilik mashina kodiga tarjima qilish uchun tip ma'lumotlarini to'playdi va ishlatadi, bu juda tez ishlaydi. Bunday tarjima dastlabki kodni o'zgartirishni yoki ishlab chiqishda qo'shimcha kompilyatsiyani talab qilmaydi.

Ish paytida Psyco ob'ektlarning turlari haqida ma'lumot to'playdi va keyin ushbu ma'lumot ushbu turdagi ob'ektlar uchun optimallashtirilgan yuqori samarali mashina kodini yaratish uchun ishlatiladi. Shundan so'ng, yaratilgan mashina kodi baytekodning tegishli bo'limlarini almashtiradi va shu bilan bajarilish tezligini oshiradi.

Ideal holda, Psyco nazorati ostida ba'zi kod qismlari kompilyatsiya qilingan C kodi kabi tez ishlashi mumkin.

Psyco o'zgartirilmagan Python tarjimonidan foydalanib, tezlikni 2 dan 100 martagacha, lekin odatda 4 martaga oshirishni ta'minlaydi. Psyco-ning yagona kamchiliklari shundaki, u hozirda faqat arxitektura uchun mashina kodini yaratishga qodir Intel x86.

Psyco standart sifatida kelmaydi, uni alohida-alohida yuklab olish va o'rnatish kerak. Hali ham loyihangiz bor Pypybu qayta yozishga urinish PVM  kabi kodni optimallashtirish uchun Psixoloyihasi Pypy  loyihani ko'proq o'zlashtirmoqchi Psixo.

Shedskin C ++ Tarjimon

Shedskin  Python dastlabki kodini C ++ manba kodiga o'zgartiradigan tizim bo'lib, keyinchalik uni mashina kodiga kompilyatsiya qilish mumkin. Bundan tashqari, tizim Python kodini bajarishda platformadan mustaqil yondashuvni amalga oshiradi.

Ruxsat etilgan ikkiliklar

Ba'zan Python dasturlaringizdan mustaqil ravishda bajariladigan fayllarni yaratishingiz kerak. Aksincha dasturlarni qadoqlash va tarqatish uchun kerak.

Ruxsat etilgan ikkilik fayllar dasturlarning bayt kodlarini, PVM va qo'llab-quvvatlaydigan fayllarni bitta paketli faylga birlashtiradi. Natijada bitta bajariladigan fayl, masalan, Windows uchun ".exe" kengaytmasi bo'lgan fayl.

Bugungi kunda muzlatilgan ikkilikni yaratish uchun uchta asosiy vosita mavjud:

  • py2exe  - Windows uchun mustaqil dasturlarni, Tkinter, PMW, wxPython va PyGTK kutubxonalaridan foydalanib, grafik interfeys, PyGame o'yinlarini yaratish vositalaridan foydalanadigan dasturlar, win32com mijoz dasturlari va boshqalarni yaratishi mumkin;
  • PyInstaller  - py2exe-ni eslatadi, lekin Linux va UNIX-da ishlaydi va o'zi o'rnatiladigan bajariladigan fayllarni yaratishga qodir;
  • muzlatmoq  - asl versiya.

Ushbu vositalarni Python-dan alohida yuklab olishingiz kerak, ular bepul tarqatiladi.

Ruxsat etilgan ikkitomonlama fayllar katta hajmga ega, chunki ular tarkibida PVM mavjud, ammo zamonaviy standartlarga muvofiq ularni juda katta deb atash mumkin emas. Python tarjimoni to'g'ridan-to'g'ri sobit ikkilik fayllarga joylashtirilganligi sababli, uni o'rnatish qabul qiluvchi tomonda dasturlarni ishga tushirish uchun shart emas.

Xulosa

Bu bugungi kunda, keyingi maqolada men Python-da standart ma'lumot turlari haqida gaplashaman va keyingi maqolalarda har bir turni alohida-alohida ko'rib chiqamiz, shuningdek, ushbu turdagi ishlash uchun funktsiyalar va operatorlarni ko'rib chiqamiz.

Sizga maqola yoqdimi? Do'stlar bilan baham ko'ring: