Форум сайта python.su
> и внимательность
Да внимательность с пробелами не помешает.
Офлайн
py.user.nextЗдравствуйте, то есть нужно было создать не одну функцию, а несколько? Мне кажется что будет правельнее сделать четыре функции и при вводе определенного текста чтобы открывалась функция, но тогда как закрыть функцию и вернуться обратно к вводу? Создать 5 функцию с вводом команд?
Рекурсивные вызовы функций не надо делать там, где их не надо делать. Если что-то подразумевает бесконечные рекурсивные вызовы, то от них точно надо избавиться сразу. А бесконечный вызов подменю вполне возможен.Функции должны вызывать функции, которые должны вызывать функции. При этом сами функции должны быть небольшими, можно и однострочные использовать. Главная задача функции - изолировать код от остальной части программы. Тогда функцию можно заменять полностью, делая это незаметно для остальной программы. При обнаружении ошибок это важно. Когда ты обнаружил ошибку в коде, ты должен всего лишь заменить функцию, в которой эта ошибка, а не дёргать части программы, не относящиеся к ошибке.Так что конкретно в этой программе нужно сделать, чтобы каждый пункт меню не какой-то код выполнял, а вызывал функцию, а код уже должен быть внутри этой отдельной функции. На каждое действие своя функция. И дальше такая функция может ещё ветвиться и другие функции вызывать. Так ты отвяжешь меню от кода, который в пунктах меню исполняется.tags: structured paradigm
Отредактировано Xakep321 (Фев. 23, 2018 21:38:46)
Офлайн
PEHDOMСпасибо, я подправлю код
1. много копипасты, типа такого :
Офлайн
InterViВ данном примере табуляция была необходима, тем более что я пишу в просто в блокноте, да и внимательность тем самым тренирую, но спасибо, сегодня скачаю IDE
Смешно. Авто-выравнивание есть во всех IDE, а даже если нагадить, подсветит.
Офлайн
Xakep321У тебя должен быть основной цикл ввода команд. При вводе команды выполняется её функция и выходит обратно в цикл. Сам цикл ввода команд также находится в функции. А при создании структурированных меню нужно использовать конечный автомат, так как часто нужно подниматься из самого глубокого подменю в самые верхние, минуя все подменю в промежутке.
но тогда как закрыть функцию и вернуться обратно к вводу? Создать 5 функцию с вводом команд?
Офлайн
py.user.nextЗдравствуйте,
Офлайн