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" natijasi 55 bo'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.

TurNomiMisollarQachon ishlatiladi
intButun son5, -12, 0, 2026Sanash: yosh, soni, yil
floatKasr (haqiqiy) son3.14, -0.5, 2.0O'lchash: vazn, harorat, narx
strSatr (matn)"Salom", "123", ""Ism, manzil, xabar
boolMantiqiy qiymatTrue, FalseHa/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:

FunksiyaNima qiladiMisolNatija
int()Butun songa aylantiradiint("25")25
float()Kasr songa aylantiradifloat("3.5")3.5
str()Satrga aylantiradistr(100)"100"
bool()Mantiqiy qiymatga aylantiradibool(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?

  1. <class 'int'>
  2. <class 'float'>
  3. <class 'str'>
  4. <class 'bool'>

To'g'ri. Nuqta bor ekan — bu float, garchi kasr qismi nol bo'lsa ham.

print("3" + "4") nima chiqaradi?

  1. 7
  2. "7"
  3. 34
  4. Xato beradi

To'g'ri. Ikkalasi ham satr, shuning uchun + ularni yopishtiradi.

int(7.8) natijasi nimaga teng?

  1. 7
  2. 8
  3. 7.8
  4. Xato beradi

To'g'ri. int() kasr qismini tashlab yuboradi, yaxlitlamaydi.

Quyidagilardan qaysi biri bool turidagi qiymat?

  1. "True"
  2. true
  3. 1.0
  4. False

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?

  1. 2.5
  2. 2 5
  3. 25
  4. 2,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.