Форум сайта python.su
py.user.nextне могу понять цикл выполнять вы имеете ввиду while ?
выход из цикл
Офлайн
viktor_kalinaЭто псевдокод. Псевдокод пишется для того, чтобы не нужно было соблюдать синтаксис языков программирования. Сам питон тоже близок к псевдокоду, поэтому на нём часто демонстрируют примеры кода.
не могу понять цикл выполнять вы имеете ввиду while ?
Офлайн
py.user.nextсказал бы сразу что while True )))))))
Офлайн
подскажите плиз почему не идет вправо
задача 17
#!/usr/bin/python3 from pyrob.api import * @task def task_8_27(): while not cell_is_filled(): move_up() if cell_is_filled(): move_left() if not cell_is_filled(): move_rigth(2) if __name__ == '__main__': run_tasks()
Офлайн
viktor_kalinaпопробуй так:
подскажите плиз почему не идет вправо задача 17
def task_8_27(): while not cell_is_filled(): move_up() if cell_is_filled(): move_left() if not cell_is_filled(): move_right(2)
Отредактировано DislocationSH (Фев. 28, 2020 01:57:38)
Офлайн
viktor_kalinaВ разных языках это по-разному записывается, а на псевдокоде оно записывается одинаково для всех языков. Для того он и существует. Если посмотришь Википедию, там часто алгоритмы приводятся в виде псевдокода, потому что читающие могут на разных языках программировать и не знать синтаксис других языков.
сказал бы сразу что while True )))))))
Отредактировано py.user.next (Фев. 28, 2020 07:44:38)
Офлайн
Офлайн
py.user.nextПривет.
a = 0 while not wall_is_on_the_right(): move_right() a += 1 if 37 < a < 41: while not wall_is_on_the_left(): move_left() if wall_is_on_the_left(): for a in range(1): move_right() fill_cell() move_right() b = 2 for a in range(7): fill_cell() move_right(b) fill_cell() b += 1 while not wall_is_on_the_right(): move_right() if wall_is_on_the_right(): break if 30 <= a <= 37: while not wall_is_on_the_left(): move_left() if wall_is_on_the_left(): for a in range(1): move_right() fill_cell() move_right() b = 2 for a in range(6): fill_cell() move_right(b) fill_cell() b += 1 while not wall_is_on_the_right(): move_right() if wall_is_on_the_right(): break if 23 <= a < 30: while not wall_is_on_the_left(): move_left() if wall_is_on_the_left(): for a in range(1): move_right() fill_cell() move_right() b = 2 for a in range(5): fill_cell() move_right(b) fill_cell() b += 1 while not wall_is_on_the_right(): move_right() if wall_is_on_the_right(): break if 17 < a < 23: while not wall_is_on_the_left(): move_left() if wall_is_on_the_left(): for a in range(1): move_right() fill_cell() move_right() b = 2 for a in range(4): fill_cell() move_right(b) fill_cell() b += 1 while not wall_is_on_the_right(): move_right() if wall_is_on_the_right(): break
move_right() fill_cell() a = 0 for a in range(20): if not wall_is_on_the_right(): a += 1 move_right(a) fill_cell() if wall_is_on_the_right(): break
Офлайн
Romanteg
Прочитал всю ветку, над задачей def task_7_5(): № 27 мучаюсь несколько дней.
Romanteg
Не хватает понимания использования двух переменных в вашем примере.
Могли бы вы пояснить по пунктам зачем вводится nn = n?
Что это за условие if n < nn и почему использовано оно? Это похоже на 2ой пример, который я написал ниже (счетчик перехода на +n клеток в арифметической последовательности).
Почему идет сразу условие else (а не elif) и что в нем записано?
RomantegЗдесь решал.
Не говоря про №30: task_9_3 с треугольниками. Бегло посмотрел Основы информатики и вычислительной техники и Программирование для математиков, ответ не нашел, только про близкий к тексту пример о решении по числовому ряду Фибоначчи.
Отредактировано py.user.next (Март 9, 2020 23:28:49)
Офлайн
py.user.next
py.user.nextНе могу понять принцип как вы пришли к такому решению, что нужно использовать зависимость n от nn и что nn задает границу, а затем n еще и сбрасывается… наверное, это приходит с опытом.
n на каждой закрашенной клетке обнуляется. Таким образом n используется для подсчёта пропускаемых клеток, а nn задаёт границу для переменной n, при достижении которой нужно закрасить одну клетку и потом начать всё сначала.
move_right() fill_cell() a = 0 for a in range(20): if not wall_is_on_the_right(): a += 1 for c in range(a): move_right() if wall_is_on_the_right(): break if wall_is_on_the_right(): break fill_cell()
Прикреплённый файлы:
task_7_5.png (6,3 KБ)
Офлайн