Shanraq.org Shanraq.org
Енгізу, шығару және дерек түрлері
Қоғам

Информатика: өз цифрлық көмекшімізді жасаймыз 28-сабақ (барлығы 38)

Енгізу, шығару және дерек түрлері

Енгізілген цифр неге әуелі мәтін болып қалатынын, нәтижені қалай көрсетуді және түрлендіру қай жерде қате беретінін білеміз.

Картадағы орнымыз

Бұл 72 сабақтың 28-сі, Python блогының (27–38) бөлігі. Тірек сызба тексерілетін өтулерді көрсетеді. 0.3 қағаз келісіміндегі еске салудың бес нәтижесі мен ойдан алынған бастапқы тапсырмаларды жалғастырамыз.

Енгізу, шығару және дерек түрлері

Жағдай және сұрақ

Оқушы мерзімге дейінгі күн ретінде 2 енгізеді. Экранда сан сияқты көрінеді, бірақ пернетақтадан келген мәтінге бағдарлама бірді қоса алмайды. Бірдей «2» белгісі қалай екі түрлі дерек болады? Кімнің не тергеніне тәуелді болмау үшін қауіпсіз тұрақты мысалдан бастаймыз.

Жаңа сөздерді анық түсінейік

Енгізу деректі бағдарламаға әкеледі; input() әрқашан жол қайтарады. Шығару нәтижені print() арқылы көрсетеді. Түр қандай әрекетке болатынын анықтайды: str — мәтін, int — бүтін сан, bool — True не False. Түрлендіру int(raw) мәтінді бүтін сан деп оқуға тырысады; екі немесе бос жол болса, ValueError береді. type(value).__name__ түр туралы болжамды тексереді. Түрлендірудің өзі теріс мерзімнің міндетке жарайтынын шешпейді.

Сабақтың тірек сигналы

Кіріс → ережені тексеру → күйді өзгерту → бақыланатын нәтиже. Бағдарлама қай жерде деректі оқитынын, келісіммен салыстыратынын және қай жерде тек хабарлайтынын көрсетіңіз. Қадам сызбада көрінбесе, кодтан тауып, өз трассаңызға қосыңыз.

Қадамдап талдаймыз

Үстелге 2 таңбасы мен 2 саны жазылған екі карточка қойыңыз. Біріншісінде мәтін бірігеді: "2" + "1" нәтижесі "21"; екіншісінде қосынды 3 болады. Кодта raw әуелі str, ал int(raw) кейінгі days — int. Күтілген және нақты нәтижені салыстырыңыз, сосын raw мәнін "екі" етіп, қатенің жолын табыңыз. eval қолданбаңыз: бізге еркін мәтінді орындау емес, бүтін сан керек.

Болжаңыз және тексеріңіз

Нәтиже блогын жабыңыз. Атаулар мәнін жол сайын бақылап, әріп регистрі мен жол ретін қоса нақты мәтінді болжаңыз. Содан кейін ғана кодты step-03 каталогында python3 арқылы орындап, таңба бойынша салыстырыңыз. Бір кірісті өзгертіп, іске қоспай тұрып жаңа болжам жазыңыз. Айырма болса, жауабыңызды кейін ыңғайламай, алғашқы ауытқыған жолды табыңыз.

raw = "2"
days = int(raw)
print(type(raw).__name__, type(days).__name__)
print(days + 1)

Күтілетін нәтиже

str int
3

Қатені табыңыз

int("2.5") де ValueError береді: бүтін сан ондық бөлшек емес. Мұны үндемей дөңгелектеумен «түзетпеңіз». Әуелі күнтізбелік күнді ме, әлде сағатты ма өлшейтініңізді анықтап, содан кейін түр мен тексеру ережесін таңдаңыз.

Жобаға енгізілетін өзгеріс

Көмекші әзірге түрлендіруді көрсетеді, нақты жеке дерек алмайды. Бұл қадамдағы мерзім — ойдан шығарылған бүтін күн саны; "2" жолы тек ашық түрлендіру арқылы 2 саны болады.

Тапсырма және дәлел

input() арқылы күн санын енгізіңіз, бірақ бағдарламаны әуелі "0", "2", "-1", "екі" және бос жолмен кезек тексеріңіз. Іске қосар алдында күтілетін түр мен әрекетті жазыңыз. Қате енгізу әзірше бағдарламаны тоқтатуы мүмкін: 36-сабақта оны түсінікті хабарға айналдырамыз. Жобада бастапқы мәтін мен түрленген санды бөлек атауларда ұстаңыз.

Жаңа жағдайға көшіру

Телефон нөмірі де цифрлардан тұрады, бірақ нөмірлерді қоспаймыз. Оны int ретінде сақтау неге қолайсыз? Бастапқы нөл мен + белгісіне не болатынын түсіндіріңіз.

1, 7 және 30 күннен кейін қайталау

1 күннен кейін бетті ашпай ереже мен бір шекара мысалын еске түсіріңіз. 7 күннен кейін жаңа мысалдағы қатені сыныптасыңызға түсіндіріңіз. 30 күннен кейін жоба тестін қайталап, бұрынғы жазба мен нәтиженің сақталғанын тексеріп, ережені өзге міндетке қолданыңыз.

Келесі сабақ

Келесі: Жасырын түрлендірусіз өрнектер

Мәтінде қате не теру қатесі кездессе, бізге айтыңыз

Жоба дәлелін тексеру

Бақылауды, түсіндіруді, қатені түзетуді және жобаңыздағы өзгерісті жазыңыз. Модель алғашқы шатасқан немесе дәлелденбеген байланысты көрсетеді, бірақ дайын жауапты бермейді.

Тексеру үшін кіру керек. Кіру

Пікірлер (0)

Әзірге пікір жоқ. Бірінші болыңыз.