|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
Определите значение второго по величине элемента последовательности27.02.2020, 21:46. Показов 12574. Ответов 166
Метки нет (Все метки)
пытаюсь научиться языку Питон-3, просмотрел некоторые поверхностные курсы по языку, вроде все понятно, но когда к примеру стал проходить курс с заданиями вот здесь https://www.coursera.org/learn... -maksimumu то до цикла While дополз, но когда посыпались задания типа: Последовательность состоит из натуральных чисел и завершается числом 0. Определите значение второго по величине элемента в этой последовательности, то есть элемента, который будет наибольшим, если из последовательности удалить одно вхождение наибольшего элемента. плюс всякие числа Фабиочи, то я поплыл...
понятно, что код можно загуглить, НО какой толк от такой учебы...? вот стою перед выбором, бросать все это программирование т.к. моих мозгов и логики мышления не хватает на это или бросать этот курс, что посоветуете?... для меня это очень важно...
0
|
|
| 27.02.2020, 21:46 | |
|
Ответы с готовыми решениями:
166
Определить значение второго по величине элемента в последовательности
Определите значение второго по величине элемента в последовательности |
| 25.03.2020, 00:05 | ||||||||||||||||||||||||||||||||
а должна возвращать итератор содержащий числа, соответствующие индексам (смещениям) элементов в списке, что бы мы могли с помощью этих индексов обращаться к элементам списка. Делается это следующим образом.
Когда нам нужен список начинающийся с нуля (start = 0) и с шагом 1 (step = 1), то их указывать не надо, так как они берутся по умолчанию, а указывать только количество чисел, которое должно соответствовать количеству элементов в нашем списке, то есть len(n). То есть используется первая форма синтаксиса функции range
В результате шапка будет выглядеть так.
Но нам нужно сравнить количество вхождений для разных элементов списка и найти элемент с наибольшим количеством вхождений. Дальше можно решать задачу разными путями, но у тебя еще не достаточно знаний, что бы решать такие задачи оптимальным способом, например с сортировкой используя функции sorted() и lambda. Поэтому я и говорю, что тебе еще рано решать такие задачи. Можно конечно перед циклом инициировать переменную maxNum = (0,0) и при каждом проходе помещать туда число из списка вместе с его количеством вхождений в список, если количество вхождений у этого числа больше чем в переменной maxNum . Если сможешь, то попробуй решить эту задачу таким способом, если нет, то оставь ты ее в покое и займись изучением материала дальше.
1
|
||||||||||||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 25.03.2020, 16:37 [ТС] | |
|
0
|
|
| 25.03.2020, 18:55 | |||||||
|
Добавлено через 2 часа 9 минут coa3, Для информации выкладываю код решения данной задачи, использующий алгоритм который я предложил.
1
|
|||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||
| 25.03.2020, 22:42 [ТС] | |||
|
вопрос, а если такой вход числе...? 1,2,5,4,1,1,5,5,1,5 Добавлено через 1 минуту но убедился, что этого материала не достаточно, что бы решить ту задачу, ну по крайней мере у меня ума не хватает, что бы пазлы сложились
0
|
|||
|
|
||||||||
| 26.03.2020, 00:00 | ||||||||
А для алгоритмически правильного способа понадобится аж два цикла while + сортировка (которую если реализовывать вручную, а не через встроенную функцию sorted, будет включать в себя еще два-три цикла). Так что без циклов далеко не уедешь... если захочешь ехать быстро...
1
|
||||||||
| 26.03.2020, 00:09 | ||
|
Если же тебе в теории все понятно, но ты не можешь решить какую то задачу, значит просто у тебя еще не достаточно знаний для этой задачи. Не хватайся решать что попало. Я когда придет время сам буду давать тебе задачки.
1
|
||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 26.03.2020, 23:45 [ТС] | ||
|
0
|
||
|
|
||||||
| 26.03.2020, 23:59 | ||||||
|
Разница между while и for, разумеется, есть.
Но 1) она не очень большая 2) есть задачи, где for не получится использовать (например, с ручным управляемым счетчиком - в for его нельзя изменить ) 3) ускорение коду дает алгоритм, а не вид цикла. Пример с for и count для нахождения числа с максим. числов вхождений работает в 1000 раз медленнее вот этого кода
1
|
||||||
| 27.03.2020, 03:44 | |
|
coa3, Приведу цитату из Лутца.
"при написании кода Python производительность не должна быть вашей главной задачей; первое, что вы обязаны делать для оптимизации кода Python — не оптимизировать его! Пишите код изначально с акцентом на читабельности и простоте, а затем позже оптимизируйте, если и только если в этом есть необходимость." Лутц М. Изучаем Python (том 1, 5-е издание, 2019) стр. 654. Я с его мнением согласен. Кстати, в любой сфере деятельности сначала стараются получить результат используя черновой вариант. И только решив поставленную задачу (получив нужный результат), занимаются вопросами оптимизации, доводкой до конечного продукта. Конечно, обладая большими знаниями, профессионал может сразу создавать конечный (оптимизированный) продукт. Но это только в простых задачах В сложных (крупных) задачах, сначала создается макет, потом опытный образец (работающий), и только потом занимаются его доводкой и оптимизацией. Я считаю, что на стадии изучения языка, не нужно забивать себе голову оптимизацией (достаточно беглого знакомства с вопросом оптимизации, которое дает Лутц). И только изучив язык и начав писать реальные программы, можно серьезно озаботится вопросами оптимизации, и то если только это понадобится на практике.
2
|
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
| 27.03.2020, 13:53 | ||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Ну а если вы хотите что-то знать точно - никогда не нужно верить на слово: просто возьмите и проверьте. 1) list comprehension
Ну а list comprehension на самом деле самая быстрая в Python конструкция для цикличекого обхода последовательностей. Но и то - разница в три раза между list comprehension и while не покрывает разницы между правильным алгоритмом и наивным.
1
|
||||||||||||||||||||||||||||||||||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 04.04.2020, 23:10 [ТС] | |
|
несколько дней ушло на утресение карантина введенного в крае..
в общем произошло, как я и думал, пока дойду сквозь множество страниц и букв книги, до первых упражнений на 490 страницы, забуду что было на прежних сотнях страниц и уже не помню, как выполнять эти упражнения..
0
|
|
| 05.04.2020, 01:41 | |
|
coa3, Для этого нужно использовать книгу Лутца как справочник для материала, который ты уже прошел. Так же нужно пользоваться справочником в интернете, на который я давал ссылку, что бы смотреть синтаксис инструкций. А лучше всего вести свой справочник на какой либо программе, куда заносить вновь осваиваемые инструкции с синтаксисом и со своими пояснениями. Я веду такой справочник в СУБД базы данных, и без него как без рук, вообще не могу программировать. Потому, что в памяти всего не удержишь. Но пройдя изучение я знаю, где искать нужные мне инструкции с их синтаксисом.
Я не представляю, какую нужно иметь финоминальную память, что бы помнить все наизусть. Обычный режим программирования, это со справочником под рукой, и лучше электронным, что бы быстро находить нужный материал. Просто чем больше будешь набираться опыта, тем быстрее будешь находить в справочнике нужные команды. И не надейся, что ты быстро начнешь программировать не используя справочный материал, и не заглядывая в Лутца, в те места, которые ты уже изучил. Добавлено через 8 минут coa3, Зачем тебе упражнения? Пока достаточно примеров, для того, что бы самостоятельно меняя их разбираться со всем, что тебе не понятно. На начальном этапе достаточно упражнений, которые даются в конце каждой части книги. Когда закончишь изучение функций, тогда можно будет брать задания из других источников. Тогда и я буду подкидывать тебе задания с этого форума, которые ты уже сможешь решать. Пока же тебе рано, не гони лошадей, ты ведь даже еще не знаешь функции. Добавлено через 7 минут А не зная функции ты даже не можешь правильно понять смысл синтаксиса инструкций, например именованные аргументы. Да без знания функций многое в полноценном коде не поймешь. Добавлено через 14 минут Я начал программировать самостоятельно, только когда полностью изучил книгу Лутц М. Изучаем Python (4-е издание, 2011) и первую главу из книги Лутц М. Программирование на Python. Том 1 (4-е издание, 2011) Именно первая глава книги по программированию, дала мне понимание, как нужно программировать. И только после нее, я начал писать программы самостоятельно. Но она базируется на первой книге "Изучаем Python", и читать ее не изучив первую книгу, бесполезно. Добавлено через 10 минут coa3, В общем продолжай изучать дальше и что не понятно из текста, то сразу спрашивай. Если проявишь терпение, то после изучения функций с нашей помощью начнешь понемногу набираться практики для самостоятельного программирования. Сейчас у тебя запас знаний для самостоятельного программирования еще не достаточный. Именно по этой причине Лутц не дает упражнений в начальных главах, а только примеры по ходу изложения материала.
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
||
| 05.04.2020, 18:36 [ТС] | ||
|
0
|
||
| 05.04.2020, 21:15 | ||
|
Поэтому задания из других источников могут приводить к таким эмоциональным срывам как у тебя. А причина всего лишь в том, что у тебя еще не достаточный объем знаний, что бы делать такие задания, которые ты берешь со стороны. Что касается упражнений, которые дает Лутц, то ничего страшного, если ты не сможешь их сделать самостоятельно. При затруднениях обращайся сюда и мы их разберем. Любые упражнения, которые ты если даже не сделал сам, но понял после их разбора, добавляют тебе опыта, который со временем позволит тебе начать писать программы самому. Пойми на конец такую вещь, что бы начать программировать самому, нужно пройти полный курс обучения. А пока разбирайся только с теми примерами и упражнениями, которые дает тебе Лутц. И он не зря дает решения в приложении, потому, что предполагается, что ты и не решишь их сам, но должен понять решение, хотя бы и с предоставленным решением в конце книги.
1
|
||
| 06.04.2020, 13:03 | ||||||
|
coa3, Вот еще что. Так как тобой пока пропущены несколько глав углубленного изучения строк , списков, словарей и т.д. ( вернешься к ним после изучения функций), то в упражнениях или примерах могут встречаться случаи, требующие знания из пропущенных глав. В таких случаях или сам находи нужную информацию в пропущенных главах, используя их как справочник или спрашивай здесь, я объясню.
Так как в упражнениях на стр.490 так же требуются знания из пропущенных глав, то поступим следующим образом. Ты выкладываешь здесь очередное упражнение, и я даю информацию из пропущенных глав, которая нужна для решения этого упражнения. После этого ты пробуешь решить это упражнение. Добавлено через 1 час 5 минут coa3, Что бы не затягивать, выкладываю сам первое упражнение и даю дополнительную информацию для его решения. 1. Написание базовых циклов. В данном упражнении предлагается поэкспериментировать с циклами for. а) Напишите цикл for, который выводит код ASCII каждого символа в строке по имени S. Для преобразования символа в целочисленный код ASCII используйте встроенную функцию ord(символ). Формально функция ord в Python З.Х возвращает кодовую точку Unicode, но если вы ограничите содержимое строки символами ASCII, то будете получать обратно коды ASCII. (Опробуйте ее интерактивно, чтобы посмотреть, как она работает.) Не по теме:
Исходя из выше сказанного следует, что в упражнении строка должна состоять только из английских букв (закодированных в ASCII) Для решения данной задачи используй функцию ord().
Добавлено через 7 минут coa3, Еще раз поясню, как работает цикл for. Пусть у вас список L из 100 чисел и Вам нужно каждое число возвести в куб. Вы будете писать код состоящий из ста строк ? 1**3 2**3 3**3 4**3 5**3 и так далее. Не употеете? ![]() Во-первых, что бы упростит написание кода, нам нужен механизм, что бы брать по одному элементу из списка. В цикле for это обеспечивает шапка цикла for i in L: На каждом шаге в переменную цикла i цикл for последовательно помещает по одному элементу из списка L. И на этом шаге в теле цикла выполняются некоторые действия с этим элементом. В нашей задаче элемент (число) возводится в куб x = i**3 и затем помещается в новый список L3.append(x) И так последовательно делается для всех элементов списка. Когда цикл пройдет по всем элементам, он автоматически прекратит работу и передаст управление инструкции, идущей за циклом. То есть цикл for последовательно для каждого элемента из списка выполняет одни и те же действия, расположенные в теле цикла.
0
|
||||||
| 07.04.2020, 11:38 | |
|
coa3, По поводу Unicode в питоне требуется уточнение. В питоне рассматриваются понятия, 8 битная кодировка (просто байт), 16 битная кодировка (обозначается с помощью символа x , экранированная запись \xhhh , шестнадцатеричное число 0xhhh), и 32 битная кодировка (обозначаемая символом u, экранированная запись \uhhhh). 32 битную кодировку называют в питоне кодировкой unicode, хотя все эти кодировки соответствуют стандарту кодирования Unicode. Из за токого подхода у некоторых программистов возникает не понимание, что такое Unicode.
Итак Unicode - это стандарт, который устанавливает требования к созданию современных кодировок. Они могут быть 8, 16 и 32 битные. В питоне же unicode называют 32 разрядную кодировку используемую внутри питона.
0
|
|
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|||||||||||||
| 08.04.2020, 12:42 [ТС] | |||||||||||||
0
|
|||||||||||||
| 08.04.2020, 17:12 | ||
|
100 чисел даст range(100) -> (0, 1, 2, ... 99) Если нужны числа от 1 до 100 то будет так range(1, 101) -> (1, 2, 3, ... 99, 100) coa3, по поводу второго упражнения, у меня было сомнение, что у Лутца не четко дано понятие, что такое S. Возможно корявый перевод. Под S в этом упражнении подразумевается не строка, которая будет на выходе, а исходная строка, которую нужно обработать. Возьми какое нибудь английское слово, это и будет строка S. Затем напиши код, который выведет список чисел, которые являются кодами для букв в заданном тобой английском слове, то есть взятых из строки S. Попробуй еще раз написать код для этого упражнения. Как правило почти любое упражнение в питоне можно решать разными способами. Здесь нужно вывести на экран коды. Это можно сделать сформировав список L этих кодов, и затем распечатать этот список после завершения цикла. А можно просто на каждом шаге цикла печатать код очередного символа, разместив print() внутри тела цикла. Напиши коды для обоих вариантов решения. Добавлено через 7 минут coa3, Да, и кстати. Ты дошел до этих упражнений на стр. 489-490 ? Тогда по одному здесь выкладывай и будем их разбирать. Если же ты до них еще не дошел, то пока подожди их решать, так как ты мог еще не изучить весь материал, который требуется для решения этих упражнений.
1
|
||
|
1 / 1 / 0
Регистрация: 27.02.2020
Сообщений: 101
|
|
| 08.04.2020, 22:47 [ТС] | |
|
0
|
|
| 10.04.2020, 18:00 | |
|
coa3, Освежил в памяти информацию о кодировке по стандарту Unicode. Оказывается я в комментарии выше не совсем правильно рассказал про этот стандарт. Подробная информация про стандарт Unicode и про кодировку utf-8 в Википедии по ссылкам
https://ru.wikipedia.org/wiki/... 0%BE%D0%B4 https://ru.wikipedia.org/wiki/UTF-8 Кликните здесь для просмотра всего текста
И так вкратце суть вопроса.
Стандартом Unicode всем возможным символам, которые могут использоваться, поставлены в соответствие целые числа. То есть создана таблица, где всем мыслимым символам поставлены в соответствия конкретные числа (числа обычно выражаются в шестнадцатеричной форме, но могут выражаться и в десятичной, это не имеет значения). В этом же стандарте определены ряд конкретных кодировок, то есть способы размещения в компьютере этих чисел в двоичном формате в виде нулей 0 и единиц 1. Количество символов в таблице стандарта Unicode огромно и для того, что бы записать любое число в двоичном коде с помощью нулей 0 и единиц 1, даже двух байт (16 бит) может оказаться не достаточно. Поэтому для разных диапазонов символов могут использоваться разные кодировки, 8 бит, 16 бит, 32 бита, то есть 1 байт, 2 байта или 4 байта. Отсюда в Unicode определены такие кодировки 8-bit, 16-bit, 32-bit. Но в стандарте Unicode определен такой универсальный код utf-8, который любое число (для соответствующего символа) размещает в таком количестве байтов, которое для него достаточно. То есть каждому символу может соответствовать количество байт из диапазона от 1 до 4. Такая кодировка медленнее чем кодировка с фиксированным количеством байт, но значительно компактнее (то есть занимает значительно меньше места). Кодировка utf-8 сейчас является преобладающей в мире. А теперь несколько выдержек из Википедии. Юнико́д[1] (чаще всего) или Унико́д[2] (англ. Unicode) — стандарт кодирования символов, включающий в себя знаки почти всех письменных языков мира[3]. В настоящее время стандарт является преобладающим в Интернете. Стандарт предложен в 1991 году некоммерческой организацией «Консорциум Юникода» (англ. Unicode Consortium, Unicode Inc.)[4][5]. Применение этого стандарта позволяет закодировать очень большое число символов из разных систем письменности: в документах, закодированных по стандарту Юникод, могут соседствовать китайские иероглифы, математические символы, буквы греческого алфавита, латиницы и кириллицы, символы музыкальной нотной нотации. Стандарт состоит из двух основных частей: универсального набора символов (англ. Universal character set, UCS) и семейства кодировок (англ. Unicode transformation format, UTF). Универсальный набор символов перечисляет допустимые по стандарту Юникод символы и присваивает каждому символу код в виде неотрицательного целого числа, записываемого обычно в шестнадцатеричной форме с префиксом U+, например, U+040F. Семейство кодировок определяет способы преобразования кодов символов для передачи в потоке или в файле. UTF-8 от англ. Unicode Transformation Format, 8-bit — «формат преобразования Юникода, 8-бит») — распространённый стандарт кодирования символов, позволяющий более компактно хранить и передавать символы Юникода, используя переменное количество байт (от 1 до 4), и обеспечивающий полную обратную совместимость с 7-битной кодировкой ASCII. Стандарт UTF-8 официально закреплён в документах RFC 3629 и ISO/IEC 10646 Annex D. Кодировка UTF-8 сейчас является доминирующей в веб-пространстве. Она также нашла широкое применение в UNIX-подобных операционных системах[1]. Формат UTF-8 был разработан 2 сентября 1992 года Кеном Томпсоном и Робом Пайком, и реализован в Plan 9[2]. Идентификатор кодировки в Windows – 65001[3]. UTF-8, по сравнению с UTF-16, наибольший выигрыш в компактности даёт для текстов на латинице, поскольку латинские буквы без диакритических знаков, цифры и наиболее распространённые знаки препинания кодируются в UTF-8 лишь одним байтом, и коды этих символов соответствуют их кодам в ASCII.[4][5] Буквы современного русского алфавита расположены в диапазоне U+0401 - U+044F шестнадцатеричный формат 1025 - 1103 десятичный формат
1
|
|
| 10.04.2020, 18:00 | |
|
Определите значение второго по величине элемента в этой последовательности (использовать рекурсию) Определите значение второго по величине элемента в этой последовательности
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
|
|
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701
Купил два термопринтера QR701.
На сэлф-тесте написано:
Language: PC936 (GB18030).
Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
|
Создание формы заимствованного документа
Maks 03.08.2026
Задача:
Необходимо создать собственную форму заимствованного документа. На форме должен быть реквизит "Покупатель", а также
табличная часть со следующими реквизитами:
- Расчетный счет покупателя. . .
|
Задача предоставления скидок покупателям
Maks 03.08.2026
Задача:
В документе "Продажи" необходимо реализовать функционал предоставления скидок покупателям. Скидка должна автоматически рассчитываться и подставляться в соответствующее поле при выборе. . .
|
Почему SEO не начинается с ключевых слов: что проверить до написания текстов
Neotwalker 01.08.2026
Когда владельцу сайта предлагают заняться SEO, первым шагом часто становится сбор запросов и написание текстов.
Логика кажется понятной:
1. Находим ключевые слова.
2. Добавляем их на. . .
|