Bu bo'limda dasturning "xotirasi" — o'zgaruvchilar hamda ikkita eng ko'p ishlatiladigan ma'lumot turi o'rganildi: matnlar (str) va sonlar (int, float).
O'zgaruvchilar
O'zgaruvchi — qiymatga qo'yilgan nom. = belgisi matematikadagi "teng" emas, "qiymat berish" amali: o'ngdagi qiymat hisoblanadi va chapdagi nomga bog'lanadi.
ism = "Dilnoza"
yosh = 24
yosh = yosh + 1 # eski qiymat o'qildi, 1 qo'shildi, ustiga yozildi
print(ism, yosh)
Natija:
Dilnoza 25
yosh = yosh + 1 qatori matematikada ma'nosiz, dasturlashda esa eng ko'p ishlatiladigan amal: "yoshning joriy qiymatini olib, bittaga oshirib, qaytadan yoshga yoz". Qisqa yozuvi: yosh += 1.
Nomlash qoidalari:
| To'g'ri | Noto'g'ri | Sababi |
|---|---|---|
ism_2 |
2ism |
Raqam bilan boshlanmaydi |
mening_ismim |
mening ismim |
Bo'sh joy taqiqlangan |
narx_som |
narx-som |
- ayirish deb tushuniladi |
talaba |
class |
Kalit so'zlar band |
Yaxshi amaliyot: nom qiymatning ma'nosini aytsin — x emas, narx; d emas, kunlar. Kod kompyuterga emas, birinchi navbatda odamga o'qishli bo'lishi kerak.
Tipik xato — nomni keyin boshqacha yozish:
Ism = "Aziz"
print(ism)
Natija:
NameError: name 'ism' is not defined. Did you mean: 'Ism'?
Katta-kichik harf farqlanadi: Ism va ism — ikki xil nom. Python ko'pincha "Did you mean" bilan yechimni ham taklif qiladi — xabarni oxirigacha o'qing.
Matnlar (str)
Matn — qo'shtirnoq ichidagi belgilar ketma-ketligi. Har bir belgining o'z tartib raqami (indeksi) bor va sanoq 0 dan boshlanadi:
kurs = "Python asoslari"
print(len(kurs)) # uzunligi (bo'sh joy ham belgi!)
print(kurs[0]) # birinchi belgi
print(kurs[-1]) # oxirgi belgi (manfiy indeks oxiridan sanaydi)
Natija:
15
P
i
Eng kerakli matn metodlari:
print(kurs.upper()) # katta harflarga
print(kurs.lower()) # kichik harflarga
print(kurs.title()) # Har So'z Bosh Harf Bilan
print(kurs.replace("Python", "JavaScript"))
Natija:
PYTHON ASOSLARI
python asoslari
Python Asoslari
JavaScript asoslari
Muhim: metodlar asl matnni o'zgartirmaydi — yangi matn qaytaradi. kurs hali ham "Python asoslari"ligicha turibdi; natija kerak bo'lsa, o'zgaruvchiga oling: katta = kurs.upper().
f-string — matn ichiga qiymat joylash
Matn va o'zgaruvchilarni birga chiqarishning zamonaviy usuli: matn oldiga f qo'yiladi, qiymat {} ichida yoziladi. Qavslar ichida hisob ham ishlaydi:
ism = "Aziz"
yosh = 30
print(f"{ism} {yosh} yoshda; 5 yildan keyin {yosh + 5} bo'ladi")
Natija:
Aziz 30 yoshda; 5 yildan keyin 35 bo'ladi
f-string'gacha matnlar + bilan ulanardi — "Salom, " + ism + "!" — ishlaydi, lekin son qatnashsa avval str() bilan o'girish kerak bo'ladi. f-string bu tashvishni butunlay olib tashlaydi.
Sonlar: int va float
int— butun son:42,-7,0float— o'nlik kasr:3.14,-0.5. Kasr nuqta bilan yoziladi, vergul bilan emas.
Turni type() bilan aniqlash va o'zaro o'girish:
print(type(42))
print(type(3.14))
print(int("250") + 50) # matndan songa
print(float(7)) # butundan kasrga
print(int(3.99)) # kasrdan butunga: YAXLITLAMAYDI, kesadi!
print(round(3.567, 2)) # yaxlitlash kerak bo'lsa — round
Natija:
<class 'int'>
<class 'float'>
300
7.0
3
3.57
Matn va son — har xil dunyolar
Eng ko'p uchraydigan boshlang'ich xato — "5" (matn) bilan 5 (son)ni aralashtirish:
print("5" + 5)
Natija:
TypeError: can only concatenate str (not "int") to str
+ matnlar uchun "ulash", sonlar uchun "qo'shish" — lekin aralash holda Python nimani xohlayotganingizni bilmaydi. Yechim — turni aniq keltirish: int("5") + 5 → 10, yoki "5" + str(5) → "55".
Bu farq input() bilan ishlaganda hal qiluvchi bo'ladi (keyingi bo'limlarda): foydalanuvchi kiritgan qiymat har doim matn, son sifatida ishlatishdan oldin int() yoki float() bilan o'giriladi.
Eslab qoling
=— qiymat berish;yosh += 1— joriy qiymatni oshirish.- Nomlar ma'noli bo'lsin; katta-kichik harf farqlanadi.
- Indekslar 0 dan;
len()— uzunlik; metodlar yangi matn qaytaradi. - f-string —
f"{o'zgaruvchi}"— matn yig'ishning asosiy usuli. int(x),float(x),str(x)— turlar orasida o'girish;int()kasrni kesadi,round()yaxlitlaydi.- Matn + son =
TypeError; avval bir turga keltiring.
Amaliyot
ism,yosh,shaharo'zgaruvchilarini yaratib, bitta f-string bilan to'liq gap chiqaring.matn = "dasturlash"uchun: uzunligini, bosh harfli (title) variantini, birinchi va oxirgi belgisini chiqaring.- Radiusi 5 bo'lgan doira yuzini hisoblang (
3.14159 * r ** 2), natijaniroundbilan 2 xonagacha yaxlitlang va turinitype()bilan tekshiring. "19"matnini songa o'girib 1 qo'shing; natijani f-string ichida "Kelasi yil ... yoshga to'lasiz" gapida ishlating.narx = 125000vasoni = 3uchun umumiy summani hisoblab,f"Jami: {narx * soni} so'm"ko'rinishida chiqaring.- Ataylab
"5" + 5yozib xatoni o'qing; keyin ikkala usulda (songa o'girib, matnga o'girib) tuzating va natijalar farqini tushuntiring.
Bo'lim testi shu mavzularni qamrab oladi.