Python bilan aniq nima qila olasiz? Bu erda Python-ning uchta asosiy ilovasi mavjud.

Agar siz Pythonni o'rganishni o'ylayotgan bo'lsangiz - yoki yaqinda uni o'rganishni boshlagan bo'lsangiz, o'zingizga savol berishingiz mumkin:

"Python-dan aniq nima uchun foydalanishim mumkin?"

Bu juda qiyin savolga javob berish kerak, chunki Python uchun juda ko'p dastur mavjud.

Vaqt o'tishi bilan men Python uchun uchta asosiy ommabop dastur mavjudligini ko'rdim:

  • Veb-ishlab chiqish
  • Ma'lumot fanlari - bu mashinalarni o'rganish, ma'lumotlarni tahlil qilish va ma'lumotlarni vizualizatsiya qilish
  • Skript yozish

Keling, ularning har biri haqida navbat bilan gaplashaylik.

Veb-ishlab chiqish

Django va Flask kabi Python-ga asoslangan veb-ramkalar so'nggi paytlarda veb-ishlab chiqish uchun juda mashhur bo'ldi.

Ushbu veb-tizimlar Python-da server tomonidagi kodni (orqa kod) yaratishga yordam beradi. Bu foydalanuvchilarning qurilmalari va brauzerlaridan farqli o'laroq sizning serveringizda ishlaydigan kod (oldingi kod). Agar siz orqa kod va old qismning kodi o'rtasidagi farqni bilmasangiz, iltimos, quyida keltirilgan izohimni ko'ring.

Kutib turing, nima uchun menga veb-ramka kerak?

Veb-tizim umumiy mantiqiy mantiqni yaratishni osonlashtirgani sababli. Bunga turli URL manzillarni Python kodi bilan bog'lash, ma'lumotlar bazalari bilan ishlash va foydalanuvchilar o'z brauzerlarida ko'radigan HTML-fayllarni yaratish kiradi.

Python-ning qaysi veb-doirasidan foydalanishim kerak?

Django va Flask ikkita eng mashhur Python veb-ramkalaridir. Agar siz endigina boshlayotgan bo'lsangiz, ulardan bittasini ishlatishni maslahat beraman.

Django va Flask o'rtasidagi farq nima?

Garet Dyuerning ushbu mavzu bo'yicha ajoyib maqolasi bor, shuning uchun uni bu erda keltirib o'tishga ijozat bering:

Asosiy farqlar:

  • Flask soddaligi, moslashuvchanligi va nozik nazorati bilan ta'minlaydi. Bu aniqlanmagan (bu sizga qanday narsalarni amalga oshirishni xohlashingizni hal qilish imkonini beradi).
  • Django har tomonlama qamrab oladigan tajribani taqdim etadi: siz ma'murlar panelini, ma'lumotlar bazasi interfeyslarini, ORM [ob'ektga nisbatan xaritalashni] va ilovalaringiz va loyihalaringiz uchun katalog tuzilishini olasiz.

Ehtimol siz quyidagilarni tanlashingiz kerak:

  • Flask, agar siz tajriba va o'rganish imkoniyatlariga e'tibor qaratsangiz yoki tarkibiy qismlardan foydalanishni (masalan, qanday ma'lumotlar bazasidan foydalanishni xohlasangiz va ular bilan qanday ishlashni xohlasangiz) ko'proq boshqarishni xohlasangiz.
  • Django, agar siz yakuniy mahsulotga e'tibor qaratmoqchi bo'lsangiz. Ayniqsa, agar siz yangiliklar sayti, elektron do'kon yoki blog kabi to'g'ridan-to'g'ri yo'naltirilgan dastur ustida ishlayotgan bo'lsangiz va siz u erda doimo ish qilishning yagona va ravshan usuli bo'lishini istasangiz.

Boshqacha qilib aytganda, agar siz yangi boshlovchi bo'lsangiz, unda Flask - afzalroq tanlovdir, chunki uning tarkibiy qismlari kamroq bo'ladi. Bundan tashqari, agar siz ko'proq moslashni xohlasangiz, Flask yaxshiroq tanlovdir.

Boshqa tomondan, agar siz to'g'ridan-to'g'ri biron narsa qurmoqchi bo'lsangiz, Django sizni u erga tezroq borishga imkon beradi.

Endi, agar siz Djangoni o'rganmoqchi bo'lsangiz, men yangi boshlanuvchilar uchun Django deb nomlangan kitobni tavsiya qilaman. Siz bu erda topishingiz mumkin.

Shuningdek, ushbu kitobning bepul namunaviy bo'limlarini bu erda topishingiz mumkin.

Xo'sh, keyingi mavzuga o'taylik!

Ma'lumot fanlari - bu mashinalarni o'rganish, ma'lumotlarni tahlil qilish va ma'lumotlarni vizualizatsiya qilish

Avvalo, mashinani o'rganish nima ekanligini ko'rib chiqaylik.

Menimcha, mashinani o'rganish nima ekanligini tushuntirishning eng yaxshi usuli sizga oddiy misol berishdir.

Aytaylik, siz rasmdagi narsalarni avtomatik ravishda aniqlaydigan dasturni ishlab chiqmoqchisiz.

Shunday qilib, quyidagi rasmda (1 rasm), sizning dasturingiz bu it ekanligini tan olishlarini xohlaysiz.

1-rasm

Quyida keltirilgan boshqasini hisobga olgan holda (2-rasm), siz dasturingiz bu jadval ekanligini tan olishingizni xohlaysiz.

2-rasm

Siz aytishingiz mumkin, yaxshi, men buni amalga oshirish uchun shunchaki kod yoza olaman. Misol uchun, agar rasmda juda ko'p jigarrang piksel bo'lsa, unda bu it deb ayta olamiz.

Yoki, ehtimol siz rasmdagi qirralarni qanday aniqlashni aniqlay olasiz. Keyin, agar tekis qirralar ko'p bo'lsa, unda bu stol.

Biroq, bunday yondoshuv tezda juda qiyin bo'ladi. Agar rasmda jigarrang sochlari yo'q oq it bo'lsa nima bo'ladi? Agar rasmda faqat stolning dumaloq qismlari ko'rsatilgan bo'lsa-chi?

Bu erda mashina o'rganish kiradi.

Mashinani o'rganish odatda berilgan kirishda naqshni avtomatik ravishda aniqlaydigan algoritmni amalga oshiradi.

Aytaylik, itning 1000 ta rasmini va stolning 1000 ta rasmini mashinani o'rganish algoritmiga berishingiz mumkin. Keyin, u it va stol o'rtasidagi farqni bilib oladi. Agar siz unga itning yoki stolning yangi rasmini bersangiz, u qaysi biri ekanligini aniqlay olasiz.

Menimcha, bu chaqaloqning yangi narsalarni o'rganishiga o'xshashdir. Qanday qilib kichkintoy bir narsaning itga, boshqasiga stolga o'xshashligini bilib oladi? Ehtimol, bir nechta misollardan.

Ehtimol, siz bolaga aniq aytmaysizmi: "Agar biron narsa mo'ynali va och jigarrang sochlari bo'lsa, demak bu it."

Siz shunchaki: “Bu it. Bu ham it. Va bu stol. U ham stol. "

Mashinani o'rganish algoritmlari xuddi shunday ishlaydi.

Xuddi shu fikrni quyidagilarga qo'llashingiz mumkin:

  • tavsiya tizimlari (YouTube, Amazon va Netflix deb o'ylang)
  • yuzni aniqlash
  • ovozni aniqlash

boshqa dasturlar orasida.

Mashinani o'qitish algoritmlari haqida siz eshitgan bo'lishi mumkin:

  • Neyron tarmoqlari
  • Chuqur o'rganish
  • Vektorli mashinalarni qo'llab-quvvatlash
  • Tasodifiy o'rmon

Yuqorida aytib o'tilgan rasm belgilash muammosini hal qilish uchun yuqoridagi algoritmlardan foydalanishingiz mumkin.

Mashinani o'rganish uchun Python

Mashinalarni o'qitish bo'yicha mashhur kutubxonalar va Python uchun ramkalar mavjud.

Eng mashhurlaridan ikkitasi - scikit-learn va TensorFlow.

  • scikit-learn ba'zi mashhur mashina o'rganish algoritmlari bilan birga keladi. Men ularning ba'zilarini yuqorida aytib o'tdim.
  • TensorFlow bu past darajadagi kutubxonadir, bu sizga maxsus mashinalarni o'rganish algoritmlarini yaratishga imkon beradi.

Agar siz mashinani o'rganish bo'yicha loyihani endi boshlasangiz, avval scikit-learningni boshlashingizni maslahat beraman. Agar siz samaradorlik masalalari bilan shug'ullana boshlasangiz, men TensorFlow-ni ko'rib chiqishni boshlardim.

Mashinada o'qishni qanday o'rganishim kerak?

Mashinada o'qitish asoslarini o'rganish uchun men Stenford yoki Caltech mashinalarini o'qitish kursini tavsiya qilaman.

E'tibor bering, ushbu kurslardagi ba'zi materiallarni tushunish uchun sizga hisoblash va chiziqli algebra haqida asosiy ma'lumot kerak.

Keyin, men Kaggle bilan o'sha kurslarning biridan o'rgangan narsalaringizni amalda qilardim. Ushbu veb-sayt, odamlar ushbu muammo uchun eng yaxshi mashinani o'rganish algoritmini yaratish uchun raqobatlashadi. Ularda yangi boshlanuvchilar uchun ham foydali darsliklar mavjud.

Ma'lumotni tahlil qilish va ma'lumotlarni vizualizatsiya qilish haqida nima deyish mumkin?

Bularning qanday ko'rinishi mumkinligini tushunishingizga yordam berish uchun, bu erda sizga oddiy misol keltiraman.

Aytaylik, siz ba'zi mahsulotlarni Internetda sotadigan kompaniyada ishlaysiz.

Keyin, ma'lumotlar tahlilchisi sifatida siz shunga o'xshash chizma chizishingiz mumkin.

Bar chizmasi 1 - Python yordamida yaratilgan

Ushbu grafikadan shuni aytishimiz mumkinki, erkaklar ushbu mahsulotning 400 donasini, ayollar esa yakshanba kuni ushbu mahsulotning 350 donasini sotib olishgan.

Ma'lumot tahlilchisi sifatida siz ushbu farq uchun bir nechta mumkin bo'lgan tushuntirishlarni topishingiz mumkin.

Mumkin bo'lgan bitta izoh shundaki, bu mahsulot erkaklar orasida ayollarga qaraganda ko'proq mashhurdir. Boshqa mumkin bo'lgan tushuntirish bo'lishi mumkin, bu namuna hajmi juda kichik va bu farq tasodifan yuzaga kelgan. Va yana bir mumkin bo'lgan tushuntirish, erkaklar ba'zi sabablarga ko'ra yakshanba kuni ushbu mahsulotni ko'proq sotib olishga moyil bo'lishidir.

Ushbu tushuntirishlarning qaysi biri to'g'ri ekanligini tushunish uchun siz shunga o'xshash boshqa chizmani chizishingiz mumkin.

1-qator chizig'i - Python-da yaratilgan

Faqat yakshanba uchun ma'lumotni ko'rsatish o'rniga biz butun hafta davomida ma'lumotlarni ko'rib chiqamiz. Ko'rinib turibdiki, ushbu grafikadan biz ushbu farq turli kunlarda ancha izchil ekanligini ko'rishimiz mumkin.

Ushbu kichik tahlildan siz ushbu farqning eng ishonchli izohi shundan iboratki, ushbu mahsulot erkaklar orasida ayollarga qaraganda ko'proq mashhurdir.

Boshqa tomondan, agar siz uning o'rniga shunday grafik ko'rsangiz nima bo'ladi?

Chizma 2-grafigi - shuningdek Python-da yaratilgan

Yakshanba kuni farqni nima tushuntiradi?

Siz aytishingiz mumkin, ehtimol erkaklar biron bir sababga ko'ra faqat yakshanba kuni ushbu mahsulotni ko'proq sotib olishga moyildirlar. Yoki, ehtimol yakshanba kuni erkaklar undan ko'proq narsani sotib olishlari tasodif edi.

Shunday qilib, bu haqiqiy dunyoda ma'lumotlarni tahlil qilish ko'rinishi soddalashtirilgan misol.

Google va Microsoft-da ishlagan paytimda ma'lumotlarni tahlil qilish bo'yicha ishim ushbu misolga juda o'xshash edi - faqat murakkabroq. Men aslida bunday tahlil uchun Google-da Python-dan, Microsoft-da JavaScript-dan foydalanganman.

Men ma'lumotlar bazamizdan ma'lumotlarni olish uchun ikkala kompaniyada ham SQL-dan foydalandim. Keyin, men Python va Matplotlib (Google-da) yoki JavaScript va D3.js (Microsoft-da) ushbu ma'lumotlarni vizual va tahlil qilish uchun ishlatgan bo'lardim.

Python yordamida ma'lumotlarni tahlil qilish / ingl

Ma'lumotni vizualizatsiya qilish uchun eng mashhur kutubxonalardan biri bu Matplotlib.

Boshlash uchun yaxshi kutubxona, chunki:

  • Buni boshlash juda oson
  • Dengiz shoxi kabi ba'zi boshqa kutubxonalar bunga asoslanadi. Shunday qilib, Matplotlibni o'rganish keyinchalik boshqa kutubxonalarni o'rganishga yordam beradi.

Python yordamida ma'lumotlarni tahlil qilishni / vizualizatsiyani qanday o'rganishim kerak?

Avval ma'lumotni tahlil qilish va vizualizatsiya asoslarini o'rganishingiz kerak. Ushbu onlayn uchun yaxshi manbalarni qidirganimda, topa olmadim. Shunday qilib, men ushbu mavzu bo'yicha YouTube video yaratishni yakunladim:

Men shuningdek, Pluralsight-da ushbu mavzu bo'yicha to'liq kursni oxiriga etkazdim, uni 10 kunlik bepul sinov dasturiga yozilish orqali bepul olishingiz mumkin.

Ikkalasini ham tavsiya qilaman.

Ma'lumotni tahlil qilish va vizualizatsiya asoslarini o'rganganingizdan so'ng Coursera va Khan Academy kabi veb-saytlardan statistika asoslarini o'rganish foydali bo'ladi.

Skript yozish

Skript nima?

Skriptlash odatda oddiy vazifalarni avtomatlashtirishga mo'ljallangan kichik dasturlarni yozishni anglatadi.

Shunday qilib, sizga bu yerdagi shaxsiy tajribamdan bir misol keltiray.

Men Yaponiyada elektron pochtani qo'llab-quvvatlash tizimiga ega bo'lgan kichik startapda ishlaganman. Bizga elektron pochta orqali yuborilgan mijozlarning savollariga javob berish biz uchun tizim edi.

Men u erda ishlayotganimda, qabul qilingan elektron xabarlarni tahlil qilishimiz uchun, ba'zi kalit so'zlarni o'z ichiga olgan elektron pochta xabarlarini sanash vazifasi oldim.

Biz buni qo'lda qilishimiz mumkin edi, ammo men bu vazifani avtomatlashtirish uchun oddiy dastur / oddiy skript yozdim.

Aslida, biz o'sha paytda Ruby-dan foydalanganmiz, ammo Python ham bu kabi vazifalarni bajarish uchun yaxshi til. Python ushbu turdagi vazifalarni bajarish uchun javob beradi, chunki u nisbatan sodda sintaksisga ega va yozish oson. Kichkina narsalarni yozib, uni sinab ko'rish ham juda tezdir.

O'rnatilgan dasturlar haqida nima deyish mumkin?

Men o'rnatilgan dasturlar bo'yicha mutaxassis emasman, lekin Python Rasberry Pi bilan ishlayotganini bilaman. Bu apparat hobbiistlari orasida mashhur dasturga o'xshaydi.

O'yin haqida nima deyish mumkin?

Siz o'yinlarni rivojlantirish uchun PyGame nomli kutubxonadan foydalanishingiz mumkin, ammo u eng mashhur o'yin mexanizmi emas. Siz uni sevimli mashg'ulot loyihangizni qurish uchun ishlatishingiz mumkin, lekin agar siz o'yinni rivojlantirishga jiddiy yondashsangiz, men uni shaxsan tanlamayman.

Aksincha, men eng mashhur o'yin dvigatellaridan biri bo'lgan C # bilan birlikni boshlashni maslahat beraman. Bu sizga Mac, Windows, iOS va Android kabi ko'plab platformalar uchun o'yin yaratishga imkon beradi.

Ish stoli ilovalari haqida nima deyish mumkin?

Siz Tkinter-dan foydalanib Python-ni qilishingiz mumkin edi, lekin u eng mashhur tanlov kabi ko'rinmaydi.

Buning o'rniga, Java, C # va C ++ tillari bu uchun ko'proq mashhur bo'lganga o'xshaydi.

So'nggi paytlarda ba'zi kompaniyalar, shuningdek, ish stoli dasturlarini yaratish uchun JavaScript-dan foydalanishni boshladilar.

Masalan, Slack-ning ish stolini Electron deb nomlangan narsa yaratilgan. Bu sizga JavaScript bilan ish stoli dasturlarini yaratishga imkon beradi.

Shaxsan, agar men ish stoli dasturini qurayotgan bo'lsam, JavaScript varianti bilan borgan bo'lardim. Agar mavjud bo'lsa, veb-versiyasidagi ba'zi kodlarni qayta ishlatishga imkon beradi.

Ammo, men ham ish stoli dasturlari bo'yicha mutaxassis emasman, shuning uchun siz bu fikrga rozi bo'lmasangiz yoki fikringizni bildirsangiz, iltimos, izohda menga xabar bering.

Python 3 yoki Python 2?

Men Python 3-ni tavsiya qilaman, chunki u zamonaviyroq va hozirgi paytda eng mashhur variant.

Izoh: orqa-end kodi va old-end kodlari to'g'risidagi eslatma (atamalar bilan tanish bo'lmaganingizda):

Aytaylik, siz Instagram singari narsalarni yaratmoqchisiz.

Keyin, siz qo'llab-quvvatlamoqchi bo'lgan har bir turdagi qurilma uchun oldingi kodni yaratishingiz kerak bo'ladi.

Siz foydalanishingiz mumkin, masalan:

  • IOS uchun Swift
  • Android uchun Java
  • Veb-brauzerlar uchun JavaScript

Har bir kod to'plami har bir qurilma / brauzerda ishlaydi. Bu dastur to'plami qanday bo'lishini, ularni bosganingizda tugmachalarning ko'rinishi va hokazolarni aniqlaydigan kodlar to'plami bo'ladi.

Shunga qaramay, siz foydalanuvchilar ma'lumotlari va fotosuratlarini saqlash imkoniyatiga ega bo'lishingiz kerak. Har bir foydalanuvchi izdoshlari uning fotosuratlarini ko'rishlari uchun siz ularni nafaqat foydalanuvchilarning qurilmalarida, balki serveringizda ham saqlamoqchisiz.

Bu erda backend code / server-code kodi keladi. Siz quyidagilarni bajarish uchun ba'zi bir kod kodini yozishingiz kerak bo'ladi:

  • Kimni kuzatayotganini kuzatib boring
  • Fotosuratlarni shunchalik ko'p joy egallamasliklari uchun siqib qo'ying
  • Kashf qilish xususiyatidagi har bir foydalanuvchiga fotosuratlar va yangi hisoblarni tavsiya eting

Shunday qilib, bu orqa kod va oldingi kod o'rtasidagi farq.

Aytgancha, Python backend / server-kodni yozish uchun yagona yaxshi tanlov emas. Boshqa ko'plab mashhur tanlovlar, shu jumladan JavaScript-ga asoslangan Node.js mavjud.

Ushbu maqola sizga yoqdimi? Keyin, sizga YouTube kanalim yoqishi mumkin.

Menda 440,000+ obunachisi bo'lgan CS Dojo deb nomlangan YouTube-ning dasturiy ta'limi kanali bor va men ushbu maqola kabi ko'proq tarkib ishlab chiqaraman.

Masalan, sizga ushbu videolar yoqishi mumkin:

Baribir, maqolamni o'qiganingiz uchun katta rahmat!