O'zgaruvchilar

Dasturlar ma'lumotlarni eslab qolishi kerak: foydalanuvchining ismi, o'yindagi ochko, savatchadagi mahsulotlar narxi. Buning uchun o'zgaruvchilar ishlatiladi — dasturlashning eng muhim tushunchalaridan biri.

Bu darsda

  • O'zgaruvchi nima va u nima uchun kerak
  • O'zgaruvchiga qiymat berish va uni o'zgartirish
  • = belgisining dasturlashdagi ma'nosi
  • O'zgaruvchilarni to'g'ri nomlash qoidalari
  • Ko'p uchraydigan xatolar

O'zgaruvchi — nomli quti

Ko'chib o'tayotganda narsalarni qutilarga solib, ustiga yorliq yopishtirasiz: «Idishlar», «Kitoblar», «Qishki kiyimlar». Keyin qaysi qutida nima borligini yorliqqa qarab bilib olasiz.

O'zgaruvchi — xuddi shunday yorliqli quti. Yorliq — o'zgaruvchining nomi, ichidagi narsa esa uning qiymati.

Python'da o'zgaruvchi yaratish juda oddiy — nomini yozasiz, = belgisini qo'yasiz va qiymatini yozasiz:

ism = "Dilnoza"
yosh = 17
print(ism)
print(yosh)

Bu yerda ikkita o'zgaruvchi yaratdik: ism nomli qutiga "Dilnoza" matnini, yosh nomli qutiga esa 17 sonini soldik. Keyin print() ga o'zgaruvchi nomini berdik va Python uning ichidagi qiymatni chiqardi.

print(ism) va print("ism") — butunlay boshqa narsalar! Birinchisi o'zgaruvchi ichidagi qiymatni (Dilnoza) chiqaradi, ikkinchisi esa shunchaki «ism» so'zini chiqaradi. Qo'shtirnoqlar ma'noni o'zgartiradi.

= — «teng» emas, «qiymat ber»

Matematikada = «teng» degani. Dasturlashda esa u boshqacha ishlaydi: o'ng tomondagi qiymatni chap tomondagi nomga beradi. Bu amal o'zlashtirish deyiladi.

yosh = 17 ni «yosh 17 ga teng» emas, «yoshga 17 ni ber» yoki «yosh qutisiga 17 ni sol» deb o'qing. Shuning uchun 17 = yosh deb yozish xato bo'ladi — songa nom berib bo'lmaydi.

O'zgaruvchilardan foydalanish

O'zgaruvchini qiymat kerak bo'lgan istalgan joyda ishlatish mumkin:

ism = "Dilnoza"
shahar = "Buxoro"
print("Salom,", ism)
print(ism, shahar, "shahrida yashaydi.")
print("Xayr,", ism)

Endi ismni bitta joyda — birinchi qatorda — o'zgartirsangiz, u dasturning hamma joyida o'zgaradi. O'zgaruvchilarning asosiy foydasi ham shunda: qiymat bir marta yoziladi, ko'p marta ishlatiladi.

Qiymatni o'zgartirish

O'zgaruvchi shuning uchun «o'zgaruvchi» deyiladi: uning qiymatini istalgan paytda almashtirish mumkin. Yangi qiymat berilganda, eskisi butunlay o'chib ketadi:

ob_havo = "quyoshli"
print("Ertalab:", ob_havo)

ob_havo = "yomg'irli"
print("Kechqurun:", ob_havo)
Ertalab: quyoshli
Kechqurun: yomg'irli

O'zgaruvchining o'zidan foydalanib yangilash

Dasturlashda juda ko'p uchraydigan holat — o'zgaruvchining yangi qiymatini uning eski qiymatidan hisoblash:

ochko = 10
print("Boshida:", ochko)

ochko = ochko + 5
print("Bonusdan keyin:", ochko)
Boshida: 10
Bonusdan keyin: 15

ochko = ochko + 5 matematik jihatdan mantiqsiz ko'rinadi, lekin dasturlashda hammasi to'g'ri. Python avval o'ng tomonni hisoblaydi: ochko ichida 10 bor, 10 + 5 = 15. Keyin natijani chap tomondagi ochko qutisiga soladi.

O'zgaruvchilarni nomlash qoidalari

Nom tanlashda Python'ning qat'iy qoidalari bor:

O'zbek tilidagi nomlar uchun muhim! Apostrof ' nomda ishlatilmaydi: o'quvchi, to'g'ri_javob, bog' — xato nomlar. «O'» va «g'» harflarini apostrofsiz yozing: oquvchi, togri_javob, bog.

NomTo'g'rimi?Izoh
yoshHaOddiy, tushunarli nom
talaba_soniHaSo'zlar pastki chiziq bilan ajratilgan
narx2HaRaqam nomning oxirida — mumkin
2narxYo'qRaqam bilan boshlanyapti
mening ismimYo'qBo'sh joy bor
o'quvchiYo'qApostrof bor — oquvchi deb yozing
forYo'qPython'ning maxsus so'zi
narx-chegirmaYo'qChiziqcha ayirish belgisi deb tushuniladi

Yaxshi nom — yarim hujjat

Qoidalardan tashqari, nomlar ma'noli bo'lishi kerak. Quyidagi ikki dasturni solishtiring — ikkalasi ham bir xil ishni qiladi:

a = 4000
b = 3
c = a * b
non_narxi = 4000
soni = 3
jami_narx = non_narxi * soni

