Ma'lumot turlari
«5» raqami va 5 soni bir xilmi? Odam uchun — ha, Python uchun — yo'q. Bu darsda Python qiymatlarni qanday turlarga ajratishini va nega bu muhimligini bilib olasiz.
Bu darsda
- To'rtta asosiy tur:
int,float,str,bool type()yordamida qiymat turini aniqlash- Nega
"5" + "5"natijasi55bo'ladi - Turlarni bir-biriga aylantirish:
int(),float(),str()
Nega turlar kerak?
Hayotda ham narsalarni turlarga ajratamiz: sonlarni qo'shamiz, ismlarni esa qo'shmaymiz; telefon raqamini yodlaymiz, lekin uni ko'paytirmaymiz. Python ham har bir qiymatning turini biladi va shunga qarab u bilan nima qilish mumkinligini aniqlaydi.
| Tur | Nomi | Misollar | Qachon ishlatiladi |
|---|---|---|---|
int | Butun son | 5, -12, 0, 2026 | Sanash: yosh, soni, yil |
float | Kasr (haqiqiy) son | 3.14, -0.5, 2.0 | O'lchash: vazn, harorat, narx |
str | Satr (matn) | "Salom", "123", "" | Ism, manzil, xabar |
bool | Mantiqiy qiymat | True, False | Ha/yo'q: «to'landimi?», «faolmi?» |
Tur nomlari inglizcha so'zlarning qisqartmasi: int — integer (butun son), float — floating point (suzuvchi nuqta), str — string (satr, ip), bool — mantiq olimi Jorj Bul (George Boole) nomidan.
type() — qiymat turini bilish
type() funksiyasi qiymat qaysi turga tegishli ekanini aytadi:
print(type(25))
print(type(36.6))
print(type("Salom"))
print(type(True))
<class 'int'> <class 'float'> <class 'str'> <class 'bool'>
Butun sonlar: int
Butun sonlar musbat, manfiy yoki nol bo'lishi mumkin. Python'da ular istalgancha katta bo'la oladi. Katta sonlarni o'qish oson bo'lishi uchun raqamlar orasiga pastki chiziq qo'yish mumkin — Python uni e'tiborsiz qoldiradi:
aholi = 37_000_000 print(aholi) print(2 ** 100)
Kasr sonlar: float
Kasr sonlar nuqta bilan yoziladi: 3.14, 0.5, 36.6.
O'zbek tilida kasr son vergul bilan yoziladi (3,14), lekin Python'da faqat nuqta ishlatiladi! Vergul Python uchun «ikkita alohida qiymat» degani. Natijani solishtiring:
print(3.14) print(3,14)
3.14 3 14
Ikkinchi qatorda Python ikkita son — 3 va 14 ni chiqardi. Shuningdek, butun son ham nuqta bilan yozilsa, u float bo'ladi: 2 — int, 2.0 — float.
Satrlar: str
Qo'shtirnoq ichidagi har qanday narsa — satr, hatto u raqamlardan iborat bo'lsa ham. "2026" — son emas, to'rtta belgidan iborat matn. Bo'sh qo'shtirnoq "" esa bo'sh satr.
Satr va sonning farqini mana bu misol yaxshi ko'rsatadi:
print(5 + 5)
print("5" + "5")
print("5" * 3)
10 55 555
Sonlar uchun + — qo'shish. Satrlar uchun esa + — yopishtirish: «5» ning yoniga yana «5» qo'yildi. * esa satrni takrorlaydi.
Satr va sonni qo'shishga urinsangiz, Python xato beradi — u nima qilishni bilmaydi: yopishtiraymi yoki qo'shaymi?
yosh = 17
print("Yoshim: " + yosh)
Mantiqiy qiymatlar: bool
bool turida faqat ikkita qiymat bor: True (rost, ha) va False (yolg'on, yo'q). Ular bosh harf bilan va qo'shtirnoqsiz yoziladi:
tolandi = True
yetkazildi = False
print("To'landi:", tolandi)
print("Yetkazildi:", yetkazildi)
print(10 > 3)
Oxirgi qatorga e'tibor bering: 10 > 3 savoliga Python True deb javob berdi. Mantiqiy qiymatlar shartlar bilan ishlaganda juda muhim bo'ladi — ularni 8-darsda batafsil o'rganamiz.
Turlarni aylantirish
Ko'pincha qiymatni bir turdan boshqasiga o'tkazish kerak bo'ladi. Buning uchun tur nomi bilan bir xil funksiyalar bor:
| Funksiya | Nima qiladi | Misol | Natija |
|---|---|---|---|
int() | Butun songa aylantiradi | int("25") | 25 |
float() | Kasr songa aylantiradi | float("3.5") | 3.5 |
str() | Satrga aylantiradi | str(100) | "100" |
bool() | Mantiqiy qiymatga aylantiradi | bool(0) | False |
yosh_matn = "17"
yosh = int(yosh_matn)
print(yosh + 1)
narx = 15000
print("Narxi: " + str(narx) + " so'm")
print(int(7.9))
print(float(4))
18 Narxi: 15000 so'm 7 4.0
int() kasr sonni yaxlitlamaydi, balki kasr qismini shunchaki tashlab yuboradi: int(7.9) — 7, 8 emas. Yaxlitlash uchun round() funksiyasi bor, u bilan keyingi darsda tanishamiz.
Har qanday matnni ham songa aylantirib bo'lmaydi. int("salom") yoki int("12.5") xato beradi, chunki bu matnlar butun sonni bildirmaydi:
son = int("o'n ikki")
print(son)
Bu aylantirishlar keyingi darslarda juda kerak bo'ladi: foydalanuvchi klaviaturadan kiritgan har qanday ma'lumot Python'ga matn sifatida keladi va uni songa aylantirish kerak.
Mashqlar
1-mashq Turini toping
Har bir qiymatning turini avval o'zingiz taxmin qiling, keyin dasturni ishga tushirib tekshiring: 0, 0.0, "0", False, -7, "True".
print(type(0))
print(type(0.0))
print(type("0"))
print(type(False))
print(type(-7))
print(type("True"))
Javobni ko'rish
int, float, str, bool, int, str. Eng qiziqi — oxirgisi: qo'shtirnoq ichidagi "True" mantiqiy qiymat emas, oddiy matn.
2-mashq G'alati hisob
Quyidagi dastur 4 dona non narxini hisoblashi kerak edi, lekin noto'g'ri natija chiqaryapti. Ishga tushirib ko'ring, sababini toping va tuzating — natija 10000 bo'lishi kerak.
narx = "2500" soni = 4 print(narx * soni)
Ishora
narx qo'shtirnoq ichida yozilgan. Satrni songa ko'paytirsa nima bo'ladi?
Yechimni ko'rish
narx = "2500" soni = 4 print(int(narx) * soni)
"2500" * 4 satrni 4 marta takrorladi: 2500250025002500. int() bilan uni avval songa aylantirish kerak. Yoki boshidanoq qo'shtirnoqsiz yozish mumkin: narx = 2500.
3-mashq Yoshni hisoblang
tugilgan_yil o'zgaruvchisida matn ko'rinishidagi yil bor. Uni songa aylantirib, 2030-yilda bu odam necha yoshda bo'lishini hisoblang va 2030-yilda 25 yoshda bo'ladi deb chiqaring.
tugilgan_yil = "2005"
Yechimni ko'rish
tugilgan_yil = "2005"
yosh = 2030 - int(tugilgan_yil)
print("2030-yilda", yosh, "yoshda bo'ladi")
O'zingizni sinang
type(3.0) nima qaytaradi?
<class 'int'><class 'float'><class 'str'><class 'bool'>
To'g'ri. Nuqta bor ekan — bu float, garchi kasr qismi nol bo'lsa ham.
print("3" + "4") nima chiqaradi?
7"7"34- Xato beradi
To'g'ri. Ikkalasi ham satr, shuning uchun + ularni yopishtiradi.
int(7.8) natijasi nimaga teng?
787.8- Xato beradi
To'g'ri. int() kasr qismini tashlab yuboradi, yaxlitlamaydi.
Quyidagilardan qaysi biri bool turidagi qiymat?
"True"true1.0False
To'g'ri. Mantiqiy qiymatlar bosh harf bilan va qo'shtirnoqsiz yoziladi. "True" — satr, true esa Python uchun noma'lum nom.
print(2,5) nima chiqaradi?
2.52 5252,5
To'g'ri. Vergul ikkita alohida qiymatni ajratadi. Kasr son uchun nuqta kerak: 2.5.
Xulosa
- Asosiy turlar:
int(butun son),float(kasr son),str(matn),bool(True/False). type()qiymatning turini ko'rsatadi.- Kasr sonlar nuqta bilan yoziladi:
3.14. - Qo'shtirnoq ichidagi raqamlar — matn:
"5" + "5"="55". int(),float(),str()turlarni aylantiradi.int()kasr qismini tashlab yuboradi.