input() va print() — f-string, format(), sep, end

~12 daq · Python · Kirish va Asoslar

Muammodan boshlaylik

Siz birinchi dasturingizni yozdingiz — u hisoblaydi, qarorlar qabul qiladi. Lekin natija ko'rinmaydi. Foydalanuvchi ismi so'ralgan emas. Dastur ishlamoqda — lekin kimdir bilan gaplashmaydi.

Har qanday foydali dastur foydalanuvchi bilan muloqot qiladi. input() — foydalanuvchidan ma'lumot olish, print() — unga natijani ko'rsatish. Bular — dastur va insonning "tilmoch"lari.


print() — ekranga chiqarish

print("Salom!")        # Salom!
print(42)              # 42
print(True)            # True

# Bir nechta qiymat — bo'sh joy bilan ajratiladi
print("Ism:", "Jasur", "Yosh:", 25)   # Ism: Jasur Yosh: 25

f-string — zamonaviy va qulay usul

O'zgaruvchi qiymatini matnga joylashtirish uchun. Python 3.6 dan beri mavjud — bugun eng ko'p ishlatiladigan usul:

ism = "Malika"
yosh = 22

print(f"Ismim {ism}, yoshim {yosh}")   # Ismim Malika, yoshim 22

f"..." — f belgisi va figurali qavslar {}. Qavslar ichiga istalgan Python ifodasi yoziladi:

a, b = 15, 4

print(f"{a} + {b} = {a + b}")     # 15 + 4 = 19
print(f"Umumiy: {a + b} so'm")    # Umumiy: 19 so'm

Sonlarni formatlash:

narx = 45750.5

print(f"{narx:.2f}")      # 45750.50  — 2 ta kasr
print(f"{narx:,.0f}")     # 45,751    — minglik ajratuvchi, butun
print(f"{narx:_,.2f}")    # 45_750.50 — pastchiziq ajratuvchi

: dan keyin format spetsifikatori keladi. .2f — 2 ta o'nlik kasr, f float demak.


Nima uchun f-string?

Avval boshqa usullar bor edi. Ularni bilish kerak — eski kodni o'qiydigansiz:

ism = "Jasur"
yosh = 25

# Eski usul — % operatori (Python 2 dan kelgan)
print("Ism: %s, Yosh: %d" % (ism, yosh))

# .format() — f-string dan oldingi usul
print("Ism: {}, Yosh: {}".format(ism, yosh))

# f-string — zamonaviy, qulay, o'qish oson
print(f"Ism: {ism}, Yosh: {yosh}")

f-string tanlanishining sababi: kod ichida to'g'ridan-to'g'ri ifoda yozish mumkin, alohida argument uzatish kerak emas. O'qish ham oson.


sep va end parametrlari

print() ning ikki muhim parametri:

sep — qiymatlar orasidagi ajratuvchi (standart: bo'sh joy):

print("2024", "12", "31", sep="-")    # 2024-12-31
print("a", "b", "c", sep=", ")        # a, b, c
print("a", "b", "c", sep="")          # abc

end — qator oxirida nima (standart: \n — yangi qator):

print("Yuklanmoqda", end="")
print("...")
# Yuklanmoqda...  — bir qatorda chiqadi

print(1, end=" | ")
print(2, end=" | ")
print(3)
# 1 | 2 | 3

input() — foydalanuvchidan ma'lumot olish

ism = input("Ismingizni kiriting: ")
print(f"Salom, {ism}!")

Muhim: input() doim str qaytaradi — hatto raqam kiritsangiz ham:

yosh = input("Yoshingiz: ")
print(type(yosh))   # <class 'str'> — "25" emas, 25

# Hisoblash uchun aylantirish kerak:
yosh_son = int(yosh)
print(f"10 yildan keyin {yosh_son + 10} yoshda bo'lasiz")

Bir qatorda aylantirish:

yosh = int(input("Yoshingiz: "))
narx = float(input("Narx: "))

Amaliy misol

import math

r = float(input("Doira radiusi (sm): "))

yuza = math.pi * r ** 2
atrof = 2 * math.pi * r

print(f"\nRadius:  {r} sm")
print(f"Yuza:    {yuza:.2f} sm²")
print(f"Atrof:   {atrof:.2f} sm")
Doira radiusi (sm): 5

Radius:  5.0 sm
Yuza:    78.54 sm²
Atrof:   31.42 sm

Maxsus belgilar

print("Birinchi\nIkkinchi")   # \n — yangi qator
print("Ism:\tJasur")          # \t — tab
print("U \"salom\" dedi")     # \" — tirnoq ichida tirnoq
print(r"C:\Users\Ali")        # r"..." — raw string, \ ni oddiy belgi ko'radi

Tez-tez uchraydigan xatolar

input() qaytargan qiymatni aylantirmasdan hisoblash:

a = input("Birinchi son: ")   # "10" — matn
b = input("Ikkinchi son: ")   # "20" — matn

print(a + b)    # ❌ "1020" — matn birlashtirish!

# ✅
a = int(input("Birinchi son: "))
b = int(input("Ikkinchi son: "))
print(a + b)    # 30

Harf kiritilganda int() xato berishi:

# Foydalanuvchi "yigirma" yozsa:
yosh = int(input("Yoshingiz: "))   # ❌ ValueError

Bunday holatlar uchun keyingi bo'limlarda try/except o'rganamiz.

f-string da figurali qavslarni unutish:

ism = "Jasur"
print(f"Salom, ism!")      # ❌ "Salom, ism!" — o'zgaruvchi ko'rsatilmadi
print(f"Salom, {ism}!")    # ✅ "Salom, Jasur!"

Xulosa

print() va input() — foydalanuvchi bilan muloqotning asosi.

Eslab qoling:

  • f-string f"..." — {} ichiga ifoda, eng zamonaviy usul
  • :.2f — 2 kasr; :, — minglik ajratuvchi
  • sep= — qiymatlar orasidagi belgi; end= — qator oxiri
  • input() doim str qaytaradi — son kerak bo'lsa int() yoki float()

Keyingi dars

6-dars: Shartlar — if, elif, else, ternary expression