Ikkinchisini izohsiz ham tushunish mumkin. Python'da nomlar odatda kichik harflar bilan yozilib, so'zlar pastki chiziq bilan ajratiladi: jami_narx, foydalanuvchi_ismi. Bu uslub snake_case («ilon uslubi») deb ataladi.

Amaliy misol: do'kondagi xarid

non_narxi = 4000
non_soni = 3
sut_narxi = 12000

jami = non_narxi * non_soni + sut_narxi
print("Non:", non_narxi * non_soni, "so'm")
print("Sut:", sut_narxi, "so'm")
print("Jami:", jami, "so'm")
Non: 12000 so'm
Sut: 12000 so'm
Jami: 24000 so'm

Narxlar o'zgarsa, faqat yuqoridagi qiymatlarni almashtirish kifoya — qolgan hisob-kitob o'zi to'g'rilanadi. Sinab ko'ring: nonni 5000 so'm qiling.

Bir qatorda bir nechta o'zgaruvchi

Python bir qatorda bir nechta o'zgaruvchiga qiymat berishga imkon beradi:

ism, familiya, yosh = "Jasur", "Rahimov", 20
print(ism, familiya, yosh)

x = y = 0
print(x, y)

Shu usul bilan ikki o'zgaruvchining qiymatini bitta qatorda almashtirish ham mumkin:

a = 5
b = 10
a, b = b, a
print("a =", a)
print("b =", b)
a = 10
b = 5

Ko'p uchraydigan xatolar

1. Qiymat berilmagan o'zgaruvchidan foydalanish. Python o'zgaruvchini faqat unga qiymat berilgandan keyin taniydi:

print(mehmon)
mehmon = "Sardor"

Bu yerda NameError chiqadi, chunki 1-qator bajarilayotganda mehmon hali yaratilmagan. Qatorlar o'rnini almashtirsangiz, xato yo'qoladi.

2. Nomni xato yozish. talaba_soni deb yaratib, keyin talabalar_soni deb ishlatsangiz, Python ularni boshqa-boshqa nom deb biladi va yana NameError beradi.

Mashqlar

1-mashq Anketa

ism, yosh va shahar o'zgaruvchilarini yarating va ularni ishlatib, quyidagiga o'xshash gapni chiqaring: Mening ismim Kamola, men 19 yoshdaman va Namanganda yashayman.

ism = "Kamola"
# qolgan o'zgaruvchilarni yarating va gapni chiqaring
Yechimni ko'rish
ism = "Kamola"
yosh = 19
shahar = "Namangan"
print("Mening ismim", ism + ",", "men", yosh, "yoshdaman va", shahar + "da yashayman.")

Bu yerda ism + "," matnlarni birlashtiradi, shunda vergul ismga yopishib turadi. Matnlarni birlashtirishni 6-darsda batafsil o'rganamiz.

2-mashq Qiymatlarni almashtiring

chap va ong o'zgaruvchilari qiymatlarini o'rnini almashtiring, shunda dastur sut non chiqarsin. Mavjud qatorlarni o'zgartirmang — faqat o'rtaga kod qo'shing.

chap = "non"
ong = "sut"
# shu yerga kod yozing

print(chap, ong)
Yechimni ko'rish
chap = "non"
ong = "sut"
chap, ong = ong, chap

print(chap, ong)

3-mashq Yillik ijara

Kvartira ijarasi oyiga 2 500 000 so'm. oylik o'zgaruvchisini yarating va bir yillik to'lovni hisoblab, Yillik to'lov: 30000000 ko'rinishida chiqaring.

oylik = 2500000
Yechimni ko'rish
oylik = 2500000
yillik = oylik * 12
print("Yillik to'lov:", yillik)

O'zingizni sinang

Qaysi biri to'g'ri o'zgaruvchi nomi?

  1. 2ism
  2. o'quvchi
  3. talaba_soni
  4. mening ismim

To'g'ri. Qolganlarida raqam bilan boshlanish, apostrof yoki bo'sh joy bor.

Quyidagi kod nima chiqaradi?

x = 5
x = x + 3
print(x)
  1. 5
  2. 8
  3. x + 3
  4. Xato beradi

To'g'ri. Avval o'ng tomon hisoblanadi: 5 + 3 = 8. Keyin 8 yana x ga yoziladi.

Dasturlashda = belgisi nimani bildiradi?

  1. O'ng tomondagi qiymatni chap tomondagi nomga berishni
  2. Ikki qiymat tengligini tekshirishni
  3. Qo'shishni
  4. Dastur oxirini

To'g'ri. Tenglikni tekshirish uchun boshqa belgi — == ishlatiladi. U bilan 8-darsda tanishamiz.

Quyidagi kod nima chiqaradi?

a = 5
b = a
a = 10
print(b)
  1. 10
  2. 5
  3. 15
  4. a

To'g'ri. b = a qatorida b ga o'sha paytdagi qiymat — 5 berildi. Keyin a o'zgargani b ga ta'sir qilmaydi.

Xulosa

  • O'zgaruvchi — qiymat saqlanadigan nomli «quti»: yosh = 17.
  • = — o'ng tomondagi qiymatni chap tomondagi nomga beradi. Avval o'ng tomon hisoblanadi.
  • Yangi qiymat berilsa, eskisi o'chib ketadi.
  • Nomlar lotin harflari, raqamlar va _ dan iborat bo'ladi, raqam bilan boshlanmaydi, bo'sh joy va apostrof bo'lmaydi.
  • Ma'noli nomlar tanlang: jami_narx — yaxshi, x1 — yomon.