|
Модераторы: Poseidon |
|
Paranorma |
|
||||||
Шустрый Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Люди!
Я снова к вам обращаюсь за помощью! Простите меня, бестолковую! Задание заключается вот в чем: имеется список:
количество элементов в списке увеличиваться и уменьшаться не должно. Но в нем должен происходить сдвиг влево, т.е. второй элемент становиться первым, последний - предпоследним, затем следовать 0. СТРОГО НАСТРОГО ЗАПРЕЩЕНО ИСПОЛЬЗОВАТЬ МЕТОДЫ DEL И APPEND. То есть я поняла, что происходить переприсваивание. Элементу с индексом 0 присвоить значение элемента с индексом 1, элементу с индексом 1 присвоить значение элемента с индексом 2 и т.д. то есть в калькуляторе это будет выглядеть так:
Эта задача снова на использование цикла while, причем один в другом. Я как-то недавно писала о задаче с удалением дубликатов:
Насколько я понимаю, она очень похожа на эту, но тут мне не совсем понятно, как в новом задании поступать с переменными i и j. |
||||||
|
|||||||
Void |
|
||||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
В чём проблема?
Или даже так
Это сообщение отредактировал(а) Void - 20.1.2007, 22:22 -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
Paranorma |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Проблема в том, что при всем чтении учебников я едва понимаю, как все это работает.
А как быть, если сдвиг нужен в обратную сторону? Т.е. вместо [1, 2, 3, 4, 5, 6] получить [0, 1, 2, 3, 4, 5] |
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
А можно поинтересоваться, какими именно учебниками пользуетесь? -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Paranorma |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Void, спасибо, что помогаете мне. Наверно, я вас совсем замучила.
Я пользуюсь Tutorial в самой программе, "Язык программирования Python", авторы Россум, Дрейк, Откидач (тот же Tutorial, только по русски), "Учимся программировать вместе с Питоном", автор Чаплыгин А.Н. Теоретической частью я более или менее овладела, а вот применить знания на практике не получается, почти никогда ничего не работает. Препод велел еще сделать циклические сдвиги, когда в первом случае список [1, 2, 3, 4, 5, 6] превращается в [6, 1, 2, 3, 4, 5], а в другом превращается [2, 3, 4, 5, 6, 1] Увы, даже такие элементарные вещи не получаются. |
|||
|
||||
Void |
|
||||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
Циклический сдвиг:
Посмотрел, неплохое руководство. Могу только пожелать удачи. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
||||
|
|||||
Paranorma |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Да, по Чаплыгину книга вообще хорошая.
А как превратить a = [1, 2, 3, 4, 5, 6] в a = [6, 5, 4, 3, 2, 1]??? Могу конечно и так написать, но мне то через while надо:
|
|||
|
||||
doomik |
|
|||
Одинокий волк Профиль Группа: Участник Сообщений: 360 Регистрация: 25.10.2005 Где: #vingrad Репутация: 3 Всего: 15 |
Какое условие задачи ?
Я вижу 2
Программа копирует элементы их массива a[] в a2[] в обратном порядке, дальше освобождаем массив a[] от его старых элементов а потом присваиваем ему элементы массива a2[]
Это сообщение отредактировал(а) doomik - 23.1.2007, 15:45 -------------------- "Единственный способ изучать новый язык программирования - писать на нем программы." - Brian Kernighan Remember, st1ng3r /server irc.ircline.ru /j #vingrad |
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
Просто меняем местами симметричные элементы.
-------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Paranorma |
|
|||
Шустрый Профиль Группа: Участник Сообщений: 102 Регистрация: 1.1.2007 Репутация: 1 Всего: 1 |
Ну вот такая она у меня вышла... Вроде, работает! |
|||
|
||||
pythonwin |
|
|||
Эксперт Профиль Группа: Участник Сообщений: 2529 Регистрация: 18.4.2006 Где: за компом Репутация: нет Всего: 36 |
Void, ++1 за помощь Paranorma с питоном
|
|||
|
||||
albertn |
|
|||
Опытный Профиль Группа: Участник Сообщений: 368 Регистрация: 17.7.2006 Где: г. Ставрополь Репутация: 1 Всего: 34 |
А не проще ли использовать код типа:
|
|||
|
||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
albertn, разумеется. Но дело в том, что
и так далее в таком духе. Я не считаю этот способ преподавания правильным, но c'est la vie. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
V.A.KeRneL |
|
||||||||
Vadim A. Kazantsev Профиль Группа: Участник Сообщений: 291 Регистрация: 3.12.2006 Где: Moscow, Russia Репутация: 7 Всего: 14 |
Ну почему же? На ранних стадиях обучения программированию, которые, очевидно, осваивает Paranorma, главное — научиться придумыват и реализовывать своими руками элементарные алгоритмы, пользуясь примитивами, а не [сколь бы то ни было] продвинутыми методами и фишками языка. Вот моё «безопасное» (не портящее массив-аргумент, а создающее новый) решение для задачи реверса массива (списка):
Ниже приведено понравившееся мне решение задачи левого и правого сдвигов массива (списка) slav0nic'а с форума http://python.com.ua/forum/. >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>>
имхо так покрасивше В) сдвигается по 1 элементу за цикл slav0nic = {jid: "[email protected]", home: "http://slav0nic.xss.ru", LJ: "http://slav0nic.livejournal.com"} <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< <<< Я бы переписал его так (для «безопасности»):
Это сообщение отредактировал(а) V.A.KeRneL - 24.1.2007, 18:48 -------------------- «C'est un pense-creux d'ici. C'est le meilleur et le plus irascible homme du monde...» © Ф.М. Достоевский, «Бесы» ---/)/)---(\.../)---(\(\ --(':'=)---(=';'=)---(=':') (")(")..)-(").--.(")-(..(")(") |
||||||||
|
|||||||||
Void |
|
|||
λcat.lolcat Профиль Группа: Участник Клуба Сообщений: 2206 Регистрация: 16.11.2004 Где: Zürich Репутация: 6 Всего: 173 |
V.A.KeRneL, в таком случае надо брать либо другой язык, либо другие задачи. Впрочем, самые ранние стадии обучения программированию для меня всегда были загадкой
Произвольный сдвиг можно и попроще записать.
n положительно — влево, отрицательно — вправо. Впрочем, чтобы не запоминать, я пошёл бы небольшое дублирование и оставил shift_left, shift_right с идентичным кодом. -------------------- “Coming back to where you started is not the same as never leaving.” — Terry Pratchett |
|||
|
||||
Правила форума "Центр помощи" | |
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Центр помощи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |