Dasturlashni o’rganishni xohlaysiz, lekin qayerdan boshlashni bilmaysizmi? Ko’pchilik uchun eng qulay birinchi til — Python. Bu qo’llanmada Python nima ekanini va nega u boshlovchilarga mos kelishini tushuntiramiz, uni kompyuterga o’rnatamiz (yoki o’rnatmasdan brauzerda sinab ko’ramiz), birinchi dasturni yozamiz va asosiy tushunchalarni misollar bilan ko’rib chiqamiz: o’zgaruvchilar va ma’lumot turlari, foydalanuvchidan ma’lumot olish, arifmetika, shartlar, sikllar, ro’yxatlar va funksiyalar. Keyin xato xabarlarini o’qishni o’rganamiz, oddiy viktorina dasturini bosqichma-bosqich yig’amiz va oxirida amaliy topshiriqlar hamda tekshiruv ro’yxatini beramiz. Oldindan tajriba talab qilinmaydi — kompyuterdan ishonch bilan foydalana olish yetarli.
Python nima va nega boshlovchilarga qulay
Python — umumiy maqsadli dasturlash tili. Unda veb-saytlarning server qismi, ma’lumotlar tahlili, ish jarayonlarini avtomatlashtirish, sun’iy intellekt va ta’lim uchun dasturlar yoziladi. Python bepul, barcha asosiy operatsion tizimlarda ishlaydi va dunyo bo’ylab katta hamjamiyatga ega.
Nega aynan Python bilan boshlash qulay:
- O’qilishi oson sintaksis. Python kodi oddiy inglizcha jumlalarga yaqin. Ortiqcha qavslar va nuqtali vergullar yo’q.
- Tez natija. Bitta qator yozib, darhol natijani ko’rasiz. Bu motivatsiyani saqlashga yordam beradi.
- Keng qo’llanish. Asoslarni o’rgangach, ma’lumotlar tahlili, veb-dasturlash yoki avtomatlashtirishga o’tish mumkin — til bir xil qoladi.
- Ko’p o’quv materiali. Har qanday savolingizga javob topish oson, xato xabarlari ham tushunarli yozilgan.
Agar dasturlash umuman nima ekanini va qaysi yo’nalishni tanlashni hali o’ylayotgan bo’lsangiz, avval dasturlashni boshlash haqidagi maqolamizni o’qib chiqing.
O’rnatish va birinchi dastur
Windows’da o’rnatish
- Brauzerda python.org saytini oching va Downloads bo’limidan Windows uchun so’nggi barqaror versiyani yuklab oling.
- O’rnatuvchini ishga tushiring. Birinchi oynaning pastida Add python.exe to PATH belgisi bor — uni albatta belgilang. Bu belgi qo’yilmasa, buyruqlar qatori Python’ni “tanimaydi”.
- Install Now tugmasini bosing va o’rnatish tugashini kuting.
- Start menyusidan Command Prompt (yoki Terminal) ni oching va quyidagini yozing:
python --version
Agar javobda versiya raqami chiqsa, hammasi joyida. Python’ning yangi versiyalarida python.org Windows uchun “Python install manager” deb nomlangan yangi o’rnatuvchini ham taklif qilishi mumkin — uning ko’rsatmalariga amal qilsangiz ham bo’ladi. Asosiysi, oxirida yuqoridagi buyruq ishlashi kerak.
macOS va Linux
- macOS. python.org saytidan macOS uchun o’rnatuvchini yuklab, odatiy tarzda o’rnating. Terminal’da buyruq
python3deb yoziladi:python3 --version. - Linux. Ko’pchilik distributivlarda Python oldindan o’rnatilgan. Terminal’da
python3 --versionni tekshiring. Bo’lmasa, Ubuntu va shunga o’xshash tizimlardasudo apt install python3buyrug’i bilan o’rnatiladi.
O’rnatmasdan brauzerda sinash
Kompyuter ishxonaniki bo’lsa yoki dastur o’rnatishga ruxsat bo’lmasa, onlayn muhitlardan foydalaning. Masalan, Google Colab — Google akkaunti bilan kiriladigan bepul xizmat: yangi bloknot (notebook) ochasiz, katakka kod yozasiz va Shift + Enter bilan ishga tushirasiz. Boshqa onlayn Python interpretatorlari ham bor. Ular birinchi haftalar uchun to’liq yetarli, lekin jiddiy o’rganish uchun Python’ni o’z kompyuteringizga o’rnatgan ma’qul.
Birinchi dastur
Python bilan birga IDLE degan oddiy muharrir o’rnatiladi. Uni oching, File → New File ni tanlang va quyidagini yozing:
print("Salom, dunyo")
print("Mening ismim Dilnoza")
Faylni salom.py nomi bilan saqlang va Run → Run Module (F5) ni bosing. Ekranda ikki qator chiqadi. print() — qavs ichidagi narsani ekranga chiqaruvchi funksiya. Matn qo’shtirnoq ichida yoziladi. Keyinchalik Visual Studio Code kabi qulayroq muharrirga o’tishingiz mumkin, lekin boshlash uchun IDLE yetarli.
O’zgaruvchilar, ma’lumot turlari va input
O’zgaruvchilar
O’zgaruvchi — qiymatga berilgan nom. Uni ichiga narsa solib qo’yiladigan yorliqli quti deb tasavvur qiling:
name = "Jasur"
age = 19
height = 1.78
is_student = True
print(name)
print(age)
= belgisi matematikadagi “teng” emas, balki “o’ngdagi qiymatni chapdagi nomga bog’la” degan ma’noni bildiradi.
To’rtta asosiy tur
- str (satr) — matn:
"Jasur","Toshkent". Har doim qo’shtirnoq ichida. - int (butun son) —
19,-5,2026. - float (kasr son) —
1.78,0.5. Kasr qismi vergul emas, nuqta bilan yoziladi. - bool (mantiqiy qiymat) — faqat
TrueyokiFalse, bosh harf bilan.
Qiymat turini type() funksiyasi bilan bilish mumkin: print(type(age)) natijasi <class 'int'> bo’ladi.
Foydalanuvchidan ma’lumot olish
input() funksiyasi foydalanuvchi klaviaturada yozgan matnni qaytaradi. Muhim nuqta: u har doim satr (str) qaytaradi, hatto foydalanuvchi son yozsa ham. Hisoblash uchun uni int() yoki float() bilan songa aylantirish kerak:
name = input("Ismingiz nima? ")
birth_year = int(input("Tug'ilgan yilingiz: "))
age = 2026 - birth_year
print("Salom,", name)
print("Bu yil siz", age, "yoshga to'lasiz")
print() ga bir nechta qiymatni vergul bilan bersangiz, ular orasiga avtomatik probel qo’yiladi. Matn ichiga qiymat qo’yishning yana bir qulay usuli — f-satr: print(f"Salom, {name}"). Qavs ichidagi nom o’rniga uning qiymati qo’yiladi.
Arifmetika va shartlar
Arifmetik amallar
a = 17
b = 5
print(a + b) # 22 - qo'shish
print(a - b) # 12 - ayirish
print(a * b) # 85 - ko'paytirish
print(a / b) # 3.4 - bo'lish, natija doim float
print(a // b) # 3 - butun qismi
print(a % b) # 2 - qoldiq
print(a ** 2) # 289 - darajaga ko'tarish
Diqqat: 10 / 2 natijasi 5 emas, 5.0 — oddiy bo’lish har doim kasr son beradi. Amallar tartibi matematikadagidek: avval ko’paytirish va bo’lish, keyin qo’shish va ayirish. Shubha bo’lsa, qavs qo’ying.
Shartlar: if, elif, else
Dastur vaziyatga qarab turlicha ishlashi uchun shartlar kerak. Masalan, test natijasiga qarab baho chiqaramiz (ballar shartli):
score = int(input("Test bali (0-100): "))
if score >= 86:
print("A'lo")
elif score >= 71:
print("Yaxshi")
elif score >= 56:
print("Qoniqarli")
else:
print("Yana tayyorlanish kerak")
Python shartlarni yuqoridan pastga tekshiradi va birinchi rost chiqqanini bajaradi. E’tibor bering: har bir shart oxirida ikki nuqta : turadi, ichidagi qatorlar esa 4 probel bilan surilgan. Python’da bu chekinish bezak emas, balki qaysi qator qaysi blokka tegishli ekanini bildiruvchi qoida.
Taqqoslash belgilari: == (teng), != (teng emas), >, <, >=, <=. Bir = qiymat beradi, ikkitasi == taqqoslaydi — bu boshlovchilar eng ko’p adashadigan joy. Shartlarni and, or, not bilan birlashtirish mumkin: if age >= 18 and has_passport:.
Sikllar va ro’yxatlar
for va range
Sikl bir xil amalni ko’p marta takrorlaydi. range(1, 6) 1 dan 5 gacha (6 kirmaydi) sonlarni beradi:
for day in range(1, 6):
print(f"{day}-kun: 30 daqiqa mashq")
range(5) esa 0 dan 4 gacha beradi. Boshlang’ich son kiritilmasa, sanash noldan boshlanadi — dasturlashda bu odatiy hol.
while
while sikli shart rost bo’lguncha takrorlanadi. Takrorlar soni oldindan noma’lum bo’lganda qulay:
password = ""
while password != "olma123":
password = input("Parolni kiriting: ")
print("Xush kelibsiz")
Ehtiyot bo’ling: shart hech qachon yolg’on bo’lmasa, sikl cheksiz davom etadi. Bunday dasturni to’xtatish uchun Ctrl + C ni bosing.
Ro’yxatlar (list)
Ro’yxat bir nechta qiymatni tartib bilan saqlaydi. Elementlar kvadrat qavs ichida, vergul bilan yoziladi va noldan raqamlanadi:
fruits = ["olma", "anor", "uzum"]
print(fruits[0]) # olma
print(fruits[-1]) # uzum - oxirgi element
print(len(fruits)) # 3 - elementlar soni
fruits.append("behi") # oxiriga qo'shish
fruits.remove("anor") # qiymat bo'yicha o'chirish
fruits[0] = "nok" # elementni almashtirish
print("uzum" in fruits) # True - bor-yo'qligini tekshirish
for fruit in fruits:
print(fruit)
Sonlardan iborat ro’yxat uchun foydali funksiyalar: sum() — yig’indi, min() va max() — eng kichik va eng katta qiymat, sorted() — tartiblangan nusxa. Masalan, haftalik qadamlar soni (shartli): steps = [5200, 8100, 4300], print(sum(steps) / len(steps)) o’rtachani chiqaradi.
Funksiyalar va kodni chiroyli yozish
def va return
Funksiya — nom berilgan va qayta ishlatiladigan kod bo’lagi. U def so’zi bilan yaratiladi, return esa natijani qaytaradi:
def average(numbers):
"""Ro'yxatdagi sonlarning o'rtachasini qaytaradi."""
return sum(numbers) / len(numbers)
def greet(name):
print(f"Salom, {name}. Darsga xush kelibsiz")
grades = [5, 4, 5, 3]
print(average(grades)) # 4.25
greet("Sardor")
print() natijani faqat ekranga chiqaradi, return esa uni dasturning boshqa qismiga qaytaradi — keyin uni o’zgaruvchiga saqlash yoki hisobda ishlatish mumkin. Agar bir xil kodni ikki-uch joyda yozayotgan bo’lsangiz, uni funksiyaga aylantirish vaqti kelgan.
Toza kod qoidalari
- Tushunarli nomlar.
x,a1emas,total_score,birth_year. Nomlar lotin harflarida, kichik harf bilan, so’zlar pastki chiziq bilan ajratiladi. Inglizcha nomlar odatiy, lekin o’zbekcha lotin nomlar ham ishlaydi — asosiysi, bir xillik. - Izohlar.
#belgisidan keyingi matnni Python o’qimaydi. Izohda kod “nima” qilishini emas, “nega” shunday yozilganini tushuntiring. - 4 probel. Har bir ichki blok 4 probel bilan suriladi. Tab va probelni aralashtirmang — ko’p muharrirlar Tab bosilganda avtomatik 4 probel qo’yadi.
- Bo’sh qatorlar. Mantiqiy qismlar orasida bitta, funksiyalar orasida ikkita bo’sh qator.
Xatolarni o’qish va keng tarqalgan xatolar
Xato xabari — jazo emas, balki Python sizga muammo qayerda ekanini aytayotgani. Xabarni pastdan yuqoriga o’qing: oxirgi qatorda xato turi va sababi, undan yuqorida fayl nomi va qator raqami turadi. Xatolar bilan ishlash haqida batafsil — lug’atdagi xato va tuzatish bo’limida.
SyntaxError — yozilish qoidasi buzilgan
if score > 50
print("O'tdi")
Python SyntaxError: expected ':' deydi — shart oxirida ikki nuqta yo’q. Tuzatish: if score > 50:. Yopilmagan qo’shtirnoq yoki qavs ham shu xatoni beradi.
NameError — nom topilmadi
pirnt("Salom")
Natija: NameError: name 'pirnt' is not defined. Yangi versiyalar hatto Did you mean: 'print'? deb taklif qiladi. Sabab — nomdagi xato yoki o’zgaruvchini yaratilishidan oldin ishlatish. Python katta-kichik harfni farqlaydi: Name va name — ikki xil nom.
IndentationError — chekinish xatosi
for i in range(3):
print(i)
Natija: IndentationError: expected an indented block. Sikl ichidagi print(i) qatorini 4 probel bilan o’ngga suring.
TypeError — turlar mos emas
age = 25
print("Yoshim: " + age)
Natija: TypeError: can only concatenate str (not "int") to str — satrga sonni + bilan qo’shib bo’lmaydi. Tuzatish: print("Yoshim:", age) yoki print("Yoshim: " + str(age)).
Boshqa keng tarqalgan xatolar
input()natijasiniint()ga aylantirmaslik:"5" + "3"natijasi8emas,"53".- Son o’rniga harf kiritilganda
int("besh")→ValueError. Bu xato emas, foydalanuvchi kiritgan ma’lumot muammosi — keyinchalik uni tekshirishni o’rganasiz. - Shartda
=va==ni chalkashtirish. - Ro’yxat indeksini birdan boshlash: uch elementli ro’yxatda
fruits[3]→IndexError. - Faylni saqlamasdan ishga tushirish va eski natijani ko’rib hayron bo’lish.
Kichik loyiha: viktorina bosqichma-bosqich
O’rganganlarni birlashtirib, uch savollik viktorina yozamiz. Har bir to’g’ri javob uchun 1 ball beriladi.
1-qadam. Bitta savol. input() va if yetarli. .strip() ortiqcha probellarni olib tashlaydi, .lower() esa matnni kichik harfga o’tkazadi — shunda “Toshkent”, “toshkent ” va “TOSHKENT” bir xil hisoblanadi:
reply = input("O'zbekiston poytaxti qaysi shahar? ")
if reply.strip().lower() == "toshkent":
print("To'g'ri")
else:
print("Noto'g'ri")
2-qadam. Ko’p savol va ball. Savollarni ro’yxatda saqlaymiz: har bir element — savol va javobdan iborat ichki ro’yxat. for sikli ularni birma-bir beradi.
3-qadam. Funksiya. Savol berish va javobni tekshirishni alohida funksiyaga chiqaramiz.
4-qadam. Yakuniy baho. Natijaga qarab if/elif/else bilan izoh chiqaramiz. Tayyor dastur:
# Viktorina: har bir to'g'ri javob uchun 1 ball
questions = [
["O'zbekiston poytaxti qaysi shahar?", "toshkent"],
["Bir haftada necha kun bor?", "7"],
["Ekranga matn chiqaruvchi Python funksiyasi?", "print"],
]
def ask(question, answer):
"""Savolni beradi, javob to'g'ri bo'lsa True qaytaradi."""
reply = input(question + " ")
return reply.strip().lower() == answer
score = 0
for item in questions:
if ask(item[0], item[1]):
print("To'g'ri")
score = score + 1
else:
print("Noto'g'ri. To'g'ri javob:", item[1])
print(f"Natija: {score} / {len(questions)} ball")
if score == len(questions):
print("Ajoyib, hammasi to'g'ri")
elif score > 0:
print("Yomon emas, yana urinib ko'ring")
else:
print("Savollarni qaytadan ko'rib chiqing")
Dasturni ishga tushirib, ataylab noto’g’ri javoblar bering va har bir tarmoq ishlashini tekshiring. Keyin o’zingizning savollaringizni qo’shing — ro’yxatga yangi qator qo’shish kifoya, qolgan kod o’zgarmaydi. Mana shu ro’yxat va funksiyalarning kuchi.
Amaliy mashq, checklist va keyingi qadamlar
Amaliy topshiriqlar
- Tanishuv. Foydalanuvchidan ismi va shahrini so’rab, “Salom, Aziza. Samarqand — go’zal shahar” kabi gap chiqaring.
- Kalkulyator. Ikki sonni so’rab, ularning yig’indisi, ayirmasi, ko’paytmasi va bo’linmasini chiqaring.
- Juft yoki toq. Kiritilgan son juftmi yoki toqmi —
%vaifyordamida aniqlang. - Ko’paytirish jadvali. Foydalanuvchi kiritgan son uchun 1 dan 10 gacha ko’paytirish jadvalini
forbilan chiqaring. - Kundalik xarajatlar. Bir haftalik xarajatlarni (shartli raqamlar) ro’yxatga yozing va funksiya orqali jami, o’rtacha va eng katta xarajatni hisoblang.
Checklist
- Python o’rnatilgan,
python --versionishlaydi (yoki onlayn muhit tayyor). print()vainput()farqini bilaman;input()natijasiniint()ga aylantiraman.- str, int, float, bool turlarini ajrata olaman.
if/elif/elseda ikki nuqta va 4 probelni unutmayman.for,range()vawhileni ishlata olaman, cheksiz sikldan Ctrl + C bilan chiqaman.- Ro’yxat noldan raqamlanishini bilaman;
append,remove,lenni ishlataman. defbilan funksiya yozib,returnbilan natija qaytaraman.- Xato xabarini pastdan yuqoriga o’qiyman va qator raqamiga qarayman.
Keyingi qadamlar
Asoslarni o’zlashtirgach, lug’atlar (dict), fayllar bilan ishlash, modullar va xatolarni try/except bilan ushlashni o’rganing. Har kuni oz bo’lsa ham kod yozing — kuniga yarim soat muntazam mashq haftada bir marta uzoq o’tirishdan foydaliroq. Kichik loyihalarni (viktorina, ro’yxat, hisoblagich) GitHub’ga joylab, asta-sekin portfolio yig’ing. Keyingi yo’nalish sifatida veb-dasturlash yoki ma’lumotlar bilan ishlashni tanlashingiz mumkin: Python ikkalasida ham asosiy vositalardan biri.
Agar Python va dasturlashni o’qituvchi bilan tizimli o’rganmoqchi bo’lsangiz, assotsiatsiyamizning bepul dasturlash va data-analitika yo’nalishlari hamda boshqa o’quv dasturlari bilan tanishing. Tayyor bo’lsangiz, ariza qoldiring — mutaxassislarimiz siz bilan bog’lanadi.