|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
Определите значение второго по величине элемента последовательности27.02.2020, 21:46. Показов 11873. Ответов 166
Метки нет (Все метки)
пытаюсь научиться языку Питон-3, просмотрел некоторые поверхностные курсы по языку, вроде все понятно, но когда к примеру стал проходить курс с заданиями вот здесь https://www.coursera.org/learn... -maksimumu то до цикла While дополз, но когда посыпались задания типа: Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить одно вхождение наибольшего элемента. плюс всякие числа Фабиочи, то я поплыл...
понятно, что код можно загуглить, НО какой толк от такой учебы...? вот стою перед выбором, бросать все это программирование т.к. моих мозгов и логики мышления не хватает на это или бросать этот курс, что посоветуете?... для меня это очень важно...
0
|
|
| 27.02.2020, 21:46 | |
|
Ответы с готовыми решениями:
166
Определить значение второго по величине элемента в последовательности
Определите значение второго по величине элемента в последовательности |
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||||
| 14.03.2020, 20:30 [ТС] | |||||||||||||
|
range(n + 1) вполне же работает.. Добавлено через 57 секунд Добавлено через 51 минуту а вот если усложнить немного, что бы найти факториал то уже даже смотря на код готовый, непонятно..
если через список, то не понятно почему (2, ...) с 2ки начинается.. сам бы то же такое не додумался написать..
0
|
|||||||||||||
| 14.03.2020, 22:22 | ||||||||
|
Добавлено через 46 минут Рассмотрим пример вычисления факториала с помощью цикла while. Факториал равен 6 при n=3, так как f = 1*2*3 равно 6.
n в цикле одновременно используется как счетчик, но не возрастающий, а убывающий (3, 2, 1). Но когда n станет равным единице 1, то цикл прервется. И так при первом проходе: n == 3, условие выполняется и выполняется проход цикла f = f * n # f = 1 * 3 == 3, счетчик уменьшается на единицу n = n - 1 # n = 3 - 1 == 2 При втором проходе: n == 2, условие выполняется и выполняется второй проход где f уже равно 3 и потому получим f = f * n # f = 3 * 2 == 6, счетчик уменьшается на единицу n = n - 1 # n = 2 - 1 == 1 Так как n теперь равно единице 1 , то условие цикла уже не будет выполнятся и следующего прохода не будет, цикл прервется. При этом f останется равным шести, f == 6 , что и будет выведено на экран инструкцией print(f), которая находится за пределами цикла и будет выполнена после того, как цикл прервется.
1
|
||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||
| 14.03.2020, 22:35 [ТС] | ||||||
|
по while очень хорошо расписали, спасибо!
а по вот этому
0
|
||||||
| 14.03.2020, 23:23 | ||||||||||||
Для вычисления факториала мы должны последовательно умножать результат S на очередной сомножитель, из (1, 2, 3). Итерируемый объект, который формируется функцией range(1, n+1) содержит в себе числа (1, 2, 3), которые он выдает по одному в переменную цикла i при каждом шаге цикла. S мы ввели, потому что без заранее заданного значения S не будет работать формула S = S * i , так как не возможно будет вычислить правую часть инструкции "=". А присвоили единицу, что бы она не влияла на результат произведения сомножителей факториала. Добавлено через 11 минут coa3, Я не знаю, про итераторы ты читал или нет, потому что строго говоря функция range(1, n+1) создает объект range
Добавлено через 1 минуту Если про итераторы еще не читал, то пока не бери в голову.
1
|
||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 14.03.2020, 23:25 [ТС] | ||
|
так? об этом речь?
0
|
||
| 14.03.2020, 23:36 | ||
|
1
|
||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||
| 16.03.2020, 15:39 [ТС] | ||||||
|
Посчитать сколько символов в строке являются цифрами и их сумму
во первых как вводятся эти символы, а потом сортировка их на str и на все остальные...
0
|
||||||
| 16.03.2020, 17:14 | ||||||||||||||||
|
coa3, Алгоритм здесь такой. Нужно рассмотреть все символы в строке (которая является последовательностью символов) и для тех из них, которые являются цифрами, найти их сумму. Нужно рассматривать по одному символу и если это не цифра то ничего не делать с ним, а если это цифра, то прибавлять к сумме. Для этого использовать цикл, лучше for.
Для проверки, является ли символ цифрой, используй метод
Вернёт True, если в строке хотя бы один символ и все символы строки являются цифрами, иначе — False.
Добавлено через 8 минут И еще, когда отлаживаешь код, не нужно делать ввод с клавиатуры. Пока закомментируй ее.
1
|
||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||
| 16.03.2020, 18:58 [ТС] | |||||||
0
|
|||||||
| 16.03.2020, 20:21 | ||||||
|
coa3, Уже есть прогресс, но в коде есть ошибки, давай их разберем.
Во первых чисто косметически, обычно через i обозначают переменную цикла, ассоциирующуюся с шагом цикла. В данном случае берутся символы из строки, поэтому переменную цикла лучше назвать ch (сокращение от character). А переменную суммы лучше назвать s (первая буква от sum). Но это только для лучшей читаемости, на работу кода это не влияет. А теперь об ошибках. Строка это последовательность символов и потому является итерируемым объектом. Поэтому преобразование ее в список является лишним. Но собственно самих главных ошибок, почему код не работает, их две. Первая это то, что переменная цикла получает на каждом шаге строку из одного символа, и если этот символ цифра, то что бы ее прибавлять к сумме, нужно преобразовать этот символ в число с помощью функции int(). Вторая ошибка, это то, что печатать сумму нужно за пределами цикла, когда он закончится. А как у тебя, печатать будет не только конечную сумму, а также все промежуточные значения суммы при каждом шаге цикла, так как print() размещен у тебя внутри тела цикла. А вот как выглядит правильный код
Кстати, ты используешь отладчик при написании кода? Он показывает твои ошибки.
1
|
||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 16.03.2020, 20:21 [ТС] | |
|
так писал код чисто интуитивно, не особо разбираясь, что пишу, оказалось код получился почти рабочим, ну за исключением int и print не туда влепил...
неужели мозги чуть чуть начинают в правильном направлении работать...?
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 16.03.2020, 20:29 [ТС] | ||
|
скажите, а как вводить с клавиатуры сразу список?
0
|
||
| 16.03.2020, 20:53 | |||||||||||||||||
1
|
|||||||||||||||||
|
|
|||||||
| 16.03.2020, 20:57 | |||||||
1
|
|||||||
| 16.03.2020, 21:05 | ||||||||||||
|
Вот пример
1
|
||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||
| 17.03.2020, 14:14 [ТС] | ||||||
|
Найти в списке число, которое встречается чаще всего
дальше понимаю что надо применять s.count() и через max() найти максимально повторяющийся объект но в скобки count надо поместить конкретный элемент, как поместить все элементы списка по очередно не могу придумать, как голову не ломал... такое понятно не работает...
0
|
||||||
| 17.03.2020, 18:42 | ||||||
|
coa3, Наиболее эффективно для таких задач использовать метод Counter из модуля collections. Ты модули еще не изучал, но для предварительного ознакомления рассмотрим решение этим способом позже (пример такого решения здесь
Вывести элементы списка, которые встречаются только один раз ). А сначала для практики решим этот пример используя count(). Так как count() ищет количество вхождений для одного элемента, то что бы проверить количество вхождений для каждого элемента, очевидно нужно использовать цикл for. Для поиска числа с максимальным вхождением инициализируем перед циклом переменную, значением которой является пара, у которой первым элементом является число из списка, для которого на текущий момент мы выявили наибольшее количество вхождений, а вторым элементом пары будет его количество вхождений. Для инициализации можно присвоить пару нулей. m = (0, 0) Затем в цикле для каждого элемента из списка находим количество его вхождений и затем если их число больше чем в m то заносим проверенный элемент в первую позицию пары (смещение 0), а его количество вхождений во вторую позицию пары (смещение 1). Напиши код как получится и мы его разберем. Добавлено через 7 минут Для образца работы с парой
0
|
||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||||||
| 18.03.2020, 16:14 [ТС] | ||||||
|
параллельно пытаюсь решить другую задачку, что бы мозги переключить с того, что не получается...
#Дана строка, в которой буква h встречается минимум два раза.Удалите из этой строки первое и # последнее вхождение буквы h,а также все символы, находящиеся между ними.
0
|
||||||
|
Модератор
|
||||||
| 18.03.2020, 16:23 | ||||||
|
coa3, del a[int(b):int(c)] это означает удалить срез строки от (x, y), то бишь ты получаешь срез и удаляешь его, бегом учить основы!
Добавлено через 2 минуты
0
|
||||||
| 18.03.2020, 16:23 | |
|
Помогаю со студенческими работами здесь
100
Определите значение второго по величине элемента в этой последовательности (использовать рекурсию) Определите значение второго по величине элемента в этой последовательности
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|