0 / 0 / 0
Регистрация: 22.10.2019
Сообщений: 11
|
||||||
1 | ||||||
Проблема с условиями в Python23.10.2019, 00:00. Показов 2049. Ответов 9
Метки нет (Все метки)
Здравствуйте, закончил колледж на техническое обслуживание и ремонт РЭА и понял что 4 лет это не стоило и можно было за полгода больше получить если бы нормально учили, но была еще специальность программиста и подумал неделю назад что вполне могу изучить и эту специальность и при чем сам если с той все так растянуто было. Так вот, прошу прощения если я задал глупый или неуместный вопрос, но я честно не понимаю. Не нашел в интернете нормального объяснения или не понял зачем нужно elif.
Решил написать простенькую программу Будет спрашивать погоду, ответ будет Да или Нет. В случае некорректного ответа будет заново спрашивать. Как ее написать что б она работала я понимаю, но я не понимаю почему именно в таком виде она не работает. Если ответ "Да" на моменте первого if цикл должен прекратиться ведь наличие ответа есть! и написать "Отлично!". но он не прекращается а идет до else, воспринимает это как отсутствие ответа и всё заново. При ответе "Нет" все норм и он отвечает "Грустно" Вот ее код:
0
|
23.10.2019, 00:00 | |
Ответы с готовыми решениями:
9
Проблема с условиями Проблема со условиями? Проблема с условиями! Проблема с python 2 и python 3 |
0 / 0 / 0
Регистрация: 22.10.2019
Сообщений: 11
|
||||||
23.10.2019, 03:43 [ТС] | 2 | |||||
Я так понимаю что цикл в любом случае идет дальше, даже если условие уже выполнено? почему он так делает? почему цикл не останавливается на присваивании переменной
Нарисовал картиночку что б проще было объяснить.
0
|
530 / 180 / 38
Регистрация: 18.08.2012
Сообщений: 904
|
|
23.10.2019, 04:09 | 3 |
потому что:
в цикле while: после первого if - у тебя выполняется второй а если ответить на вопрос Да - то, выполняется ветка else в которой ты пишешь: otvet2 = False таким образом, весь этот бред - хорошо не заканчивается: console output:
0
|
0 / 0 / 0
Регистрация: 22.10.2019
Сообщений: 11
|
|
23.10.2019, 04:46 [ТС] | 4 |
0
|
530 / 180 / 38
Регистрация: 18.08.2012
Сообщений: 904
|
||||||
23.10.2019, 05:03 | 5 | |||||
так работает:
смотри внимательно какие именно otvet - ты сравниваешь и с чем. у тебя выполнялось else - потому что Нет - это не Да и поэтому Да - тоже зацикливалось. У тебя же всё перед глазами
0
|
0 / 0 / 0
Регистрация: 22.10.2019
Сообщений: 11
|
|
23.10.2019, 14:34 [ТС] | 6 |
0
|
Автоматизируй это!
|
|
23.10.2019, 14:39 | 7 |
Сообщение было отмечено BaklanichBaklan как решение
Решение
BaklanichBaklan, ты либо не читаешь, что тебе пишут либо не понимаешь написанного. Давай заново, вот про это
ну вот кто тебе сказал такую гадость? ты прочел главу про циклы в книге? Цикл заканчивается только на строке проверки условия (там где while или for) или при команде break, больше он нигде не заканчивается и продолжает выполнять все построчно. Учим матчасть!
1
|
4941 / 3293 / 1141
Регистрация: 21.03.2016
Сообщений: 8,078
|
||||||
23.10.2019, 14:47 | 8 | |||||
BaklanichBaklan, вы просто перемудрили и поэтому запутались. зачем создавать флаги и глобальную переменную
1
|
0 / 0 / 0
Регистрация: 22.10.2019
Сообщений: 11
|
|
23.10.2019, 17:13 [ТС] | 9 |
0
|
Автоматизируй это!
|
|
23.10.2019, 17:16 | 10 |
конечно, для этого и формируем блоки, чтобы было понятно к чему что относится. Выше вам Семеныч хороший вариант написал
1
|
23.10.2019, 17:16 | |
23.10.2019, 17:16 | |
Помогаю со студенческими работами здесь
10
Проблема в Python Проблема с кодировкой c Python 2.7.x Проблема с кодом на Python Возникла проблема с Python Проблема с задачей Python python проблема с кодом Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |