Asosiy qismga o'tish

O'zgaruvchilar, print() va input()

1-bob 28 kod bloki 1749 so'z

Bu bobda

  • print() bilan ekranga yozishni
  • izoh (comment) yozishni
  • o'zgaruvchi nima ekanini va uni to'g'ri nomlashni
  • input() bilan foydalanuvchidan ma'lumot olishni
  • type() bilan qiymat turini bilishni

print(): birinchi dastur

Har bir dasturchi birinchi bo'lib ekranga biror narsa yozadi. Pythonda buning uchun print() funksiyasi bor. Qavs ichiga nima yozsangiz, o'sha ekranga chiqadi.

python2 qator
print("Salom, dunyo!")
print("Men Python o'rganyapman")
Natija
Salom, dunyo!
Men Python o'rganyapman

Matn qo'shtirnoq "..." yoki bittalik tirnoq '...' ichida yoziladi. Ikkalasi bir xil ishlaydi. Agar matnning ichida apostrof bo'lsa (o'zbek tilida juda ko'p: o'rganyapman, bog'), tashqarisiga qo'shtirnoq qo'ying:

python2 qator
print("O'zbekiston")
print('Kitob nomi: "Python asoslari"')
Natija
O'zbekiston
Kitob nomi: "Python asoslari"

print() ga bir nechta qiymatni vergul bilan bersangiz, ular orasiga bitta probel qo'yib chiqaradi. Sonlarni qo'shtirnoqsiz yozamiz:

python2 qator
print("Yoshim:", 20)
print(2026, "yil", 10, "oy")
Natija
Yoshim: 20
2026 yil 10 oy

sep va end

sep qiymatlar orasiga nima qo'yishni, end esa satr oxiriga nima qo'yishni belgilaydi. Odatda sep=" " va end="\n" (yangi qator).

python3 qator
print(14, 10, 2026, sep=".")
print("Bir", end=" ")
print("qatorda")
Natija
14.10.2026
Bir qatorda

Izohlar (comment)

# belgisidan keyin yozilgan narsani Python o'qimaydi. Izoh kodni o'qiydigan odam uchun yoziladi: siz uchun, bir oydan keyin, yoki jamoadoshingiz uchun.

python2 qator
# Bu qator ishlamaydi, bu izoh
print("Bu qator ishlaydi")  # qator oxirida ham izoh yozsa bo'ladi
Natija
Bu qator ishlaydi

Eslatma

Yaxshi izoh kod nima uchun shunday yozilganini tushuntiradi. "Bu yerda 2 ga ko'paytiramiz" degan izoh kerak emas, buni kodning o'zi aytib turibdi.

O'zgaruvchi nima?

O'zgaruvchi — qiymatga yopishtirilgan yorliq (label). = belgisi o'ngdagi qiymatni olib, chapdagi nomga bog'laydi. Keyin shu nom orqali qiymatga murojaat qilamiz.

python4 qator
ism = "Abulqosim"
yosh = 23
print(ism)
print(yosh)
Natija
Abulqosim
23

Bu yerda = matematikadagi "teng" emas. Uni "bog'la" deb o'qing: "yosh nomini 23 ga bog'la".

O'zgaruvchining qiymatini istalgan vaqtda o'zgartirish mumkin. Shuning uchun u o'zgaruvchi deyiladi:

python4 qator
ball = 70
print("Oldin:", ball)
ball = 85
print("Keyin:", ball)
Natija
Oldin: 70
Keyin: 85

O'ng tomonda o'zgaruvchining o'zi ham qatnashishi mumkin. Python avval o'ng tomonni hisoblaydi, keyin natijani chapdagi nomga bog'laydi:

python3 qator
hisob = 100
hisob = hisob + 50
print(hisob)
Natija
150

Hayotdan misol

Telefoningizdagi kontakt: "Onam" — yorliq, raqam esa qiymat. Onangiz raqamini almashtirsa, siz yangi kontakt ochmaysiz, "Onam" yorlig'idagi raqamni yangilaysiz. O'zgaruvchi ham xuddi shunday.

Nomlash qoidalari

Python o'zgaruvchi nomlariga qat'iy qoidalar qo'yadi:

Qoida To'g'ri Noto'g'ri
Harf yoki _ bilan boshlanadi ism, _ism, ism2 2ism
Faqat harf, raqam va _ talaba_soni talaba-soni, talaba soni
Kalit so'z bo'lmasin sinf class, if, for
Katta-kichik harf farq qiladi ism, Ism, ISM — uchta har xil o'zgaruvchi

Qoidani buzsangiz, Python dasturni umuman ishga tushirmaydi:

