Jadval yaratish
Yaxshi kutubxonalardan biri bu — PrettyTable. Bu kutubxona yordamida konsolga chiroyli jadvalni tez va oson chiqarish mumkin. Agar siz o’qiyotgan bo’lsangiz yoki tez-tez ma’lumotlarni taqdim etishingiz kerak bo’lsa, bu kutubxonaning nomini eslab qolishni tavsiya qilaman.
U bilan ishlash juda oson. Faqatgina PrettyTable asosida obyekt yaratish kerak bo‘ladi va so‘ngra unga ustunlarning nomlarini hamda qatorlarning o‘zini joylashtirish kifoya.
Jadvalni ma’lum bir tomonga tekislash (chap, o‘ng yoki markazga) ham mumkin, shuningdek, ma’lum bir ustun bo‘yicha saralash (sortlash) ham mumkin.
🌟 @python_infinity 👈
Yaxshi kutubxonalardan biri bu — PrettyTable. Bu kutubxona yordamida konsolga chiroyli jadvalni tez va oson chiqarish mumkin. Agar siz o’qiyotgan bo’lsangiz yoki tez-tez ma’lumotlarni taqdim etishingiz kerak bo’lsa, bu kutubxonaning nomini eslab qolishni tavsiya qilaman.
U bilan ishlash juda oson. Faqatgina PrettyTable asosida obyekt yaratish kerak bo‘ladi va so‘ngra unga ustunlarning nomlarini hamda qatorlarning o‘zini joylashtirish kifoya.
Jadvalni ma’lum bir tomonga tekislash (chap, o‘ng yoki markazga) ham mumkin, shuningdek, ma’lum bir ustun bo‘yicha saralash (sortlash) ham mumkin.
Please open Telegram to view this post
VIEW IN TELEGRAM
1 2❤1⚡1💯1🍾1👨💻1 1 1 1 1
Maxsus o‘zgaruvchi __name__
Python interpretatori dastur bilan ishlayotganida, u avval ba’zi maxsus o‘zgaruvchilarni o‘rnatadi. Shulardan biri — o‘rnatadi
Agar skript bevosita ishga tushirilsa, bu o‘zgaruvchiga "__main__" qiymati belgilanadi; agar modul sifatida import qilinsa — unda modulning nomi qiymat qilib olinadi.
bevosita io‘zgaruvchisi odatda barcha sinflar (class) va funksiyalarda ham mavjud bo‘ladi.
🌟 @python_infinity 👈
Python interpretatori dastur bilan ishlayotganida, u avval ba’zi maxsus o‘zgaruvchilarni o‘rnatadi. Shulardan biri — o‘rnatadi
Agar skript bevosita ishga tushirilsa, bu o‘zgaruvchiga "__main__" qiymati belgilanadi; agar modul sifatida import qilinsa — unda modulning nomi qiymat qilib olinadi.
bevosita io‘zgaruvchisi odatda barcha sinflar (class) va funksiyalarda ham mavjud bo‘ladi.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1⚡1🏆1🍾1 1 1 1 1 1
Ba’zida muayyan xatoliklarni e’tiborsiz qoldirish kerak bo‘ladi, lekin kodni try/except bloklari bilan ortiqcha yuklamasdan. contextlib.suppress bu ishni nafis va qulay tarzda bajaradi.
contextlib.suppress — bu aniq istalgan istisnolarni (xatoliklarni) ixcham va xavfsiz tarzda e’tiborsiz qoldirishga yordam beradi, kodni keraksiz xatolikni qayta ishlash bilan ifloslantirmaydi.
Please open Telegram to view this post
VIEW IN TELEGRAM
3❤1💯1 1 1 1 1
#intervyu_savollari
📱 Yuzaki (yoki sathiy) nusxa nima?
Yuzaki nusxa — bu yangi obyekt nusxasini yaratishda ishlatiladigan usul bo‘lib, u asl obyektning qiymatlarini nusxalaydi. Shuningdek, u havolali ko‘rsatkichlarni (ya’ni, obyektlar ichidagi boshqa obyektlarga ishoralarni) nusxalash uchun ishlatiladi. Bu shuni anglatadiki, agar biz biror obyektni boshqa o‘zgaruvchiga nusxalasak, ular bir-biriga bog‘langan bo‘ladi — ya’ni, ichki obyektlar umumiy bo‘lib qoladi.
🌟 @python_infinity 👈
Yuzaki nusxa — bu yangi obyekt nusxasini yaratishda ishlatiladigan usul bo‘lib, u asl obyektning qiymatlarini nusxalaydi. Shuningdek, u havolali ko‘rsatkichlarni (ya’ni, obyektlar ichidagi boshqa obyektlarga ishoralarni) nusxalash uchun ishlatiladi. Bu shuni anglatadiki, agar biz biror obyektni boshqa o‘zgaruvchiga nusxalasak, ular bir-biriga bog‘langan bo‘ladi — ya’ni, ichki obyektlar umumiy bo‘lib qoladi.
Please open Telegram to view this post
VIEW IN TELEGRAM
11❤2⚡1💯1🏆1👨💻1 1 1 1 1
To‘plamlar abstraksiyasi
Xuddi ro‘yxatlar (listlar) va lug‘atlar (dictionarylar) bilan ishlagandek, to‘plamlar (setlar) bilan ishlashda ham to‘plamlar abstraksiyasidan (set comprehension) foydalanish mumkin. Bu quyidagicha amalga oshiriladi: ishlov berilayotgan ifoda jingalak qavslar ichiga joylanadi va siklning har bir aylanishida yagona o‘zgartiriluvchi (muutatsiyalanadigan) element qaytariladi: { <element> for ... in ... }.
🌟 @python_infinity 👈
Xuddi ro‘yxatlar (listlar) va lug‘atlar (dictionarylar) bilan ishlagandek, to‘plamlar (setlar) bilan ishlashda ham to‘plamlar abstraksiyasidan (set comprehension) foydalanish mumkin. Bu quyidagicha amalga oshiriladi: ishlov berilayotgan ifoda jingalak qavslar ichiga joylanadi va siklning har bir aylanishida yagona o‘zgartiriluvchi (muutatsiyalanadigan) element qaytariladi: { <element> for ... in ... }.
Please open Telegram to view this post
VIEW IN TELEGRAM
2❤2👨💻2 2💯1🏆1🍾1 1 1 1
#suhbatdagi_savollar
Qanday qilib satrda faqat harflar va raqamlar borligini tezda tekshirish mumkin?
Javobi rasmda. Bu masalani hal qilish uchun aynan shunga mo‘ljallangan ichki isalnum funksiyasidan foydalanish mumkin.
🌟 @python_infinity ✅
Qanday qilib satrda faqat harflar va raqamlar borligini tezda tekshirish mumkin?
Javobi rasmda. Bu masalani hal qilish uchun aynan shunga mo‘ljallangan ichki isalnum funksiyasidan foydalanish mumkin.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2 2⚡1💯1🏆1 1 1
“Agar konstruksiyalarni soddalashtirish”
“Agar bir nechta qiymatni tekshirishingiz kerak bo‘lsa, yuqoridagi rasmda ko‘rsatilgandek bajaring.”
@python_infinity✅
“Agar bir nechta qiymatni tekshirishingiz kerak bo‘lsa, yuqoridagi rasmda ko‘rsatilgandek bajaring.”
@python_infinity
Please open Telegram to view this post
VIEW IN TELEGRAM
Ba’zida roʻyxatlar roʻyxatidan (ya’ni, ichki roʻyxatlardan) dublikatlarni olib tashlash kerak boʻladi — lekin bu yerda set funksiyasidan bevosita foydalana olmaysiz, chunki roʻyxatlar oʻzgartiriladigan (mutable) obyektlar hisoblanadi. Biroq, buning sodda yechimi mavjud!
Ichki roʻyxatlardan dublikatlarni olib tashlash uchun — ularni tuplega aylantiring, setdan foydalaning, so‘ngra ularni yana roʻyxatga qaytaring. Bu usul tez va ortiqcha sikllarsiz ishlaydi.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2 2⚡1👍1💯1🏆1👨💻1
Qanday qilib Python dasturlash tilida satr ma’lum bir so‘z bilan boshlanishini tekshirish mumkin?
Python tilida satrning ma’lum bir so‘z bilan boshlanishini tekshirish uchun, regex (regulyar ifoda) dan foydalanamiz. Bu yerda ^ belgisi satrning boshini anglatadi, ya’ni satr shu belgidan keyingi so‘z bilan boshlanishi kerak.
Ushbu qo‘llanmada biz
Quyidagi misolda, satr ma’lum bir so‘z bilan boshlanadimi yoki yo‘q, shuni tekshirib ko‘ramiz.
🌟 @python_infinity 👈
Python tilida satrning ma’lum bir so‘z bilan boshlanishini tekshirish uchun, regex (regulyar ifoda) dan foydalanamiz. Bu yerda ^ belgisi satrning boshini anglatadi, ya’ni satr shu belgidan keyingi so‘z bilan boshlanishi kerak.
Ushbu qo‘llanmada biz
re.search()
funksiyasidan foydalanamiz. Bu funksiya berilgan ifodani satrga solishtirib, satr belgilangan so‘z bilan boshlanadimi yoki yo‘qligini aniqlaydi.Quyidagi misolda, satr ma’lum bir so‘z bilan boshlanadimi yoki yo‘q, shuni tekshirib ko‘ramiz.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2⚡1👍1💯1🏆1👨💻1 1
print() funksiyasi o‘rniga darhol logging moduliga o‘rganib oling — u yanada moslashuvchan va professionaldir.
logging moduli — har qanday jiddiy Python kodi uchun zarur vosita. U kodni tuzatish va unga xizmat ko‘rsatishni ancha qulay va tartibli qiladi.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1⚡1👍1💯1🏆1👨💻1 1 1
Please open Telegram to view this post
VIEW IN TELEGRAM
Dastur bajarilishi jarayoni
Progress indikatorlari vaqt talab qiladigan funksiyalarni bajaradigan skriptlarda ko‘rinishni yanada aniqroq qiladi. tqdm moduli esa oddiy va qulay variant hisoblanadi.
Oddiy range funksiyasini trange bilan almashtirib, bajarilish jarayonini ko‘rsatish mumkin. Shuningdek, biron-bir ketma-ketlik (sequential) ustida iteratsiya qilish uchun uni tqdm funksiyasiga uzatish kifoya. Ushbu modul Jupyter Notebookda ham o‘zini yaxshi ko‘rsatgan.
🌟 @python_infinity 👈
Progress indikatorlari vaqt talab qiladigan funksiyalarni bajaradigan skriptlarda ko‘rinishni yanada aniqroq qiladi. tqdm moduli esa oddiy va qulay variant hisoblanadi.
Oddiy range funksiyasini trange bilan almashtirib, bajarilish jarayonini ko‘rsatish mumkin. Shuningdek, biron-bir ketma-ketlik (sequential) ustida iteratsiya qilish uchun uni tqdm funksiyasiga uzatish kifoya. Ushbu modul Jupyter Notebookda ham o‘zini yaxshi ko‘rsatgan.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1❤1💯1 1 1
Counter.elements() metodi
Elementlar bo‘yicha iteratorni qaytaradi, bunda har bir element o‘zining qiymatida ko‘rsatilgan marta takrorlanadi.
Elementlar ularning paydo bo‘lish tartibida qaytariladi. Agar biror elementning soni birdan kichik bo‘lsa,
🌟 @python_infinity ✅
Elementlar bo‘yicha iteratorni qaytaradi, bunda har bir element o‘zining qiymatida ko‘rsatilgan marta takrorlanadi.
Elementlar ularning paydo bo‘lish tartibida qaytariladi. Agar biror elementning soni birdan kichik bo‘lsa,
Counter.elements()
uni shunchaki e’tibordan chetga chiqaradi.Please open Telegram to view this post
VIEW IN TELEGRAM
⚡1❤1💯1👨💻1🤝1 1 1
Counter.subtract() metodi
Counter.subtract() metodi joriy hisoblagich (cnt) elementlaridan boshqa bir takrorlanuvchi ketma-ketlik, lug‘at yoki boshqa Counter() hisoblagichidagi elementlarni ayiradi. U dict.update() metodiga o‘xshash ishlaydi, biroq kalitlarning qiymatlarini yangilamasdan, ularni kamaytiradi (ayiradi).
Hisoblagich (Counter) va lug‘atdagi kalitlarning qiymatlari nol yoki manfiy bo‘lishi mumkin.
Agar hohlasangiz, sizga Counter.subtract() misoli bilan tushuntirib bera olaman.
🌟 @python_infinity✅
Counter.subtract() metodi joriy hisoblagich (cnt) elementlaridan boshqa bir takrorlanuvchi ketma-ketlik, lug‘at yoki boshqa Counter() hisoblagichidagi elementlarni ayiradi. U dict.update() metodiga o‘xshash ishlaydi, biroq kalitlarning qiymatlarini yangilamasdan, ularni kamaytiradi (ayiradi).
Hisoblagich (Counter) va lug‘atdagi kalitlarning qiymatlari nol yoki manfiy bo‘lishi mumkin.
Agar hohlasangiz, sizga Counter.subtract() misoli bilan tushuntirib bera olaman.
Please open Telegram to view this post
VIEW IN TELEGRAM
1 3⚡1❤1💯1🏆1 1
defaultdict dan foydalanish orqali lug‘atlar bilan ishlash
Lug‘atlar bilan ishlaganda ko‘pincha mavjud bo‘lmagan kalitlarga murojaat qilishda xatolarning oldini olish uchun qiymatlarni sukut bo‘yicha (default) belgilash zarurati tug‘iladi. Bunday hollarda
defaultdict dan foydalanish kodni soddalashtiradi va lug‘atda kalitning mavjudligini qo‘lda tekshirish zaruratini yo‘q qiladi, bu esa kodni o‘qishli va samarali qiladi.
🌟 @python_infinity ✅
Lug‘atlar bilan ishlaganda ko‘pincha mavjud bo‘lmagan kalitlarga murojaat qilishda xatolarning oldini olish uchun qiymatlarni sukut bo‘yicha (default) belgilash zarurati tug‘iladi. Bunday hollarda
collections
modulidagi defaultdict
dan foydalanish juda qulay.defaultdict dan foydalanish kodni soddalashtiradi va lug‘atda kalitning mavjudligini qo‘lda tekshirish zaruratini yo‘q qiladi, bu esa kodni o‘qishli va samarali qiladi.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1⚡1🏆1👻1🆒1 1 1
Agar siz Python’ning interaktiv rejimida (REPL) ishlayotgan bo‘lsangiz, har safar natijani o‘zgaruvchiga saqlashingiz shart emas — avvalgi ifodaning natijasi har doim _ belgisi orqali mavjud bo‘ladi.
Python’ning interaktiv konsolida _ belgisi oxirgi ifodaning natijasini saqlaydi — bu esa tezkor hisob-kitoblar va tajribalar uchun o‘zgaruvchi yaratmasdan foydalanishga juda qulay.
Please open Telegram to view this post
VIEW IN TELEGRAM
🍾2👻2👨💻1 1 1