Форум сайта python.su
294
doza_andну зачем же так радикально? возможно задача ставиться именно для того чтобы научиться пользоваться, например, циклами, условным оператором, или битовым сдвигом. тогда задача выполнить с(без) помощью, вполне оправдана, особенно на начальном этапе обучения.
Я вообще считаю авторов задач по программированию в условиях которых присутствует требование “не используя” лентяями или дураками.
AlexanderrrrrrorAlexanderrrrrror вам прнципиально именно такая реализация “в лоб”? с делением на 10 и умножением. Тоесть это какаято учебная задача на изучение какихто конкретных принципов? Потому как если нет, то это делаеться в одну строку как вам выше уже показали.
То есть такой код на паскале
…. нужно реализовать на питоне
[code python][/code]
Отредактировано PEHDOM (Март 12, 2020 09:33:11)
Офлайн
857
doza_andЗря считаешь. Одно дело работать со строками. Это может понять любой дурак, так как в питоне это облегчено и срезы никаких особых умственных способностей не требуют. Другое дело работать с числами и раскладывать их на составляющие, используя математические свойства чисел. Если брать основы, то скорость работы питона со строками гораздо медленнее, чем с числами, потому что для питона строка - это такое множество чисел, а число - это одно число. Операция со строкой превращается во множество операций с числами. Операция с числом транслируется в операцию с числом.
Я вообще считаю авторов задач по программированию в условиях которых присутствует требование “не используя” лентяями или дураками.
Отредактировано py.user.next (Март 12, 2020 12:13:17)
Офлайн
857
Alexanderrrrrror
Как, используя циклы,целочисленные переменные, удалить 3 число,из n =int(input())
то есть:
Пользователь вводит 12345
А вывод будет 1245
>>> n = 12345 >>> out = n // 1000 * 100 + n % 100 >>> out 1245 >>>
Отредактировано py.user.next (Март 12, 2020 12:07:58)
Офлайн
253
py.user.next
тогда он прямо на сервере написал программу и собрал её там же и
py.user.nextВы все правильно говорите. Но в ваших примерах разложение чисел, написание программ на месте и прочие ограничения возникают в силу понятных и естественных причин. Никто не мешает преподавателю придумать задачу когда применение изучаемых средств языка ЕСТЕСТВЕННО.
Другое дело работать с числами и раскладывать их на составляющие, используя математические свойства чисел.
Офлайн
857
doza_andВ реальных программах эти “ограничения” всегда возникают. Чтобы их обходить, нужно учиться в условиях, приближенных к реальным. Нужно уметь их обходить. Поэтому когда в образовательном курсе накладывают ограничения и учащийся думает “ну, нафига это делать так, через одно место, если есть удобная функция, для которой даже знать ничего не надо?”, то учащийся просто не врубается, что именно через это его и научат писать реальные программы, которые каждый раз потом сами будут задавать ему ограничения и он не сможет их обойти, попросить кого-то, чтобы их поменяли. В реальном мире, если ты не можешь обойти ограничения, не можешь их проломить, как стену кувалдой, то у тебя просто программы не будет. Проход только один, и он идёт через стену. И для того, чтобы это делать, нужны навыки. А навыки вырабатываются через такие задачи, которые учебные, но похожи на настоящие.
Но в ваших примерах разложение чисел, написание программ на месте и прочие ограничения возникают в силу понятных и естественных причин.
doza_andЯ вижу, что ему нужно сделать через
В данном случае извините иметь код типа str(int(input())). это идиотизм.
number = int(input())
doza_andДвоичные представления чисел, задачи на операции с двоичными данными, не покрывают всю алгебру, которая встречается в простеньких алгоритмах. Те же рекуррентные соотношения, которые нужно уметь делать, гораздо ближе к алгебре, чем к дискретной математике. Там нужно понимать свойства факториалов, делить многочлены, чтобы получить коэффициенты с переменной. Это мы даже не говорим о реальных задачах, где физика участвует и математики там хватает. Те же задачи на силу гравитации, на ускорение, скорость, путь, движения точек - на них одними битовыми операциями ты не отделаешься. А сейчас время такое, что нужно и карты всяких сервисов обрабатывать, геометрию применять далеко не школьную. Это всё на простеньких задачках про битовые сдвиги не постигнешь. Надо уметь работать с числами, надо уметь работать с многочленами, надо понимать природу операций над математическими объектами. Если он будет пытаться на срезах что-то выполнить, он далеко не уедет на этом.
А на практике для изучения работы с целыми на мой взгляд полезнее придумать задачу на извлечение фрагментов из упакованных двоичных данных.
Офлайн