Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Скриптовые языки программирования > Python
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.10.2021, 12:19   #81
4arli
Новичок
Джуниор
 
Регистрация: 21.10.2021
Сообщений: 2
По умолчанию

Доброго времени суток. Подскажите почему при двух и более одинаковых операциях, установленных подряд, выполняется через одно?
код:
Код:
#!/usr/bin/python3
def task_8_10():
    while not wall_is_on_the_right():
        if wall_is_beneath() and not wall_is_above():
           move_up()
           fill_cell()
           move_down()
           move_right(n=1)
        if wall_is_above() and not wall_is_beneath():
            move_down()
            fill_cell()
            move_up()
            move_right(n=1)
        if not wall_is_above() and not wall_is_beneath():
            move_down()
            fill_cell()
            move_up(n=2)
            fill_cell()
            move_down()
            move_right(n=1)
        else:
            move_right(n=1)
    while wall_is_on_the_right():
        if wall_is_beneath() and not wall_is_above():
            move_up()
            fill_cell()
            move_down()
            break
        if wall_is_above() and not wall_is_beneath():
            move_down()
            fill_cell()
            move_up()
            break
        if not wall_is_above() and not wall_is_beneath():
            move_down()
            fill_cell()
            move_up(n=2)
            fill_cell()
            move_down()
            break
        else:
            break


if __name__ == '__main__':
    run_tasks()

Последний раз редактировалось BDA; 21.10.2021 в 17:38.
4arli вне форума Ответить с цитированием
Старый 21.10.2021, 17:42   #82
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,306
По умолчанию

Поступите следующим образом:
1. Выделить код скрипта
2. Ctrl + C
3. Перейти в окно ввода на форуме и нажать Ctrl + V
4. Выделить введённый код и кликнуть по кнопке [CODE], которая находится над окном редактирования.

Разбирать скрипт Python без форматирования - ....

BDA, и вновь Вы впереди планеты

А если у ТС было другое представление?
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Старый 21.10.2021, 17:54   #83
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,289
По умолчанию

Цитата:
Сообщение от ViktorR Посмотреть сообщение
Поступите следующим образом
За пояснения для новичков спасибо.
Цитата:
Сообщение от ViktorR Посмотреть сообщение
BDA, и вновь Вы впереди планеты
Просто иду по темам в подписках
Цитата:
Сообщение от ViktorR Посмотреть сообщение
А если у ТС было другое представление?
А с этим ничего не делал - пробелы есть в исходном сообщении ТС, только обернул код в CODE (форум пробелы без CODE просто не отображает).
Цитата:
Сообщение от 4arli Посмотреть сообщение
Подскажите почему при двух и более одинаковых операциях, установленных подряд, выполняется через одно?
Честно говоря, ваш вопрос не понял. А по поводу кода. В вашем первом while цикле каждый if отдельно проверяется и уже имеет команду "шаг вправо", а если условие последнего if не выполнилось, то делается еще один "шаг вправо". Или вынесите "шаг вправо" отдельно после всех if, или вместо второго и третьего if используйте elif.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 21.10.2021 в 19:20.
BDA вне форума Ответить с цитированием
Старый 22.10.2021, 14:40   #84
4arli
Новичок
Джуниор
 
Регистрация: 21.10.2021
Сообщений: 2
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Честно говоря, ваш вопрос не понял. А по поводу кода. В вашем первом while цикле каждый if отдельно проверяется и уже имеет команду "шаг вправо", а если условие последнего if не выполнилось, то делается еще один "шаг вправо". Или вынесите "шаг вправо" отдельно после всех if, или вместо второго и третьего if используйте elif.
Спасибо большое, elif помогло.
4arli вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать непроходимые стены NIKOLAYY2 Общие вопросы Delphi 6 10.02.2015 14:51
Парсер для стены в ВК EndoCrinolog PHP 14 15.11.2012 02:44
API ВКонтакте - получить все записи стены MILLIONERR PHP 0 23.09.2012 16:52
GLScene проходимость сквозь стены beygul Помощь студентам 0 10.10.2011 19:12
C# Создание стены и флага(финиш)! ZaVyLoN Общие вопросы .NET 6 23.10.2010 17:23