python1 qator
2ism = "Ali"
Xato xabari
SyntaxError: invalid syntax (<kitob>, line 1)
python1 qator
talaba-soni = 25
Xato xabari
SyntaxError: cannot assign to expression here. Maybe you meant '==' instead of '='? (<kitob>, line 1)

Ikkinchi xatoni diqqat bilan o'qing: Python - ni ayirish deb tushundi. talaba - soni — bu hisoblash (expression), hisoblashga esa qiymat berib bo'lmaydi: cannot assign to expression.

Yaxshi nom qanday bo'ladi?

  • Pythonda so'zlar _ bilan ajratiladi: talaba_soni, oylik_maosh. Bu uslub snake_case deyiladi.
  • Nom ma'noli bo'lsin: x emas, narx; a1 emas, birinchi_son.
  • Juda uzun ham bo'lmasin: foydalanuvchining_tug_ilgan_yili emas, tug_yil.

print ni o'zgaruvchi qilib qo'yish

Python o'zining funksiyalari nomini (print, input, type, sum, list) o'zgaruvchiga berishga ruxsat beradi, lekin keyin u funksiya ishlamay qoladi:

python2 qator
print = "salom"
print("Nega ishlamayapti?")
Xato xabari
TypeError: 'str' object is not callable

print endi funksiya emas, oddiy matn. Matnni esa "chaqirib" bo'lmaydi. Jupyterda bunday bo'lsa, yorliqni o'chiring: del print.

python2 qator
del print
print("print yana ishlayapti")
Natija
print yana ishlayapti

NameError: yo'q nom

Agar mavjud bo'lmagan nomga murojaat qilsangiz, Python NameError beradi. Ko'pincha sababi oddiy yozuv xatosi:

python2 qator
xabar = "Darsga xush kelibsiz"
print(xabr)
Xato xabari
NameError: name 'xabr' is not defined

Python aniq aytdi: xabr degan nom aniqlanmagan (not defined). Jupyterda xabar oxirida ko'pincha maslahat ham chiqadi: Did you mean: 'xabar'? Xato xabarini o'qishni odat qiling, u ko'pincha javobni o'zi aytadi.

Bir qatorda bir nechta o'zgaruvchi

Vergul bilan bir nechta nomga bir yo'la qiymat berish mumkin. Chapda nechta nom bo'lsa, o'ngda shuncha qiymat bo'lishi kerak:

python4 qator
a, b, c = "olma", "anor", "behi"
print(a, b, c)
x = y = z = 0
print(x, y, z)
Natija
olma anor behi
0 0 0

Bu usul bilan ikki o'zgaruvchining qiymatini almashtirish juda oson. Boshqa tillarda buning uchun uchinchi o'zgaruvchi kerak bo'ladi:

python4 qator
a = 5
b = 9
a, b = b, a
print("a =", a, "b =", b)
Natija
a = 9 b = 5

Python avval o'ng tomondagi b, a ni, ya'ni 9, 5 ni oladi, keyin ularni a va b ga tarqatadi.

Soni mos kelmasa

python1 qator
a, b = 1, 2, 3
Xato xabari
ValueError: too many values to unpack (expected 2)

f-string: matn ichiga qiymat qo'yish

Matn ichiga o'zgaruvchining qiymatini qo'yish uchun qo'shtirnoq oldiga f harfini yozamiz, o'zgaruvchini esa {} ichiga olamiz. Bu f-string deyiladi:

python3 qator
ism = "Otabek"
yosh = 19
print(f"Mening ismim {ism}, yoshim {yosh} da.")
Natija
Mening ismim Otabek, yoshim 19 da.

{} ichida hisoblash ham yozsa bo'ladi:

python2 qator
yosh = 19
print(f"Besh yildan keyin {yosh + 5} yoshda bo'laman.")
Natija
Besh yildan keyin 24 yoshda bo'laman.

f ni unutish

f bo'lmasa, Python {ism} ni oddiy matn deb chiqaradi:

python2 qator
ism = "Otabek"
print("Salom, {ism}")
Natija
Salom, {ism}

input(): foydalanuvchidan ma'lumot olish

input() dasturni to'xtatib, foydalanuvchi biror narsa yozib Enter bosishini kutadi. Yozilgan matn o'zgaruvchiga tushadi. Qavs ichidagi matn — foydalanuvchiga ko'rsatiladigan savol.

python2 qator
ism = input("Ismingizni kiriting: ")
print("Salom,", ism)
Natija
Ismingizni kiriting: Sarvinoz
Salom, Sarvinoz

Kitobda kiritilgan qiymat savolning yonida ko'rinadi, xuddi Jupyterdagi kabi.

