|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
Определите значение второго по величине элемента последовательности27.02.2020, 21:46. Показов 11901. Ответов 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
Определите значение второго по величине элемента в этой последовательности (использовать рекурсию) Определите значение второго по величине элемента в этой последовательности
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
|
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo
Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло.
Но на выплатах по больничным это. . .
|
1С: Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью. Данные берутся из регистра сведений, по которому настроено. . .
|
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y
Z4Tv2zpXVVo
https:/ / github. com/ shumilovas/ med2. git
|
|
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа.
В качестве фильтра для отбора справочника служит группа номенклатуры.
Отбор по наименованию группы. . .
|
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
|
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс.
Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
|
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа.
В качестве фильтра для отбора служит значение перечислений.
/ / Событие "НачалоВыбора" реквизита на форме. . .
|