Asosiy mazmunga o'tish

4-dars: Kirish va chiqish

1-blokMashina buyruqni qanday tushunadi1–4 darslar

Bu darsdan keyin siz

  • input() bilan foydalanuvchidan ma’lumot olasiz
  • input() satr qaytarishini eslab, kerakli joyda int() yoki float() qo’yasiz
  • print() ni bir nechta qiymat va f-string bilan boshqarasiz

input() programmani to’xtatib, foydalanuvchi Enter bosishini kutadi. Qavs ichiga yozilgan matn ko’rsatma bo’lib chiqadi: ism = input("Ismingiz: ").

kirishinput

Programmaga tashqaridan tushadigan ma’lumot: klaviatura, fayl yoki tarmoqdan. CF 1-darsdagi IPOS tsikli ning birinchi bosqichi.

input() har doim str qaytaradi. Foydalanuvchi 14 yozsa ham, programma "14" oladi. Shu bitta jumlani esdan chiqarish boshlovchilarning eng ko’p xatosi.

yosh.py
yosh = input("Yoshingiz: ")print(type(yosh))        # <class 'str'>print(yosh + 1)          # TypeError!# Tuzatilgan variant:yosh = int(input("Yoshingiz: "))print(yosh + 1)          # ishlaydi

print() ga vergul bilan bir nechta qiymat berish mumkin — orasiga bo’shliq qo’yadi: print("Salom,", ism). Aniqroq boshqarish uchun f-string ishlatiladi: qo’shtirnoq oldiga f qo’yiladi, o’zgaruvchi {} ichiga yoziladi.

salom.py
ism = "Aziza"yosh = 15print(f"{ism} {yosh} yoshda")print(f"Kelasi yil: {yosh + 1}")

f-string ichida hisoblash ham mumkin, shuning uchun u satr ulashdan qulayroq va kamroq xato beradi.

Avval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.

Bashorat qiling
# Foydalanuvchi 5 va 3 kiritdia = input()b = input()print(a + b)
Javobni ko'rish
53

Ikkalasi ham satr, shuning uchun + qo'shish emas, ulash amali bo'ldi: 5 va 3 dan 53 chiqdi. Son kerak bo'lsa: int(a) + int(b) — natija 8.

Avval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.

Bashorat qiling
# Foydalanuvchi 3 kiritdison = int(input())print(son * "ha")print(son * 2)
Javobni ko'rish
hahaha
6

Son bilan satrni ko'paytirish — takrorlash: uch marta «ha». Son bilan sonni ko'paytirish esa oddiy arifmetika: 6. Bir xil belgi, tur o'zgarishi bilan ma'nosi ham o'zgardi.

Olti kichik kod, har birida natijani oldin tanlaysiz. Hammasi bitta qoida atrofida aylanadi — input() nima qaytaradi.

Bashorat qil

Har kod uchun natijani tanlang, keyin tekshiring. Klaviatura: 1-2-3 tanlash, Enter tekshirish.

Bu simulyatorda olti kichik kod bor. Har birida siz natijani uch variantdan tanlaysiz, keyin haqiqiy javob va izoh ochiladi. Hammasi bitta qoida atrofida:input() har doim satr qaytaradi.

JavaScript'siz sinash: input() bilan olingan qiymatni songa aylantirmasdan ishlatsangiz nima bo'lishini daftarga yozib chiqing, keyin VS Code'da tekshiring.

1/6To'g'ri: 0

Bu kod ataylab buzuq — xatoni toping

Buzuq kod
son = input("Son kiriting: ")# foydalanuvchi "besh" deb yozdison = int(son)print(son * 2)

Python shunday javob beradi:

Traceback (most recent call last):
File "son.py", line 3, in <module>
  son = int(son)
ValueError: invalid literal for int() with base 10: 'besh'
Sababi va tuzatish

int() faqat raqamlardan iborat satrni aylantira oladi. «besh» so'zini son qilib bo'lmaydi — bu TypeError emas, ValueError: tur to'g'ri, qiymat noto'g'ri.

Foydalanuvchi har doim kutgan narsani yozmaydi. Buni to’g’ri qarshi olishni 17-darsda try/except bilan o’rganasiz — hozircha xato xabarini o’qib, ValueError bilan TypeError farqini eslab qolish yetarli.

1input() qanday turni qaytaradi va nima uchun bu muhim?

Javobni ko'rish

Har doim str (satr). Muhim, chunki satr bilan arifmetik amal bajarilmaydi: hisoblash kerak bo’lsa int() yoki float() bilan aylantirish shart.

2Foydalanuvchi 5 va 3 kiritdi, print(a + b) esa 53 chiqardi. Nega va qanday tuzatasiz?

Javobni ko'rish

a va b satr, + esa satrlarni ulaydi. Tuzatish: print(int(a) + int(b)) — natija 8.

3int('besh') qanday xato beradi va nega TypeError emas?

Javobni ko'rish

ValueError. Tur to’g’ri (satr berilgan), lekin qiymat aylantirishga yaramaydi — shuning uchun “qiymat xatosi”.

4f-string nima va oddiy satr ulashdan qanday afzalligi bor?

Javobni ko'rish

Qo’shtirnoq oldiga f qo’yilgan satr: o’zgaruvchilar {} ichida yoziladi. Afzalligi: turlarni qo’lda aylantirish kerak emas va ichida hisoblash mumkin — f“{yosh + 1}“.

5float(input()) qachon int(input()) dan yaxshiroq?

Javobni ko'rish

Foydalanuvchi kasr son kiritishi mumkin bo’lganda: narx 12.5, bo’y 1.65. int() bunday satrni qabul qilmaydi va ValueError beradi.

Topshiriq — darajangizni tanlang

Asos · 5–7-sinf — Vizual va aniq ko'rsatmali

Programma ismni va yoshni so’rasin, keyin f-string bilan bir qatorda chiqarsin: Aziza 15 yoshda, kelasi yil 16 yoshda bo'ladi. Yoshni int() bilan olishni unutmang — unutib ham ko’ring, qanday xato chiqishini daftarga yozib qo’ying.

Mustahkam · 8–9-sinf — Matnli masala, o'zingiz tuzasiz

Do’kon kalkulyatori: mahsulot nomi, narxi va sonini so’rab, jami summani hisoblab chek ko’rinishida chiqaring. Narx kasr bo’lishi mumkin. Programma oxirida summani 1000 so’mgacha yaxlitlab ham ko’rsating.

Chuqur · 10–11-sinf — Algoritmik, chegara holatlari bilan

Bitta input() bilan bo’shliq orqali ajratilgan ikki sonni oling (masalan 12 34) va ularning yig’indisini chiqaring. Kalit: split(). Keyin dasturingizni “yomon kirish”ga sinab ko’ring: bitta son, uchta son, harf. Har holatda qanday xato chiqadi — jadval qilib yozib keling. Bu jadval 17-darsda try/except yozganda ishga tushadi.

Darsni belgilash uchun JavaScript kerak. Bu progressni saqlash uchun ishlatiladi — darslikning o'zi JavaScript'siz ham to'liq o'qiladi.