4-bo‘lim

O'zgaruvchilar va ma'lumot turlari

O'zgaruvchi nima, xotirada qanday saqlanadi, Python'dagi asosiy ma'lumot turlari va ular orasida o'zaro o'tkazish (type casting).

🕑 18 daqiqa o‘qish 📄 591 so‘z 👁 10 marta ko‘rilgan
Ushbu bo‘lim mundarijasi
  1. O'zgaruvchi yaratish
  2. Asosiy ma'lumot turlari
  3. Sonlar bilan ishlash
  4. int - butun sonlar
  5. float - o'nlik sonlar
  6. Matn (str)
  7. bool - mantiqiy qiymat
  8. None - qiymat yo'qligi
  9. Turlarni o'zgartirish (type casting)
  10. Bir vaqtda bir nechta qiymat berish
  11. f-satrlar bilan chiroyli chiqarish
  12. Amaliy misol: do'kon cheki
  13. Xulosa

O'zgaruvchi - dasturlashning eng asosiy tushunchasi. Uni nom yozilgan quti deb tasavvur qiling: quti ichida qiymat turadi, siz esa unga nom orqali murojaat qilasiz.

O'zgaruvchi yaratish #

Python'da o'zgaruvchi e'lon qilish uchun alohida buyruq yo'q - shunchaki qiymat berasiz:

Python
ism = "Husanboy"        # matn
yosh = 25              # butun son
boy = 1.68             # o'nlik son
talabami = True        # mantiqiy qiymat

print(ism, yosh, boy, talabami)
Natija
Husanboy 25 1.68 True
Kod Xotira ism = "Husanboy" yosh = 22 nom: ism "Husanboy" (str) nom: yosh 22 (int)
Har bir o'zgaruvchi xotiradagi qiymatga ishora qiladi

Asosiy ma'lumot turlari #

TurNomiMisolNima uchun kerak
intButun son22, -5, 1000000Yosh, miqdor, hisoblagich
floatO'nlik son1.68, -0.5, 3.14Narx, o'rtacha, o'lchov
strMatn"Salom", 'Toshkent'Ism, manzil, xabar
boolMantiqiyTrue, FalseHa/yo'q holatlar
listRo'yxat[1, 2, 3]Tartiblangan to'plam
tupleKortej(1, 2, 3)O'zgarmas to'plam
dictLug'at{"ism": "Ali"}Kalit-qiymat juftliklari
setTo'plam{1, 2, 3}Takrorlanmaydigan elementlar
NoneTypeBo'shlikNone"Qiymat yo'q" holati

Turni tekshirish uchun type() funksiyasi ishlatiladi:

Python
print(type(25))
print(type(1.68))
print(type("Husanboy"))
print(type(True))
print(type([1, 2, 3]))
print(type(None))
Natija
<class 'int'>
<class 'float'>
<class 'str'>
<class 'bool'>
<class 'list'>
<class 'NoneType'>

Sonlar bilan ishlash #

int - butun sonlar #

Python
talabalar_soni = 30
harorat = -12
aholi = 36_000_000        # pastki chiziq o'qishni osonlashtiradi

print(aholi)
Natija
36000000
Python'da son chegarasi yo'q

Ko'p tillarda butun son 64 bitga sig'ishi kerak. Python'da esa xotira yetguncha istalgan katta son bilan ishlash mumkin:

Python
print(2 ** 200)
Natija
1606938044258990275541962092341162602522202993782792835301376

float - o'nlik sonlar #

Python
narx = 15500.75
foiz = 0.12
tezlik = 3.5e8          # 3.5 * 10^8 ilmiy shakl

print(narx, foiz, tezlik)
Natija
15500.75 0.12 350000000.0
Kasr sonlar aniq emas
Python
print(0.1 + 0.2)
Natija
0.30000000000000004

Bu Python'ning kamchiligi emas - barcha tillarda kasr sonlar ikkilik sistemada taxminiy saqlanadi. Pul bilan ishlaganda decimal modulidan foydalaning:

Python
from decimal import Decimal
print(Decimal("0.1") + Decimal("0.2"))
Natija
0.3

Matn (str) #

Matn bir yoki qo'shtirnoq ichida yoziladi - farqi yo'q:

Python
shahar = "Toshkent"
mamlakat = 'O\'zbekiston'

# Uch qo'shtirnoq - ko'p satrli matn uchun
manzil = """Toshkent shahri,
Chilonzor tumani,
12-uy"""

print(manzil)
Natija
Toshkent shahri,
Chilonzor tumani,
12-uy

Matnlarni birlashtirish va takrorlash:

Python
ism = "Husanboy"
familiya = "Qodirov"

toliq_ism = ism + " " + familiya
print(toliq_ism)
print("-" * 30)
print(len(toliq_ism), "ta belgi")
Natija
Husanboy Qodirov
------------------------------
16 ta belgi

bool - mantiqiy qiymat #

Faqat ikkita qiymatga ega: True va False (bosh harf bilan!).

Python
imtihon_topshirildi = True
qarzi_bor = False

print(10 > 5)
print(10 == 5)
print("a" in "salom")
Natija
True
False
True
Qaysi qiymatlar "yolg'on" hisoblanadi?

Python har qanday qiymatni mantiqiy kontekstda tekshira oladi. Quyidagilar False deb qaraladi:

QiymatTuri
Falsebool
0, 0.0son
""bo'sh matn
[], (), {}bo'sh to'plamlar
Nonebo'shlik

Qolgan hamma narsa True.

Python
ism = ""
if ism:
    print("Ism kiritilgan")
else:
    print("Ism bo'sh!")
Natija
Ism bo'sh!

None - qiymat yo'qligi #

None "hali qiymat berilmagan" degan ma'noni bildiradi:

Python
natija = None

print(natija)
print(natija is None)
Natija
None
True
None ni == bilan solishtirmang

natija == None emas, natija is None deb yozing. is operatori xotiradagi aynan bir xil obyektni tekshiradi va bu None uchun to'g'ri usul.

Turlarni o'zgartirish (type casting) #

Python
# Matndan songa
yosh_matn = "22"
yosh_son = int(yosh_matn)
print(yosh_son + 1)

# Sondan matnga
narx = 15000
xabar = "Narxi: " + str(narx) + " so'm"
print(xabar)

# Butundan kasrga va aksincha
print(float(7))        # 7.0
print(int(7.9))        # 7  -- kasr qismi tashlanadi, yaxlitlanmaydi!
print(round(7.9))      # 8  -- yaxlitlash uchun round()
Natija
23
Narxi: 15000 so'm
7.0
7
8
FunksiyaVazifasiMisolNatija
int(x)Butun songaint("42")42
float(x)Kasr songafloat("3.14")3.14
str(x)Matngastr(99)"99"
bool(x)Mantiqiygabool(0)False
list(x)Ro'yxatgalist("abc")['a','b','c']
O'zgartirish har doim ham ishlamaydi
Python
son = int("yigirma")
Natija
ValueError: invalid literal for int() with base 10: 'yigirma'

14-bo'limda bunday xatolarni qanday xavfsiz ushlashni o'rganamiz.

Bir vaqtda bir nechta qiymat berish #

Python
# Bir nechta o'zgaruvchi bir satrda
ism, yosh, shahar = "Sardor", 25, "Buxoro"
print(ism, yosh, shahar)

# Bir xil qiymat
a = b = c = 0
print(a, b, c)

# Qiymatlarni almashtirish - Python'da juda oson
birinchi = 10
ikkinchi = 20
birinchi, ikkinchi = ikkinchi, birinchi
print(birinchi, ikkinchi)
Natija
Sardor 25 Buxoro
0 0 0
20 10

f-satrlar bilan chiroyli chiqarish #

Bu Python'ning eng qulay imkoniyatlaridan biri:

Python
ism = "Husanboy"
yosh = 25
ortacha_baho = 4.6789

print(f"Salom, {ism}! Sizga {yosh} yosh.")
print(f"Kelasi yili {yosh + 1} yoshga to'lasiz.")
print(f"O'rtacha bahoyingiz: {ortacha_baho:.2f}")
print(f"Ism uzunligi: {len(ism)}")
Natija
Salom, Husanboy! Sizga 25 yosh.
Kelasi yili 26 yoshga to'lasiz.
O'rtacha bahoyingiz: 4.68
Ism uzunligi: 8

Amaliy misol: do'kon cheki #

Python
# ============================================
# Oddiy chek generatori
# ============================================

MAHSULOT_NOMI = "Klaviatura"
NARX = 185000
SONI = 2
QQS_FOIZI = 0.12

oraliq_summa = NARX * SONI
qqs = oraliq_summa * QQS_FOIZI
jami = oraliq_summa + qqs

print("=" * 36)
print(f"{'CHEK':^36}")
print("=" * 36)
print(f"{MAHSULOT_NOMI:<20}{SONI:>3} x {NARX:>9,}")
print("-" * 36)
print(f"{'Oraliq summa:':<24}{oraliq_summa:>11,}")
print(f"{'QQS (12%):':<24}{qqs:>11,.0f}")
print(f"{'JAMI:':<24}{jami:>11,.0f}")
print("=" * 36)
Natija
====================================
                CHEK                
====================================
Klaviatura            2 x   185,000
------------------------------------
Oraliq summa:              370,000
QQS (12%):                  44,400
JAMI:                      414,400
====================================
Amaliy topshiriq

tana_massasi.py dasturini yozing:

  1. Foydalanuvchidan bo'y (metrda, float) va vazn (kg, float) so'rang.
  2. Tana massasi indeksini hisoblang: vazn / (boy ** 2).
  3. Natijani f-satr yordamida ikkita kasr xonagacha chiqaring.
  4. type() bilan har bir o'zgaruvchining turini ham ko'rsating.

Xulosa #

  • O'zgaruvchi e'lon qilish uchun alohida buyruq kerak emas: nom = qiymat.
  • Asosiy turlar: int, float, str, bool, None va to'plamlar.
  • type() turni ko'rsatadi, int()/str()/float() turni o'zgartiradi.
  • Kasr sonlar taxminiy saqlanadi - pul uchun decimal ishlating.
  • f"..." satrlari qiymatlarni matnga qo'shishning eng qulay usuli.

Keyingi bo'limda operatorlar - arifmetik, taqqoslash va mantiqiy amallarni ko'rib chiqamiz.

Xatolik topdingizmi?

Imlo xatosi, ishlamaydigan kod yoki noto‘g‘ri ma‘lumotni ko‘rsangiz - bizga xabar bering. Har bir xabar administrator tomonidan ko‘rib chiqiladi.