Уведомления

Группа в Telegram: @pythonsu

#1 Июнь 1, 2019 11:20:51

NakiriEri
Зарегистрирован: 2019-05-31
Сообщения: 3
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

py.user.next
программа ряд подходит для закраски : да/нет
т,е как я понимаю, это некая рекурсия, проблема в том, что для питона я смотрю лекции МФТИ а именно “Тимофей Хирьянов” на данный курс “робот” ведет ссылка после просмотра второй лекции, в первой лекции было про синтаксис, во второй про алгебру логики, так же было затронуто, что такое if, else, elif, for while. Все, т,е циклы и условные операторы. Не было объяснение что такое функция, т,е мне лучше смотреть дальше и уже потом придти к роботу, или может быть вы посоветуете какую то книгу для знакомства с основными возможностями python.Т.е для js это например https://learn.javascript.ru/. т.е основная проблема, я не знаю как это оформить на языке python

Отредактировано NakiriEri (Июнь 1, 2019 11:22:41)

Офлайн

#2 Июнь 1, 2019 12:30:58

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

NakiriEri
т,е как я понимаю, это некая рекурсия
Нет. Это просто выделение подпрограмм.

Ну вот функция записана
на псевдокоде
программа ряд подходит для закраски : да/нет
шагнуть вниз
если внизу нет стены то
шагнуть вверх
ответ := да
иначе
шагнуть вверх
ответ := нет
конец если
конец программы

на питоне
  
def row_needs_fill():
    move_down()
    if not wall_is_beneath():
        move_up()
        return True
    else:
        move_up()
        return False

А вот то, как её придумать, Тимофей там учит (я смотрел его лекции). Лекция со строителями дома.
https://www.youtube.com/watch?v=DvsCUI5FNnI&t=37m50s

NakiriEri
т,е мне лучше смотреть дальше и уже потом придти к роботу, или может быть вы посоветуете какую то книгу для знакомства с основными возможностями python
Есть программирование, а есть языки программирования. Вот когда ты спрашиваешь “как написать эту программу?” не на питоне, а вообще само решение сделать - это программирование. А когда ты задумываешься “а как записать придуманное решение на питоне?” - это язык программирования.
Вот как по программированию есть книги, так и по языкам программирования есть книги. Это разные книги с разной информацией. Изучив питон, ты не научишься программы составлять. А изучив программирование, ты не научишься писать правильный код на питоне (правильный синтаксически, правильный стилистически).

NakiriEri
я не знаю как это оформить на языке python
Можешь изучать по питону книжки простейшие, простые или средние по сложности. Оптимальный путь зависит от того, какая у тебя база в программировании до питона. Если ты школьник, тебе надо простейшие книжки изучать, потому что школьник не сможет усвоить математику, которая требуется для понимания многих конструкций (функции, например, - это из математики понятие и то, как они там устроены, всё слизано с математики). Если же ты учился в вузе и ты не историк какой-нибудь, решивший вдруг стать поверхностным айтишником непонятной специализации, а имел дело там с физикой, математикой, то ты можешь читать средние книжки по питону, потому что ты их поймёшь.

Вот есть топик на 50 страниц, где только одни книжки по питону.
https://python.su/forum/topic/18/
Обрати внимание, что топик тянется с 2006 года. Многие книжки уже переизданы по несколько раз. Многие книжки появились, которые перекрыли старые книжки. Ну и книжки часто повторяют друг друга другими словами.

В принципе, для изучения питона хватает Dive Into Python 3 и последующего изучения документации питона https://docs.python.org .
https://docs.python.org/3/reference/index.html
https://docs.python.org/3/library/index.html
https://www.python.org/dev/peps/



Отредактировано py.user.next (Июнь 1, 2019 12:45:09)

Офлайн

#3 Июль 12, 2019 22:21:03

Kareglazaja
Зарегистрирован: 2019-07-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Добрый день! Решаю задачи по этому курсу - http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html#o31-task-8-30

Прошу вашей помощи решить задачу №31: task_8_30
Добраться до нижнего уровня. Количество уровней не известно. Расстояние между стенами не известно. В каждой стене точно есть ровно один проём.
Не могу понять как конкретно в этой задаче стоит использовать переменные.

Офлайн

#4 Июль 13, 2019 01:35:32

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Kareglazaja
Прошу вашей помощи решить задачу №31: task_8_30
На псевдокоде рабочий код (проверял на реальном)
флаг_искать_проход := да
цикл пока флаг_искать_проход выполнять
флаг_искать_проход := нет
цикл пока справа_нет_стены выполнять
шагнуть вправо
цикл пока снизу_нет_стены выполнять
шагнуть вниз
флаг_искать_проход := да
конец цикла
конец цикла
цикл пока слева_нет_стены выполнять
шагнуть влево
цикл пока снизу_нет_стены выполнять
шагнуть вниз
флаг_искать_проход := да
конец цикла
конец цикла
конец цикла

[guest@localhost pyrob]$ python3 task_31.py 
INFO:pyrob:Starting task task_8_30
INFO:pyrob:Task task_8_30 finished: +
INFO:pyrob:Total: 1/1
[guest@localhost pyrob]$



Офлайн

#5 Июль 13, 2019 16:28:50

Kareglazaja
Зарегистрирован: 2019-07-12
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

py.user.next

Спасибо огромное за помощь и псевдокод! Все получилось

INFO:pyrob:Starting task task_8_30
INFO:pyrob:Task task_8_30 finished: +
INFO:pyrob:Total: 1/1

Офлайн

#6 Авг. 12, 2019 10:00:06

EugeneDemonSpeed666
Зарегистрирован: 2019-06-26
Сообщения: 15
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Извините, что беспокою, но я не могу решить 28 задачу http://judge.mipt.ru/mipt_cs_on_python3/labs/lab2.html

 n = 0
	if cell_is_filled():
		while not wall_is_on_the_right():
			n += 1
			for i in range(n):
				move_right()
	else:
		while not wall_is_on_the_right():
			move_right()

Офлайн

#7 Авг. 12, 2019 10:35:49

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

EugeneDemonSpeed666
не могу решить 28 задачу
число_закрашенных := 0
цикл пока справа_нет_стены выполнять
если клетка_закрашена то
число_закрашенных.увеличить на 1
конец если
если число_закрашенных = 5 то
выход из цикла
конец если
конец цикла

[guest@localhost pyrob]$ python3 task_28.py 
INFO:pyrob:Starting task task_7_6
INFO:pyrob:Task task_7_6 finished: +
INFO:pyrob:Total: 1/1
[guest@localhost pyrob]$



Отредактировано py.user.next (Дек. 19, 2019 14:45:38)

Офлайн

#8 Сен. 7, 2019 01:43:03

6uvenb
Зарегистрирован: 2019-09-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

День добрый, подскажите пожалуйста, где неправильно решаю задачу №20 (или намекните)
собрал сначала через range 13,потом 356 получилось,но не то. теперь пробую как правильно не получается ( извините за код.
while not cell_is_filled():
move_right()

while not wall_is_on_the_right():
while not cell_is_filled(): #<-хочу остановить действие,но не получается.
break #<-
fill_cell()
move_right()
while wall_is_on_the_right():
move_down()
move_left()
while not wall_is_on_the_left():
fill_cell()
move_left()
while wall_is_on_the_left():
move_down()
move_right()

Отредактировано 6uvenb (Сен. 7, 2019 01:43:30)

Офлайн

#9 Сен. 7, 2019 04:25:17

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9843
Репутация: +  853  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

6uvenb
День добрый, подскажите пожалуйста, где неправильно решаю задачу №20 (или намекните)
Вот здесь писал решение этой задачи (в этой же теме)

Это решение с функциями, но из функций можно достать содержимое и записать в виде вложенных циклов.

Весь секрет в том, чтобы сначала шагнуть вправо, а потом уже для этого состояния писать весь алгоритм прохода.



Отредактировано py.user.next (Сен. 7, 2019 04:26:36)

Офлайн

#10 Сен. 22, 2019 15:11:52

Pavel32272
Зарегистрирован: 2019-09-22
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

Графический исполнитель "Робот"

Отредактировано Pavel32272 (Сен. 22, 2019 15:28:35)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version