python3 qator
qayerdan = input("Qayerdan: ")
qayerga = input("Qayerga: ")
print(qayerdan, "->", qayerga)
Natija
Qayerdan: Toshkent
Qayerga: Samarqand
Toshkent -> Samarqand

Muhim

input() har doim matn (str) qaytaradi, hatto foydalanuvchi son yozsa ham. Bu juda ko'p xatoga sabab bo'ladi. Keyingi bobda buni qanday tuzatishni ko'ramiz.

type(): bu qanday qiymat?

Har bir qiymatning turi (type) bor. type() uni ko'rsatadi:

python4 qator
print(type("Salom"))
print(type(25))
print(type(3.14))
print(type(True))
Natija
<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>
Tur Ma'nosi Misol
str matn (string) "Salom", '25'
int butun son (integer) 25, -7, 0
float kasr son 3.14, -0.5, 2.0
bool rost yoki yolg'on True, False

Endi input() haqidagi gapni tekshiramiz:

python2 qator
yosh = input("Yoshingiz: ")
print(type(yosh))
Natija
Yoshingiz: 25
<class 'str'>

25 deb yozdik, lekin turi str. Ya'ni Python uchun bu "ikki-besh" degan matn, son emas.

Konstantalar

Dastur davomida o'zgarmasligi kerak bo'lgan qiymatlarni Pythonda KATTA HARF bilan nomlash odat bo'lgan. Python buni taqiqlamaydi, bu dasturchilar orasidagi kelishuv:

python3 qator
MAKSIMAL_BALL = 100
PI = 3.14
print(MAKSIMAL_BALL, PI)
Natija
100 3.14

Kitoblarda

  • Python asoslari (A. Ibragimov): o'zgaruvchilar 8–11-betlar, ma'lumot turlari 16-bet.
  • Python Crash Course (E. Matthes): 2-bob, Variables 16–19-betlar, Multiple Assignment va Constants 28-bet.

Xulosa

  • print() ekranga chiqaradi, # izoh boshlaydi.
  • = qiymatni nomga bog'laydi. Nom harf yoki _ bilan boshlanadi, snake_case da yoziladi.
  • a, b = b, a ikki qiymatni almashtiradi.
  • f"...{nom}..." matn ichiga qiymat qo'yadi.
  • input() har doim str qaytaradi, type() turni ko'rsatadi.
  • Xato xabarini oxirgi qatoridan o'qing: xato turi va sababi o'sha yerda.

Mashqlar

Har bir mashqda yechimni daftardagi %%tekshir katagiga yozing. Qiymatlarni input() bilan oling va natijani print() bilan chiqaring. Savol matni (input("A = ")) yozmasangiz ham bo'ladi, tekshiruvchi faqat chiqishdagi qiymatlarga qaraydi.

Begin22

A va B o'zgaruvchilar berilgan. Ularning qiymatlarini almashtiring va avval yangi A ni, keyin yangi B ni chiqaring.

KirishKutilgan natija
3, 77 3
10, -2-2 10
5, 55 5
Yechimni ko'rish
python4 qator
a = input()
b = input()
a, b = b, a
print(a, b)
Begin23

A, B, C o'zgaruvchilar berilgan. A ning qiymatini B ga, B nikini C ga, C nikini A ga o'tkazing. Yangi A, B, C ni chiqaring.

KirishKutilgan natija
1, 2, 33 1 2
7, 8, 99 7 8
0, -1, 55 0 -1
Yechimni ko'rish
python5 qator
a = input()
b = input()
c = input()
a, b, c = c, a, b
print(a, b, c)
Begin24

A, B, C o'zgaruvchilar berilgan. A ning qiymatini C ga, C nikini B ga, B nikini A ga o'tkazing. Yangi A, B, C ni chiqaring.

KirishKutilgan natija
1, 2, 32 3 1
7, 8, 98 9 7
0, -1, 5-1 5 0
Yechimni ko'rish
python5 qator
a = input()
b = input()
c = input()
a, b, c = b, c, a
print(a, b, c)
1.1

Foydalanuvchidan ism va shaharni so'rang. So'ng Ism: <ism>, shahar: <shahar> ko'rinishida chiqaring.

KirishKutilgan natija
Javohir, BuxoroIsm: Javohir, shahar: Buxoro
Sarvinoz, ToshkentIsm: Sarvinoz, shahar: Toshkent
Yechimni ko'rish
python3 qator
ism = input()
shahar = input()
print(f"Ism: {ism}, shahar: {shahar}")

Bu bobni bepul o'qidingiz.

Kitob o'rgatadi, lekin sizning kodingiz nega ishlamaganini ayta olmaydi. Kursda uy vazifangiz tekshiriladi.

Telegramda yozish Narxlar