4-dars: Kirish va chiqish
1-blokMashina buyruqni qanday tushunadi1–4 darslar
Bu darsdan keyin siz
input()bilan foydalanuvchidan ma’lumot olasizinput()satr qaytarishini eslab, kerakli joydaint()yokifloat()qo’yasizprint()ni bir nechta qiymat vaf-stringbilan boshqarasiz
Nazariya
“Nazariya” bo'limiga havolainput() — programmaning eshigi
“input() — programmaning eshigi” bo'limiga havolainput() 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.
Bitta qoida, yuzta xato
“Bitta qoida, yuzta xato” bo'limiga havolainput() har doim str qaytaradi. Foydalanuvchi 14 yozsa ham, programma "14"
oladi. Shu bitta jumlani esdan chiqarish boshlovchilarning eng ko’p xatosi.
yosh = input("Yoshingiz: ")print(type(yosh)) # <class 'str'>print(yosh + 1) # TypeError!# Tuzatilgan variant:yosh = int(input("Yoshingiz: "))print(yosh + 1) # ishlaydiprint() ni boshqarish
“print() ni boshqarish” bo'limiga havolaprint() 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.
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.
Bashorat qiling
“Bashorat qiling” bo'limiga havolaAvval o'ylang: bu kod nima chiqaradi? Ishga tushirishdan oldin yozing.
# Foydalanuvchi 5 va 3 kiritdia = input()b = input()print(a + b)Haqiqiy natija:
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.
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.
# Foydalanuvchi 3 kiritdison = int(input())print(son * "ha")print(son * 2)Haqiqiy natija:
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.
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.
Sinab ko’r
“Sinab ko’r” bo'limiga havolaOlti 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
Xatoni toping
“Xatoni toping” bo'limiga havolaBu kod ataylab buzuq — xatoni toping
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.
O’zingizni sinang
“O’zingizni sinang” bo'limiga havola1input() 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
“Topshiriq” bo'limiga havolaTopshiriq — 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.