enumerate funksiyasi va uning ro‘yxatlar bilan ishlashdagi roli
🌟 @python_infinity 👈
enumerate
— bu ro‘yxatni qabul qiladigan va for siklida ro‘yxatdagi elementlar hamda ularning mos indekslarini ko‘rib chiqish uchun foydalaniladigan ichki funksiyadir.Please open Telegram to view this post
VIEW IN TELEGRAM
shorten() funksiyasi
textwrap modulidagi shorten() funksiyasi matnni belgilangan kenglikka (width) sig‘ishi uchun qisqartiradi.
Dastlab, barcha bo‘sh joylar (probel) yagona bo‘sh joyga almashtiriladi. Agar natija berilgan kenglikka sig‘sa, u to‘g‘ridan-to‘g‘ri qaytariladi. Aks holda, matn oxiridan so‘zlar olib tashlanadi — shunda qolgan matn va to‘ldiruvchi (placeholder, odatda [...]) birga belgilangan kenglikka sig‘adi.
🌟 @python_infinity 👈
textwrap modulidagi shorten() funksiyasi matnni belgilangan kenglikka (width) sig‘ishi uchun qisqartiradi.
Dastlab, barcha bo‘sh joylar (probel) yagona bo‘sh joyga almashtiriladi. Agar natija berilgan kenglikka sig‘sa, u to‘g‘ridan-to‘g‘ri qaytariladi. Aks holda, matn oxiridan so‘zlar olib tashlanadi — shunda qolgan matn va to‘ldiruvchi (placeholder, odatda [...]) birga belgilangan kenglikka sig‘adi.
Please open Telegram to view this post
VIEW IN TELEGRAM
Ba’zida turli yechimlarning qaysi biri tezroq ishlashini aniqlash kerak bo‘ladi. timeit moduli tashqi omillarning ta’sirisiz, aniq va ishonchli o‘lchovlarni o‘tkazishga yordam beradi.
timeit — kodning qaysi qismi amalda tezroq ishlashini tushunish uchun ajoyib vosita. Ayniqsa, funksiyalarni optimallashtirish yoki bir nechta yondashuvlar orasidan tanlashda foydalidir.
Please open Telegram to view this post
VIEW IN TELEGRAM
groupby() funksiyasi
Kalit (key) — bu har bir element uchun kalit qiymatini hisoblab chiqadigan funksiya. Agar kalit ko‘rsatilmagan bo‘lsa yoki None bo‘lsa, u holda sukut bo‘yicha shaxsiylashtirish funksiyasi (identity function) ishlatiladi, ya’ni element o‘zi qanday bo‘lsa, shunday qaytariladi.
Odatda,
🌟 @python_infinity 👈
itertools
modulining groupby()
funksiyasi — bu iterator yaratadi, u ketma-ket kalitlar va guruhlarni iterable
— ya’ni ustida aylanish mumkin bo‘lgan obyekt — dan qaytaradi.Kalit (key) — bu har bir element uchun kalit qiymatini hisoblab chiqadigan funksiya. Agar kalit ko‘rsatilmagan bo‘lsa yoki None bo‘lsa, u holda sukut bo‘yicha shaxsiylashtirish funksiyasi (identity function) ishlatiladi, ya’ni element o‘zi qanday bo‘lsa, shunday qaytariladi.
Odatda,
iterable
— ya’ni guruhlanayotgan obyekt — shu kalit funksiyasi bo‘yicha avvaldan saralangan (saralab olingan) bo‘lishi kerak.Please open Telegram to view this post
VIEW IN TELEGRAM
Ba’zi holatlarda, ayniqsa, log yuritish (loglash) yoki nosozliklarni tuzatish (debug qilish) jarayonida, o‘zgaruvchining nomini matn ko‘rinishida olish qulay bo‘lishi mumkin. Python dasturlash tilida buni inspect modulidan foydalanib amalga oshirish mumkin.
var_name funksiyasi chaqiruvchi funksiyadagi lokal (mahalliy) o‘zgaruvchilarni tekshiradi va qiymati berilgan obyekt bilan bir xil bo‘lgan o‘zgaruvchini qidiradi.
🎯 Xulosa
Ushbu usul dasturning bajarilish jarayonida o‘zgaruvchi nomini aniqlash imkonini beradi. Bu esa odatda nosozliklarni tuzatish, log yozuvlarini yuritish yoki xabarlarni avtomatik shakllantirishda foydali bo‘lishi mumkin.
Please open Telegram to view this post
VIEW IN TELEGRAM
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