|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
30.01.2017, 20:09 | #1 |
Пользователь
Регистрация: 25.01.2017
Сообщений: 27
|
Списки в языке Python. Помогите исправить!
Задание:
Напишите программу, которая принимает на вход список чисел в одной строке и выводит на экран в одну строку значения, которые повторяются в нём более одного раза. Для решения задачи может пригодиться метод sort списка. Выводимые числа не должны повторяться, порядок их вывода может быть произвольным. Код: Код:
Программа работает, но неправильно, помогите найти ошибку в логике! ______________________ Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум. Особенно в Питоне, там ж отступы не просто для красоты. Последний раз редактировалось Alex11223; 30.01.2017 в 20:33. |
30.01.2017, 20:33 | #2 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
"неправильно" это как?
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
30.01.2017, 20:57 | #3 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Код:
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
30.01.2017, 21:04 | #4 |
Пользователь
Регистрация: 23.08.2016
Сообщений: 10
|
А если так?
Код:
|
30.01.2017, 21:41 | #5 |
Забанен
Форумчанин Подтвердите свой е-майл
Регистрация: 01.11.2006
Сообщений: 420
|
Можно и в 2е строчки написать.
Код:
Если ничто другое не помогает, прочтите, наконец, инструкцию! Аксиома Кана
|
30.01.2017, 21:43 | #6 |
Пользователь
Регистрация: 25.01.2017
Сообщений: 27
|
А вот так:
На входе: 4 8 0 3 4 2 0 3 На моём выходе: 0 4 1 2 6 3 7 0 4 5 2 6 3 7 Правильный выход: 0 3 4 Скажите, почему в строке "for i in range(1, len(a)):" берём в скобках от 1, почему просто len(a) не подойдёт? Последний раз редактировалось Alex11223; 31.01.2017 в 20:12. |
30.01.2017, 21:53 | #7 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Повторы потому что вы же по второму разу одно и тоже проверяете "с другой стороны" + сравнение с самим собой.
В общем автор задачи не просто так посоветовал отсортировать. Тогда не понадобится перебирать весь список для каждого элемента. Потому что в цикле автор сравнивает с предыдущим элементом. (если не указывать начальное число, то range будет от 0 https://docs.python.org/3/library/stdtypes.html#range)
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 30.01.2017 в 21:59. |
30.01.2017, 21:56 | #8 |
Пользователь
Регистрация: 23.08.2016
Сообщений: 10
|
|
31.01.2017, 19:11 | #9 |
Пользователь
Регистрация: 25.01.2017
Сообщений: 27
|
Код:
Мой выход: 0 0 0 0 2 3 3 3 3 4 4 4 4 8 Правильный выход: 0 3 4 Почему возникают эти повторы и как сделать так, чтобы 8 и 2 не выводились? Последний раз редактировалось Alex11223; 31.01.2017 в 20:11. |
31.01.2017, 20:11 | #10 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
Потому же, почему выше написано.
Зачем вы после сортировки перебираете весь список на каждом элементе? Надо просто немного подумать. И используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум. Особенно для кода на Питоне, там ж отступы не просто для красоты.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Помогите исправить ошибку в задаче на динамические переменные списки | Klubnic | Помощь студентам | 11 | 07.05.2016 00:54 |
Задача на языке Python | Douglas | Python | 2 | 07.06.2011 19:59 |
Помогите исправить косяк в задаче на динамические переменные списки | Taisja | Помощь студентам | 2 | 31.05.2008 21:49 |