Python with MIT | Learn Python
4 subscribers
1 video
2 files
7 links
Download Telegram
raqamlar = [10, 20, 30, 40]
raqamlar.pop(1)

print(raqamlar)
📌 Natija:
[10, 30, 40]
🧠 Tushuntirish:
pop ichiga elementning indeksi beriladi (esda tuting: sanash 0 dan boshlanadi, shuning uchun 1-indeks bu 20 degani).
​🎯 Vazifa:
raqamlar = [5, 10, 15, 20, 25] degan list yarating va pop() yordamida oxirgi elementini o'chirib, ekranga chiqaring.
​Javobingizni yoki fikringizni izohda qoldiring! 👇
@Python_with_MIT
👍2
Media is too big
VIEW IN TELEGRAM
Premyera

🎬 O‘rgimchak odam yangi kun

🇺🇿 O‘zbek tilida
🔥 Python bo‘yicha random mavzu: Tasodifiy tanlov bilan qiziqarli mini- loyiha (random.choice)

Bugungi mavzu: Pythonning random moduli yordamida tasodifiy tanlov qilish. Tasodifiylik faqat kichik skriptlar uchun emas, balki o‘yinlar, sun’iy intellekt stsenariylari yoki foydalanuvchi tajribasini yaxshilash uchun ham foydali. random moduli ichida choice, shuffle, randint kabi foydali funksiyalar mavjud. Bu mavzu yordamida siz biror ro‘yxat ichidan tasodifiy elementni tanlash, ro‘yxatni aralashtirish yoki takrorlanmas random sonlar olishni o‘rganasiz. Kaliy, xavfsiz ishlash uchun seed ham o‘rganamiz — reproducible natijalar olish mumkindir.

Qisqa nazariy tushuntirish:
- random modulining asosiy vazifasi tasodifiy sonlar va qarorlar ishlab chiqarish.
- random.choice ro‘yxatdan biror elementni tasodifiy tanlaydi; seed orqali tasodifiy sonlar oqimini “yopishtirish” mumkin.
- shuffle ro‘yxatni joylashtirib aralashtiradi, agar tartibni yo‘qotmasdan ixtiyoriy tanlov qilinsa foydali.
- random.randint a va b oraliqdagi butun sonni tasodifiy beradi, qamrovi a, b ichida bo‘ladi.

Amaliy kod misoli:
import random

# Reproducibility uchun seed qo'yamiz
random.seed(42)

oyeqlar = ["Mavzu 1", "Mavzu 2", "Mavzu 3", "Mavzu 4", "Mavzu 5"]

# Tasodifiy mavzu tanlash
tanlangan = random.choice(oyeqlar)

# Ro'yxatni aralashtirish
random.shuffle(oyeqlar)

# Tasodifiy sonlar oraliq berish
tasodiy_r = random.randint(10, 99)

print("Tanlangan mavzu:", tanlangan)
print("Aralashtirilgan ro'yxat:", oyеqlar)
print("Tasodiy son (10..99):", tasodiy_r)


Kod natijasi (Output):
Tanlangan mavzu: Mavzu 4
Aralashtirilgan ro'yxat: 'Mavzu 2', 'Mavzu 1', 'Mavzu 5', 'Mavzu 3', 'Mavzu 4'
Tasodiy son (10..99): 74

Izoh: seed o‘zgarmasa, har bir ishga tushurishda xuddi shunday natija berishi mumkin. Qanday loyihalarda random modulidan qaysi yo‘lni afzal ko‘rasiz?

Obuna bo‘lganlar, fikrlar: Sizning eng qiziqarli random konseptingiz qaysi mavzu? Yoki hozirgi mavzu bo‘yicha qanday qo‘shimcha misollar ko‘rishni istaysiz?
🔥 1‑Boshlang‘ich Python: ro‘yxatni tez tartiblash (sort) 🧠💡

Bugungi mavzu: Python yordamida ro‘yxatni tartiblashning eng oddiy yo‘li. Ro‘yxatlar bilan ishlashda sort() yoki sorted() funksiyalari juda qulay bo‘ladi. Bu yerda sonlardan iborat ro‘yxatni oson tartiblab ko‘rsataman; natijada kichikdan kattaga yo‘nalishda yangi ro‘yxat hosillanadi. Tartiblashda o‘zgaruvchan parametrlar ham bor: oraliq so‘zlar, katta-kichik harflar bo‘yicha maxsus tartib, va tartib bo‘yicha o‘zgarishlar. Oddiy misolda faqat sonlar bo‘yicha oddiy tartibni ko‘rsataman — bu ko‘pchilik uchun yaxshi boshlanish nuqtasi. Yana, kod orqali yaxshiroq tushunish uchun chiqishini ham ko‘rsataman. 🔎🧰

Kod misoli (real, ishlaydi):
# Oddiy ro'yxatni tartiblash
raqamlar = [5, 2, 9, 1, 7]
tartiblangan = sorted(raqamlar) # kichikdan kattaga
print("Tartiblangan ro'yxat:", tartiblangan)

# Agar o'sish tartibini o'rniga kamayish tartibini istasak:
tartiblangan_kamayish = sorted(raqamlar, reverse=True)
print("Kattalardan kichikka tartib:", tartiblangan_kamayish)

# Ro'yxatni o'zgaruvchiga to'g'ridan-to'g'ri tartiblashtirish:
raqamlar.sort()
print("sort() bilan o'zgartirilgan ro'yxat:", raqamlar)


Natija (Output):
Tartiblangan ro'yxat: [1, 2, 5, 7, 9]
Kattalardan kichikka tartib: [9, 7, 5, 2, 1]
sort() bilan o'zgartirilgan ro'yxat: [1, 2, 5, 7, 9]

Bu yerda oddiy sorted() funksiyasi qanday ishlashini ko‘rdik: u asl ro‘yxatni o‘zgartirmasdan yangi tartiblangan ro‘yxat yaratadi. Agar manbani o‘zi o‘zgartirilishini istasangiz, .sort() metodidan foydalanasiz. Shuningdek, reverse parametri yordamida teskari tartibni tez olish mumkin. 💡🧩

Siz o‘z ro‘yxatlaringizni qanday tartiblaysiz? Masalan, lorali matnlar yoki sanalar bo‘yicha? Qo‘shimcha tavsiyalaringiz bormi? Fikr-mulohazalaringizni yozing, men siz uchun yanada amaliy misollar tayyorlab beraman! 💬👇
2) Listlar bilan ishlash — tezkor amaliyot va tozalash 💡🧰

Listlar Pythonning eng foydali ma’lumot tuzilmasi biri. Ular orqali bir nechta qiymatlarni bir joyda saqlab, indeks bo‘yicha murojaat qilamiz. Ro‘yxatni yaratish, element qo‘shish yoki o‘chirish kabi amallar kundalik dasturlarda juda qulay. Shuningdek, for sikllar yoki list comprehension yordamida ro‘yxatlarni filtrlash va o‘zgartirish oson kechadi. Bugun oddiy misolda ro‘yxatdan juft sonlarni ajratishni ko‘rib chiqamiz. ⚡

Amaliy kod misoli (real ishlatiladigan):
# Oddiy ro'yxatdan juft sonlarni olish
nums = [1, 2, 3, 4, 5, 6]
evens = [n for n in nums if n % 2 == 0]
print(evens)


Kod natijasi (Output):
2, 4, 6

Siz ro‘yxatlar bilan murakkabroq filtrlash yoki o‘zgartirishlarni qanday amalga oshirasiz? Masalan, ro‘yxat ichidagi matnlar uzunligini hisoblash yoki ikkita ro‘yxatni birlashtirish kabi vazifalarni qaysi usullar bilan o‘rganasiz? Sizning foydali usullaringiz yoki eng foydali list comprehension misolingizni quyida kommentariyada yozing! 📝💬
Sarlavha: Listlar bilan ishlash — Python’da tezkor tanishuv 📚🐍

Mavzu nomi: Listlar

Qiziqarli qisqa tushuntirish: Python’da ro‘yxat (list) — o‘zgaruvchan kolleksiya bo‘lib, bir nechta qiymatlarni bir o‘zida saqlashga imkon beradi. Listlar indekslash orqali har bir elementga murojaat qiladi (0-dan boshlanadi) va append, pop, remove kabi ko‘plab foydali usullarga ega. Listlar bilan ishlash keng qo‘llanadi: ma’lumotlar to‘plamini saqlash, filtr, tartibga solish yoki mavhum algoritmlarni bajartirish uchun ideal. Quyidagi oddiy misolda ro‘yxat yaratish, indeks bo‘yicha kirish, ro‘yxat bo‘yicha tushuncha va ro‘yxatni kengaytirishni ko‘rsataman. 👇

Amaliy kod misoli:
# Oddiy ro'yxat yaratish, indekslash va ro'yxat tushunchasini ko'rsatish
fruits = ["olma", "banan", "olcha", "nok"]
# indeks bo'yicha chiqarish
print("Birinci meva:", fruits[0])

# ro'yxat tushunchasi: ro'yxat ichida ro'yxat
evens = [x for x in range(1, 11) if x % 2 == 0]
print("Juft sonlar:", evens)

# ro'yxatni qo'shish
fruits.append("shaftoli")
print("Yangilangan ro'yxat:", fruits)

# qisqa filtratsiya misoli: uzun ro'yxatdan faqat qaysi meva
# bo'lishini ko'rish
selected = [f for f in fruits if "a" in f]
print("A harfi bor mevalar:", selected)


Kod natijasi (Output):
Birinci meva: olma
Juft sonlar: [2, 4, 6, 8, 10]
Yangilangan ro'yxat: ['olma', 'banan', 'olcha', 'nok', 'shaftoli']
A harfi bor mevalar: ['olma', 'banan', 'olcha', 'shaftoli']


Obunachilardan fikr: Siz ro‘yxatlar bilan ishlashning qaysi usullarini eng ko‘p foydalanasiz va qaysi vaziyatlarda ro‘yxat tushunchasi eng foydali bo‘ladi deb o‘ylaysiz? Keysingi mavzu uchun qaysi misollar yoqadi? 💬🧭
4) Listlar va list comprehension: Qisqa yo‘l bilan kvadratlar ro‘yxati 🎯

Listlar Pythonning eng qulay ma’lumot tuzilmasi bo‘lib, turli ma’lumotlarni tartibda saqlashga yordam beradi. List comprehension esa yozishni soddalashtirib, o‘qish oson kod yaratadi. Oddiy for sikl bilan ham xuddi shunday natijaga erishsak bo‘lsa-da, qisqa va samarali yozish uchun ayniqsa foydali. Masalan, kichik bir misol orqali kvadratlar ro‘yxatini yaratish uchun oddiy bo‘laklar:

- Bu usulni ishlatishning asosiy afzalligi — bir qator amalda ro‘yxatga olinish: necha xonali bo‘lishini oldindan aytmasdan, istalgan intervalga moslash.
- Ehtiyot bo‘ling: list comprehension katta ma’lumotlar uchun xotira talabini oshirishi mumkin, shuning uchun yodingizda tutsangiz yaxshi.
- Shaxsiy foydalanuvchi uchun — kodni soddalashtirib, o‘qilishi uchun izohlar qo‘yish ham muhim.

# Misol: 1 dan 10 gacha bo'lgan sonlarning kvadratlarini ro'yxatga olish
squares = [x*x for x in range(1, 11)]
print(squares)


Output
1, 4, 9, 16, 25, 36, 49, 64, 81, 100

Siz list comprehensionni qachon va qanday holatda ishlatganingizni yozing: murakkab shartlar bilan ro‘yxat olish, yoki oddiy o‘zgartirishlar uchun qaysi holatlar qulay? 😊👏
🎯 1-bo‘lim: Funksiya yozish – def bilan amaliy misol

Funksiya — dasturlashning tiyilish nuqtasi. Bugun oddiy, ammo foydali: yildirim tezligida hisoblash uchun sum_of_squares deb ataladigan funksiya yozamiz. Bu funksiya n ni oladi va 1 dan n gacha bo‘lgan sonlarning kvadratlari yig‘indisini chiqaradi. Funksiya yordamida xuddi shunday murakkabroq amallarni ham qisqa, o‘qilishi oson kod bilan bajara olasiz. Pratikada nazariya tez-tez kodga ko‘chadi, shuning uchun quyidagi misolni diqqat bilan ko‘ring. ✨

Nazariy tushuntirish:
- Funktsiya oddiy tashuvchini oladi (n) va ichida sikl orqali 1 dan n gacha ko‘rib chiqadi.
- Har bir i ning kvadrati qo‘shiladi, natija esa return bilan beriladi.
- Funktsiyadan foydalanish uchun uning nomini chaqirib, parametrini uzatamiz.

Kod misoli:
def sum_of_squares(n: int) -> int:
"""
1 dan n gacha bo'lgan sonlarning kvadratlari yig'indisini hisoblaydi.
"""
total = 0
for i in range(1, n + 1):
total += i * i
return total

# Misol uchun:
n = 5
result = sum_of_squares(n)
print("Sum of squares 1..", n, "=", result)


Kod natijasi (Output):
Sum of squares 1.. 5 = 55

Bugungi darsimizdan nima o‘rgandingiz?
Siz o‘zingizga qaysi oddiy funktsiyani yozib ko‘rardingiz? Fikrlaringizni comment qoldiring orqa aloqani yoqtiring!
2️⃣ Listlar va list comprehension — tezkor yozuvlar bilan oson tahlil 💡

List comprehension — bu ro‘yxatlarni qisqa va o‘qilishi oson yozishning kuchli usuli. Oddiy mantikani bir chiziqda yozib, mosligiga qarab filtrlash, transformatsiya qilish imkonini beradi. Misol uchun, 1–10 oralig‘idagi juft sonlarning kvadratlarini olish uchun qilingan yozuvlar ancha lo‘nda bo‘ladi va kodni o‘qish osonligini oshiradi. Katta ma’lumotlar bilan ishlayotganda tezlashtiradi, lekin murakkab sharoitlarda bitta satrga haddan ziyod ko‘p sharoit yozmaslik kerak — o‘qilishi yo‘qligi muammo yuzaga kelishi mumkin. Iqtisodiy va toza kod uchun oddiy holatda foydalanish eng yaxshi.

Quyida amaliy misol: oddiy 1 dan 10 gacha bo‘lgan sonlarning juftlarini kvadratlashtirib olish.

# misol: 1..10 orasidagi juft sonlarning kvadratlari
evens_sq = [x*x for x in range(1, 11) if x % 2 == 0]
print(evens_sq)


Output
[4, 16, 36, 64, 100]


Sizning tajribangizda list comprehensiondan qachon va qaysi vaziyatda foydalanasiz? Yoqimsiz yoki murakkab holatlarda o‘zgartirish (yo 3-4 ta misol) kiritgan bo‘lsangiz, ulashsangiz-chi?
🧩 3-qism: List comprehensionlar — ro‘yxatlarni qisqa yo‘l bilan yaratish

Listlar Pythonning qudratli tuzilmasi. List comprehensionlar yordamida oddiy for sikli bilan yozilgan kodni qisqa, o‘qilishi oson shaklga kiritamiz. Ular tez-tez ro‘yhatlardan filtrlar qo‘llash, ma’lumotlar ustida transformatsiya qilish uchun ishlatiladi. Shunchaki mos yozuvlar va ifoda bilan bir nechta satrda mavjud natijaga erishamiz. Bu usul kodni 2x tezroq yozish imkonini berdi, ayni paytda tushunarli bo‘lib qoladi. 😊

Misol: biz 1 dan 20 gacha bo‘lgan sonlardan faqat juft sonlarni topamiz. Oddiy for sikli o‘rniga list comprehensiondan foydalanamiz. Natija toza ro‘yxat bo‘lib, har bir element o‘z o‘rnida saqlanadi.

# juft sonlar ro'yxatini qisqa shaklda olish
numbers = range(1, 21)
evens = [n for n in numbers if n % 2 == 0]
print(evens)


Output:
[2, 4, 6, 8, 10, 12, 14, 16, 18, 20]


Bu yerda n — har bir element, for n in numbers — ro‘yxat bo‘ylab aylanadi, if n % 2 == 0 esa shart. Agar talab bo‘lsa, hamma noldan tashqari qiymatlar ham qo‘shilishi mumkin. Masalan, har bir raqamning kvadratini olish uchun [n**2 for n in numbers] yozamiz. Qisqa, samarali, xuddi shunga o‘xshash transformatsiyalar uchun list comprehensionlar juda mos keladi. ✅

Savol: Sizda list comprehension bilan qaysi holat eng foydali bo‘ldi? Yoki oddiy for sikli bilan ishlashni afzal ko‘rasizmi? Fikrlaringizni yozib qoldiring. 👇
Sarlavha: Python bilan Fayllar bilan Ishlash — oddiy misol: matn faylini o‘qib yozish va o‘zgartirish 📂🐍

Mavzu qisqacha tushuntirish: Fayllar bilan ishlash — Pythonning asosiy ko‘nikmalaridan. Bu misolda biz matn faylini o‘qib, har bir qatorni o‘zgartirib yangi faylga yozamiz. Amaliyot faylga yozish/oqish asoslarini amalda ko‘rsatadi, ya'ni real dunyodagi loglar, natijalar yoki matn fayllarini avtomatik tayyorlash uchun qulay. Quyidagi kod yordamida biz avvalo namunaviy fayl yaratamiz, undan o‘qib, satrlarni o‘zlashtirib yozamiz, so‘ng natijani ko‘rsatamiz. Muammo yoqsa o‘zgartirib, o‘z ish jarayonlaringizga moslashtirishingiz mumkin. ⚙️🔍

Kod misoli (real va ishlaydigan):
# 1) Namuna matn faylini yaratamiz
sample_lines = [
"Assalomu alaykum!",
"Bu misolda fayl bilan ishlash bo‘yicha oddiy amaliyot ko'rsataman.",
"Har bir qatorni o'zgartirish uchun Python kodini yozamiz."
]

with open('sample.txt', 'w', encoding='utf-8') as f:
f.write("\n".join(sample_lines))

# 2) Faylni o‘qish, har bir qatorni yuqori balandlikka o‘zgartirish
with open('sample.txt', 'r', encoding='utf-8') as f:
lines = f.read().splitlines()

# 3) Qatorlarni o'zgartirish va yangi faylga yozish
processed = [f"{i+1}. {line.upper()}" for i, line in enumerate(lines)]

with open('out.txt', 'w', encoding='utf-8') as f:
f.write("\n".join(processed))

# 4) Natijani chiqarishga tayyorgarlik
print("Natija:")
print("\n".join(processed))


Kod natijasi (Output):
1. ASSALOMU ALAYKUM!
2. BU MISOLDA FAYL BILAN ISHLASH BO‘YICHA ODDIY AMALIYOT KO'RS ATAMAN.
3. HAR BIR QATORNI O'ZGARTIRISH UCHUN PYTHON KODINI YOZAMIZ.

Sizningcha, fayl bilan ishlash jarayonlarini automatlashtirish uchun yana qaysi amallarni (masalan, filtrlash, qatorlarni indekslash, kodlashtirish o‘zgartirish) qo‘shishni istardingiz? Commentsda o‘zingizga mos misollarni yozing yoki loyihaingizdagi eng qiyin fayl-salonini tasvirlab bering! 💬🤖
Sarlavha: List comprehension bilan Python ro‘yxatlarini tez hosil qilamiz 📋 (List comprehension)

Nazariy tushuntirish:
- List comprehension — Python’da ro‘yxatlarni soddaroq va tez yaratish vositasi.
- Oddiy for loop o‘rniga bitta qator ifodada yozish mumkin.
- Üstiga shartlar qo‘yish, har bir elementga amallarni qo‘llash mumkin.
- Kod o‘qilishi oson, samaradorlik esa yuqori bo‘ladi.

Amaliy kod misoli:
# 0 dan 9 gacha bo‘lgan sonlarning juftlarini kvadratlari ro'yxatini yarataylik
juft_kvadratlar = [x*x for x in range(10) if x % 2 == 0]
print(juft_kvadratlar)


Kod natijasi (Output):
Output: [0, 4, 16, 36, 64]

Savol (obunachilardan fikr): List comprehensionni yanada qiyinroq holatda qanday qo‘llash mumkin? Masalan, matnlar ro‘yxatidan faqat uzun bo‘lmaganlarini va har birini bosh harf bilan yashirishsiz chiqarish usullari bormi? Siz qaysi misollarni ko‘proq yoqtirasiz? 💬
6) CSV fayllar bilan ishlashning oddiy yo‘li 📁✨

CSV — yengil formatdagi ma’lumotlar jadvali. Python bilan uni o‘qish, yozish tez va sodda. csv moduli yordamida har xil qatorlarni oson parchalab, yangilarini qo‘shish mumkin. Agar katta ma’lumotlar bo‘lsa, pandas yordami bilan ham samarali ishlash mumkin, lekin oddiy vaziyatlar uchun csv – juda qulay.

Quyida oddiy misol: ro‘yxatdan olingan foydalanuvchilarni CSV ga yozamiz, so‘ngra o‘qib chiqamiz. Bu amaliyot sizga “ma’lumotlar orkestratsiyasi” haqida tushuncha beradi va real loyihalarda tez yordam beradi.

import csv

# 1) Yozish
data = [
{"name": "Ali", "age": 30, "city": "Toshkent"},
{"name": "Dilfuza", "age": 25, "city": "Samarqand"},
{"name": "Kamola", "age": 28, "city": "Buxoro"},
]

with open("users.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.DictWriter(f, fieldnames=["name", "age", "city"])
writer.writeheader()
for row in data:
writer.writerow(row)

# 2) O'qish
with open("users.csv", "r", newline="", encoding="utf-8") as f:
reader = csv.DictReader(f)
for row in reader:
print(row)


Chiqqan natija (Output):
{'name': 'Ali', 'age': '30', 'city': 'Toshkent'}
{'name': 'Dilfuza', 'age': '25', 'city': 'Samarqand'}
{'name': 'Kamola', 'age': '28', 'city': 'Buxoro'}

Yakuniy fikr: CSV bilan ishlash yuzaki ma’lumotdan to‘g‘ri formatga o‘tishda keng qo‘llanadi. Sizincha, real loyihalarda CSV ning qirg‘og‘idan qaysi holatlarda Pandas ga o‘tish maqbulroq? Aytib berishingiz mumkinmi?
💩2
7️⃣ Listlar bilan ishlash: map, filter va lambda — qulay yo‘l

Bugungi mavzu tez yozish va aniq filtrlar uchun kuchli vosita: map, filter va lambda. Python’da ro‘yxat (list) ustida elementlar bo‘yicha amallarni soddalashtirolishingiz mumkin. map yordamida har bir elementga funksiyani qo‘llaysiz, filter esa shartga mos kelgan elementlarni tanlab oladi, lambda esa kichik anonim funksiyani tez yozishga yordam beradi. Shuning uchun murakkab sikllarsiz ham o‘zgaruvchilarni oson ishlatishingiz mumkin. Biroq o‘qilishi yomon bo‘lmasin deya, ko‘proq o‘qinganlar uchun list comprehensions ham qulay alternativadir. Bugun map, filter va lambda’lardan bir nechta amalda misol ko‘raylik.

# 1) ro'yxatdagi sonlarning kvadratlarini olamiz
nums = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x * x, nums))

# 2) faqat juft sonlarni tanlab olish
evens = list(filter(lambda x: x % 2 == 0, nums))

# 3) qisqa ma’lumotlar: nomlar ro'yxatidagi uzunliklarini topish
names = ["Ali", "Zarina", "Diyor"]
lengths = list(map(len, names))

squared, evens, lengths


Output:
([1, 4, 9, 16, 25], [2, 4], [3, 6, 5])


Qanday hollarda lambda + map/filter foydali? YUQORI darajadagi funksiyani yozmasdan tez yozish kerak bo‘lsa yoki diskret transformatsiya (shu bilan birga o‘qilishi) kutilmasa. Shuningdek, o‘qinganlar uchun tushunarliligi yo‘lida list comprehension’larni ham ko‘rib chiqing — ba’zi hollarda o‘qilishi yaxshiroq bo‘ladi.

Sizningcha, siz ko‘proq qaysi usulga moyil bo‘lasiz: map/filter/lambda yoki ro‘yxat bo‘yicha tushunarli list comprehension? Qaysi misollarni kundalik vazifadagi ishlar uchun yoqtirasiz?
🥱2
🔎 8️⃣ Mavzu: Python da Satrlarni Qisqartirish (slice) bilan Ro‘yhatlarni Kesish

Satrlar yoki ro‘yhatlar bilan ishlashda slicing (qirqib olish) eng qulay usul bo‘lib, indekslar orqali qismlarni oladi. Bu kichik vosita katta ma’lumotlar bilan tezda ishlashga yordam beradi. Masalan, biror matnning boshlanishini yoki oxirgi qismini ajratish uchun ishlatamiz. Slicing, manba: indekslashni o‘rganish – Pythonning kuchli qismi.

Quyida qisqa teoriya:
- Ro‘yhat yoki satrni qirqish uchun siqilgan notatsiya: object[start:stop:step].
- start - boshlanish indeksini, stop - yakun indeksini (shu indekstdan oldingi element) belgilaydi.
- Agar start yoki stop ko‘rsatilmasa, mos ravishda boshlanish yoki yakun “tizimga mos” bo‘ladi.
- Step bo‘lsa, har bir qadamda nechanchi element olinadi. Agar step manfiy bo‘lsa, teskari yondashuv ishlaydi.

Kod misoli (amaliy):
# misol: ro'yhatdan qismini olish
students = ["Ali", "Zarina", "Daler", "Nilufar", "Sohib", "Gul", "Anvar"]

# 1) Birinchi uch talabani olish
first_three = students[:3]

# 2) Ikkinchi uch talabani olish
middle_three = students[1:4]

# 3) Oxirgi ikkisini olish
last_two = students[-2:]

# 4) Har 2-qadamda olish (step)
every_second = students[::2]

# 5) Qaytadan teskari ro'yxat
reversed_list = students[::-1]


Kodni ishga tushirganda chiqishi (Output):
['Ali', 'Zarina', 'Daler']
['Zarina', 'Daler', 'Nilufar']
['Gul', 'Anvar']
['Ali', 'Daler', 'Sohib', 'Anvar']
['Anvar', 'Gul', 'Sohib', 'Nilufar', 'Daler', 'Zarina', 'Ali']


Og‘iz ochilishi: slicing bilan ro‘yhatlarni tezda ajratish, matnlar bilan ishlashda ham foydali bo‘ladi. Siz o‘zingiz boshlab-oylash uchun qaysi ro‘yhat ustida sinab ko‘rdingiz?

Savol: Satrlar ustida qirqishda qaysi yo‘lni eng ko‘p ishlatasiz va qaysi holatda stepni kamaytiradigan yoki oshiradigan holatlar bo‘ladi?
👎2
9️⃣ Listlar bilan ishlash: indeks bo‘yicha o‘zgartirish

🔎 Ko‘p hollarda ro‘yxat ichidagi biror elementni o‘zgartirishni istaysiz. Buning eng oddiy yo‘li – elementga uning index (indeks) orqali murojaat qilish. E’tibor bering: Python’da indeks 0 dan boshlanadi va indeks chegaradan chiqsa ValueError emas, xato ishlamay qoladi — shunga qarab tekshirish qilsak yaxshi. Quyidagi misolda 3-chiziqdagi qiymatni o‘zgartiramiz va natijani ko‘rsatamiz.

# Dastlabki ro'yxat
nums = [5, 12, 9, 33, 27]
print("Dastlabki ro'yxat:", nums)

# O'zgartirish uchun indeks
idx = 2 # 0,1,2 — 3-chi element

if 0 <= idx < len(nums):
nums[idx] = 99
else:
print("Xato: indeks ro‘yxatdan tashqarida")

print("Yangilangan ro'yxat:", nums)


Output
Dastlabki ro'yxat: [5, 12, 9, 33, 27]
Yangilangan ro'yxat: [5, 12, 99, 33, 27]

💡 Qisqa maslahatlar:
- Ro‘yxat o‘lchamini oldindan tekshirib qo‘yish xavfsiz variant.
- Bir nechta indeks bo‘yicha o‘zgarish uchun ro‘yhat bo‘ylab aylanma ishlatish ham mumkin (for yordami bilan).

Siz indeks bo‘yicha ro‘yxatni o‘zgartirishda qaysi yo‘lni afzal ko‘rasiz? Fikrlaringizni izohlarda yozing! 👇
🤮2
1-mavzu: Funktsiyalar bilan Pythonni modularlashtirish

Python dasturlashda kodni kichik, mustaqil bloklarga bo‘lish funktsiyalar yordamida oson tushunishga va kengaytirishga yordam beradi. Funktsiyalar - bu berilgan ishni bajaradigan mustaqil qism bo‘lib, ular dasturdagi xatti-harakatlarni takrorlanmas qilishi, oson testlanishi va kerak bo‘lganda chaqirilishi uchun mo‘ljallangan. Ularning asosiy afzalliklari: kodni soddalash, qayta ishlash qobiliyati, xatoliklarni kamaytirish. Dastlabki qadam sifatida kichik funksiyalarni yozishni o‘rganish, ularni kerakli qiymatlar bilan chaqirish va natijani qaytarish qoidalarini tushunish muhimdir. Yaxshi yozilgan funktsiya o‘zini o‘zi tushuntiradigan nomga ega bo‘lishi, kirish parameterlarini aniq belgilashi va ichidagi logikani minimal darajada qamrab olishi kerak.

Quyidagi misolda oddiy funktsiya yordamida ism asosida salomlashuvni yaratish ko‘rsatiladi. Funksiya oldindan qat’iy nom orqali chaqiriladi, foydalanuvchi kiritgan nomni qabul qiladi va natijani qaytaradi. Bunday mantiqni kengaytirib, dasturda ko‘plab boshqa jarayonlar uchun ham moslashtirish mumkin: summalash, ro‘yxatni filtrlash, foydalanuvchi xolis xabarini yaratish va boshqalar.

def salom_ber(ism):
if not ism:
return "Salom, guliya olam!"
return f"Salom, {ism}!"

# Misol uchun chaqirish
ism_foydalanuvchi = "Dilshod"
natijani_qaytar = salom_ber(ism_foydalanuvchi)
print(natijani_qaytar) # 2-qator: Salom, Dilshod!


Salom, Dilshod!


Bugungi dars bo‘yicha savol: funktsiyalar yordamida dasturga yanada ko‘proq qismi uchun kichik qismi yozish qiyinchiliksizmi? Qanday turdagi funktsiyalarni avvalroq yozishni tavsiya qilardingiz: yordamchi funksiyalarmi yoki bajaruvchi funksiyalarmi?
🖕2