Алгоритмы на Python 3. Лекция №5

  Рет қаралды 459,581

Тимофей Хирьянов

Тимофей Хирьянов

Күн бұрын

Пікірлер: 564
@ДмитрийЗинченко-м6с
@ДмитрийЗинченко-м6с 4 жыл бұрын
Вот я честно не понимаю, на сколько нужно быть правильным человеком и учебным заведением, что бы такую информацию выкладывать бесплатно и в таком качестве. Большое спасибо вам за работу, от всего интернет сообщества России. Думаю я не преувеличил. Большая, полезная, великолепная работа для развития всей страны.
@rio5121
@rio5121 3 жыл бұрын
Это современный взгляд, испорченный капитализмом. При союзе образование было бесплатным.
@vanadoo5836
@vanadoo5836 3 жыл бұрын
Поддерживаю!
@quddi
@quddi 3 жыл бұрын
@@rio5121 если вспомнить все, что было при нем, то лучше уж так, как сейчас
@ivanprokofyev
@ivanprokofyev 3 жыл бұрын
@@quddi, если бы еще знать хоть что-то о "нем".
@ivanprokofyev
@ivanprokofyev 3 жыл бұрын
Сильно преувеличиваешь, похоже, что в силу идеалистических представлений об окружающем мире и в силу того, что "слаще морковки" ничего не пробовал, т.е. не знаешь, что такое образование, которое направлено на подготовку специалистов, а не на штамповку компетентных потребителей. Какую такую информацию, в каком качестве? Сплошное самолюбование автора и ни дидактики, ни методики, ничего-то особенного. Современное образование, это заигрывание с УО, с набалованными детишками, это снижение требований и сложности для того, чтобы набрать необходимое количество молодых балбесов для з/п преподов ну и немного или много в карман положить. Это не про образование все, это все про профанацию и свободный рынок.
@iritaka
@iritaka 4 жыл бұрын
Тайм-коды: Массивы, тип list 1:30 Список (list) как массив данных. Массив - такой способ доступа к данным, когда есть 1 имя и сразу много данных 4:15 for x in A: 8:18 модель данных в Python. Как хранятся данные. Есть изменяемые и неизменяемые типы (объекты) 9:05 числа являются константами. Неизменяемый тип 9:52 ссылочная модель связи имени и объекта 13:30 доступ к элементу массива по индексу. У первого элемента - индекс 0. Поэлементный доступ к массиву 17:31 А = [0] * 1000 # создание массива А с тысячью нулей 19:08 уровень заполненности массива. Top 25:42 удаление элемента из конца и начала массива 27:12 копирование массива. поэлементное копирование. копирование задом-наперёд 29:58 хотя имена а Питоне создаются методом присваивания в них, нельзя сделать С = А, чтобы сделать копию списка 30:36 ссылочная модель данных в Python 32:46 изменяемость списка. list - изменяемый объект 33:34 int неизменяемый объект. Число по ссылке изменить нельзя 35:40 C = list(A) # чтобы сделать дубликат списка. копию 36:20 линейный поиск в массиве 36:52 в параметрах функции можно уточнить тип параметра (после двоеточия) 39:22 тестирование 47:16 функция с pass возвращает None type (тип Ничего) - специфическая переменная 49:19 алгоритм обращения массива 1:03:03 добавление элемента в конец и в начало массива 1:04:06 алгоритм циклического сдвига в массиве. влево 1:08:55 вправо 1:10:40 алгоритм решето Эратосфена 1:12:24 bool неизменяемый тип 1:13:38 if A[k] # если A[k] равен True 1:17:18 тернарный оператор
@cracoh
@cracoh 4 жыл бұрын
спасибо вам!
@igoweiqibaduk8283
@igoweiqibaduk8283 3 жыл бұрын
Иритака, ты очень очень очень хороший человек! Твои таймкоды круче яндекса и гугла вместе взятых!
@iritaka
@iritaka 3 жыл бұрын
@@igoweiqibaduk8283 Ну Очень приятно! Спасибо огромное!!
@ivanprokofyev
@ivanprokofyev 3 жыл бұрын
Массив, это не способ доступа, а структура данных. Под способом доступа можно понимать тот или иной конкретный синтаксис или работу интерпретатора.
@iritaka
@iritaka 3 жыл бұрын
@@ivanprokofyev хорошее замечание
@YellowNoski
@YellowNoski 5 жыл бұрын
Вот это я понимаю - класс! Человек просто взял и на примере кнопок в лифте и наименовании этажей во Франции идеально объяснил логичность индексации с 0. Браво!
@evheniihoroshko1161
@evheniihoroshko1161 3 жыл бұрын
Здоровья вам Тимофей Хирьянов. Как хорошо что я нашел ваш канал. Читать статьи разные что такое стр инт и т.д. Окей базовые понятие , а тогда думаешь а чего же дальше начать, думал нужно учить синтаксисы ,а они оказываются непостоянны и меняются. То что вы раскладывание по полочкам облегчает мне и другим жизнь Я люблю чтобы всё было от и до и с рассказано почему так ( по каким правилам ) А не то что в интернете говорят общие понятия - что должно быть так и никак иначе А потом у меня другие вопросы и ищешь в интернете на свой же вопрос ответ.
@Леонид-с5з
@Леонид-с5з 4 жыл бұрын
- Список как массив данных (1:24): - Перебор списка по порядку (просто вывод элементов без возможности изменения их в списке): 4:04 - Модель данных в Питоне (как получить доступ к самим объектам в списке и манипулировать ими): 7:48 - Как создавать длинные списки (которые проблематично создавать вручную): 17:27 - Добавление элементов в список с помощью цикла while: 18:58 - Вывод чисел из списка в обратном порядки с помощью цикла for: 23:54 - Удаление элементов из списка: 25:42 - Копирование массива: 27:08 - Сокращенный вариант копирования списка через list: 35:40 - Линейный поиск в массиве: 36:13 - Написание функции тестирования: 39:43 - Алгоритм обращения массива: 49:12 - Добавление эл. в конец и в начало массива: 1:03:03 - Алгоритм циклического сдвига: 1:03:47 - Решето Эратосфена: 1:10:40
@Andrei-de6mf
@Andrei-de6mf 3 жыл бұрын
И? Это любой студент знает?
@МихаилЛелюхин
@МихаилЛелюхин 5 жыл бұрын
Такие знания . Бесплатно . Бескорыстно . Настоящий русский Учёный .
@Berseny
@Berseny 4 жыл бұрын
Знания бесплатно и бескорыстно -- это про коммунистов, а не про ррррусских. Ведь какой-нибудь буржуй, наживающийся на интеллектуальной собственности, не перестает от этого быть ррррусским буржуем. Верно? Правильно сформулировать: прогрессивный ученый левых взглядов (даже если он сам лепит чушь про какую-то нравственность в лагере праваков). По поступкам товарищ вполне себе марксист. =))
@beria_
@beria_ 4 жыл бұрын
@@Berseny у тебя шлак в голове
@Berseny
@Berseny 4 жыл бұрын
@@beria_ Да неужели? А у тебя точно шлака в башке нет? А? Уверен? =) Наивный человечишко. =)
@Berseny
@Berseny 4 жыл бұрын
@@Русь-Родина А пока с чужого канала, это не бескорыстно? Нет, ну если ему заплатил кто-то за съемку уроков... Ну хз. Здесь бескорыстность не в том, что человек ничего не получил за свой труд педагога, это был бы альтруизм. Бескорыстие в том, что всеми знаниями вправе воспользоваться всякий человек. Интеллектуальная собственность -- зло!
@Berseny
@Berseny 4 жыл бұрын
@@Русь-Родина Являясь достоянием всего человечества, это уже не интеллектуальная собственность, а общечеловеческое богатство. Я имел в виду, конечно же, частную собственность на знания, ну или собственность корпоративную. Ну когда остальные обязаны платить и покупать каждый раз, когда им необходимо, а у продавцов от этого не убывает. Уродливая система капитала, античеловеческая. Сделали из знаний подобие валюты, которая призвана приумножать их капиталы. Причем авторы к этим продажам зачастую не имеют никакого отношения. Они трудились на корпорацию, вот она и присвоила все их наработки. А человек просто раб, получил зарплату и всё! Никакой интеллектуальной ренты, хрен в зубы, и грызи. =) В общем, паразитическая система.
@ждувесну
@ждувесну 3 жыл бұрын
За такое преподавание педагоги должны получать большую зарплату и входить в селебрити) давно пора записывать и выкладывать лекции, чтобы отсеять и поувольнять тех, кто бубнит себе под нос, путается в показаниях и кого тоска зеленая слушать) спасибо за увлеченность и добросовестность
@elliottroot513
@elliottroot513 4 жыл бұрын
Я Вас очень сильно уважаю. Словами не передать как я счастлив смотреть Ваши лекции
@Dimonitos
@Dimonitos 5 жыл бұрын
Хорошие емкие лекции. Спасибо за материал. Было бы гораздо удобнее если в названии будет тема лекции! Например: "Алгоритмы на Python 3. Лекция №5 (Массивы)"
@CurlyBeaver
@CurlyBeaver 4 жыл бұрын
То чувство, когда в бесплатных лекциях на youtube человек объясняет проще и понятнее, чем в купленных мной платных онлайн-курсах за 30к... Жаль, что нельзя пожать руку, очень талантливый преподаватель!
@Mishanya00
@Mishanya00 2 жыл бұрын
Ну так это не просто человек, а преподаватель МФТИ, квалифицированнее некоторых преподов курсов будет
@ИсмоилХакимов-р8щ
@ИсмоилХакимов-р8щ Жыл бұрын
с курсами за 150к тоже самое... у меня столько стоит
@elenam4339
@elenam4339 Жыл бұрын
зачем сравнивать университетское образование и онлайн-курсы ))
@iml404
@iml404 6 ай бұрын
еще бы изначально учил правильно переменные называть - цены бы не было. А то лист с именем A и элементы с именем x это фигня полная, за такое на реальных проектах больно бьют по шапке. С заглавной буквы вообще принято называть классы
@kurchiparchi
@kurchiparchi Ай бұрын
Тимофей Федорович, низкий Вам поклон за ёмкую и познавательную лекцию!
@True_Ulatim
@True_Ulatim 5 жыл бұрын
Вы великолепный преподаватель. Смотрю все ваши лекции с превеликим удовольствием и на 6-й лекции могу с уверенностью сказать, что именно этого мне не хватало при кодировании. Я уже пишу на питоне телеграмм ботов и работаю с БД но это все занимало очень много времени так как не всегда было достаточно понимания как это работает. Все конечно же гуглилось но до конца понять, что то все-таки не мог.
@westend_school
@westend_school 4 жыл бұрын
почему-то не нашел 6ю лекцию. она еще активна?
@psychicks3463
@psychicks3463 2 жыл бұрын
@@westend_school kzbin.info/www/bejne/hH3UaKF4bseJZq8
@3405-j2w
@3405-j2w 4 жыл бұрын
Спасибо Вам за уроки! Пусть ваша деятельность будет всегда успешной, доброго счастья вам, крепкого здоровья и уважения.
@АнтонВладимирович-ъ8ы
@АнтонВладимирович-ъ8ы 5 жыл бұрын
Спасибо Вам за уроки! Замечательная подача материала!!!
@volodimirbatalov7442
@volodimirbatalov7442 4 жыл бұрын
мозга кипит, но мне нравится, спасибо Тимофею большое... много вещей, подробно, наглядно, даже вопросов не возникает...
@sergejkaznov2677
@sergejkaznov2677 4 жыл бұрын
НАСТОЛЬКО ПРОСТЫМ ЯЗЫКОМ И ТАК ИНТЕРЕСНО УВЛЕКАТЕЛЬНО ПОБОЛЬШЕ БЫ ТАКИХ УЧИТЕЛЕЙ 👍👍👍☝️👍👍👍
@patrickspilmann5008
@patrickspilmann5008 3 жыл бұрын
Тимофей, БРАВО! СПАСИБО! Вы ЛУЧШИЙ преподаватель!!!!
@alexmak8305
@alexmak8305 5 жыл бұрын
за "шо це таке" на 58:18- отдельный лайк!!!)
@andreyvbvbvb
@andreyvbvbvb 5 жыл бұрын
На секунды две поздно напсал
@mihakgma
@mihakgma 4 жыл бұрын
не уразумив ы не побачив) шо це такэ?)
@sanjarkenjayev7368
@sanjarkenjayev7368 3 жыл бұрын
а что такое шо це текэ ? из Мариуполя препод
@Kostya_kzn
@Kostya_kzn 5 жыл бұрын
Правильно говорят: "Если преподаватель не может объяснить 6 летнему ребенку, то он сам не разбирается в предмете!". Лекции просто чудо!!! В четко, ясно и понятно.
@rinatsarmuldin8118
@rinatsarmuldin8118 4 жыл бұрын
Талант и интелект вот это человек с большой буквы!
@MarkNikita1
@MarkNikita1 2 жыл бұрын
Огромное спасибо за уроки! Вместе с вами учиться намного приятнее и легче)
@RuslanZinovyev
@RuslanZinovyev 4 жыл бұрын
Решето Эратосфена гениально расписан на Пайтоне, просто красота, так круто когда на память на доске можешь его написать.
@shaykhinurov
@shaykhinurov Жыл бұрын
Так, эту лекцию посмотрел, теперь не запутаться, в следующий раз смотреть следующую.
@aezakmi50872
@aezakmi50872 5 жыл бұрын
Спасибо за лекции . Очень познавательный матерьял . Мне как программисту .Вы оказали огромную помощь .
@ZlataDobrovolny
@ZlataDobrovolny 3 жыл бұрын
Это гениально! Блокбастер по программированию!
@gornakovs
@gornakovs 2 жыл бұрын
Спасибо тебе Добрый человек за эти лекции
@mariyaalberdina9917
@mariyaalberdina9917 2 жыл бұрын
Очень здорово! Обучение это очень важно, хорошо что вы есть и так хорошо делаете свою работу!
@shadedeveloping4705
@shadedeveloping4705 4 жыл бұрын
Преподаватель: "Лабы пропускать нельзя" Я за компом: ....
@yevhenukrainianer4781
@yevhenukrainianer4781 6 жыл бұрын
Тернарный особо порадовал. Спс за лекцию.
@anatoliiljin6870
@anatoliiljin6870 2 жыл бұрын
Спасибо! Вы самый лучший преподаватель!
@konstantinselivanov8513
@konstantinselivanov8513 3 жыл бұрын
Тимофей, вы лучший! Спасибо!
@Qwerty-fn3rf
@Qwerty-fn3rf 5 жыл бұрын
препод от бога
@konst2087
@konst2087 2 жыл бұрын
пользуясь несколько лет срезами на уровне рутины я даже и не выдумывался в такие нужные вещи
@yesugibe7041
@yesugibe7041 5 жыл бұрын
Спасибо за материал и отличную подачу!
@AnastasiaKorosteleva_SPb
@AnastasiaKorosteleva_SPb 5 жыл бұрын
лектор очень душевный!
@_pheax
@_pheax 4 жыл бұрын
спасибо, Тимофей Фёдорович
@ЕкатеринаАндреева-ц3ю3э
@ЕкатеринаАндреева-ц3ю3э 2 жыл бұрын
Вообще интересное объяснение логичности индексации с нуля. Забавное. Строго говоря во Франции нет нулевых этажей (хотя кнопка ноль в лифте присутствует). Первый этаж в нашем понимании по французски это Rez-de-chaussée произносится что-то вроде Редшосэ и переводится как «рядом с дорогой из известняка» или «на уровне дороги из известняка». Я так понимаю по нашему это земляной пол :). Даже в лохматой древности у нас не было в традиции строить дома с земляным полом, климат не тот. :) Поэтому вероятно у нас всё начинается с первого этажа, а не с нулевого.
@АлексАлексов-ф4о
@АлексАлексов-ф4о 4 жыл бұрын
Лекции класс не возможно уснуть , подписался..
@maratgabitov
@maratgabitov 3 жыл бұрын
23:07 Всё понятно, топ лекция, продолжайте) (молчание - это глубокая заинтересованность)
@СтепанБендеров
@СтепанБендеров 4 жыл бұрын
58,11 B = [1, 2, 3, 4, 5] C = [ ] for k in range (len(B)-1,-1,-1): C += [B[k]] for k in range (len(C)): B[k] = C[k]
@vitalikos2010
@vitalikos2010 5 жыл бұрын
Последние 8 минут видео сделали мой день...
@НиктоНиктоев-щ7ю
@НиктоНиктоев-щ7ю 5 жыл бұрын
Тимофей Федорович, спасибо Вам большое за публикации своих курсов на ютубе! У меня возникло одно замечание, я его выскажу, не сочтите за неуважение. Я как будто заметил, что некоторые вещи людям непонятны, на первом курсе у студента ветер в голове) да и мне тоже иногда трудно) вот к примеру эти списки, а зачем они вообще нужны? А если непонятно зачем этот инструмент нужен, трудно в нем разобраться. Не лучше ли подавать материал с практической точки зрения? т.е. вот к примеру есть задача с помощью питона проанализировать введеные данные к примеру значения температуры (или я не знаю что еще))), и вот для этого можно применить такую вещь как списки, и вот так-то они устроены и т.д. или же еще на первой лекции можно было поставить задачу написать примитивный калькулятор, и параллельно объяснить все базовые вещи. ну как то так, спасибо)
@Lexfr0mkhar
@Lexfr0mkhar 5 жыл бұрын
Приятно слушать и созерцать!
@userr19194
@userr19194 3 жыл бұрын
*в конце лекции как всегда "отжигаете"))*
@tkhirianov
@tkhirianov 3 жыл бұрын
Заинтриговали. Не понял на какой именно минуте и что именно вы имеете в виду.
@userr19194
@userr19194 3 жыл бұрын
Для начала, раз Вы мне ответили, хочу поблагодарить Вас за эти лекции. Очень интересно и доступно объясняете. Занимаюсь с удовольствием. А насчёт "отжигаете", я имел ввиду, что в конце лекций Вы часто в сжатые сроки объясняете сложные моменты :) И благо, я могу перемотать, посмотреть и обдумать несколько раз. На живой лекции я бы такой роскошью не обладал :)
@BoldBass24
@BoldBass24 4 жыл бұрын
Комментарий в поддержку контента.
@vaal5500
@vaal5500 4 жыл бұрын
Спасибо за прекрасную лекцию)
@alekseytrump1586
@alekseytrump1586 3 жыл бұрын
Спасибо за лекции. Лучшие!!!
@ntvisigoth
@ntvisigoth 2 жыл бұрын
1:18:46: Тернарный оператор рекомендую попробовать так: (alternative_false, alternative_true)[your_check] Пример: ('Number is prime', 'Number is complex')[is_number_prime(number)] Это связано с тем, что True, False преобразуются в цифры 0 и 1, а их можно использовать в качестве индекса. Сравним эту и тернарную форму: 1. ('Number is complex', 'Number is prime')[is_number_prime(number)] 2. 'Number is prime' if [is_number_prime(number)] else 'Number is prime' Возможно, дело вкуса. Но мой вариант, мне кажется, выглядит привлекательнее
@dmitrijloskutnikov694
@dmitrijloskutnikov694 2 жыл бұрын
48:50 Гениально. 1:00:51 Я это ивертирование мучил за пару дней до просмотра видео. И прошёл по всем граблям, что тут показаны.
@Siren476
@Siren476 6 жыл бұрын
Ну почему понимаешь, что надо было учиться, когда тебе уже сороковой десяток идёт? Сейчас бы с удовольствием сидела бы среди этих студентов..
@ДенисКатанугин-ц2е
@ДенисКатанугин-ц2е 6 жыл бұрын
Сороковой десяток или все таки четвёртый?
@Siren476
@Siren476 6 жыл бұрын
Денис Катанугин Да, долго я необразованная живу)
@danalexpiano
@danalexpiano 6 жыл бұрын
Stacy Miller не надо вам в программисты ))))))
@фокусмокус-я2з
@фокусмокус-я2з 6 жыл бұрын
)
@b.g.5106
@b.g.5106 5 жыл бұрын
@@danalexpiano программисты не люди))))
@ruslanways
@ruslanways 2 жыл бұрын
16:00 с версии Python 3 - PEP рекомендует использовать enumerate, если хотим получать индексы.
@memprus
@memprus 5 жыл бұрын
Во втором гуманитарном корпусе МГУ, где сидит факультет ВМиК 9Вычислительная Математика и Кибернетика), лифт от 0 до 7)))
@777richok
@777richok 3 жыл бұрын
В лектории очень тихо, потому что лекция увлекательная!
@rustam.turaev
@rustam.turaev 4 жыл бұрын
Спасибо, продолжаю изучение с удовольствием)
@PodsasBoosty
@PodsasBoosty 5 жыл бұрын
21:10 Тишина, понятно да? да! значит ничего не понятно)
@BeginBye
@BeginBye 6 жыл бұрын
1:02:27 к N//2 в range нужно еще прибавить единицу, иначе итераций цикла будет недостаточно для достижения середины заданного участка списка. Ну и в конце еще нужно дописать, чтО функция будет возвращать, согласно поставленной задаче - фрагмент обращенного списка, определенного числом N. Таким образом, законченное решение будет следующим: for k in range(N//2 + 1): A[k], A[N-1-k] = A[N-1-k], A[k] return A[:N] А вообще - решение классное. Спасибо, Тимофей Федорович! Я, пока смотрел, поставил на паузу и решил задачу двумя способами: 1. используя метод .reverse(), и применив его к нужному фрагменту списка, определенного числом N: fragment = A[0:N] fragment.reverse() return fragment 2. создавая пустой список и наполняя его в цикле с помощью .append(), инициировав обратный счет от N-1 до -1: reversed_list = [] for i in range(N-1, -1, -1): reversed_list.append(A[i]) return reversed_list Ваш метод был не очевидным, и по этой причине - классным и ценным! Спасибо!!!
@denyslozinskyi7322
@denyslozinskyi7322 6 жыл бұрын
Evgeniy Cheremisinov относительно возвращения списка функцией ваше утверждение справедливо только в том случае, если в результате ее работы нас будет интересовать ВЕСЬ обращённый список. Но задача ведь стоит иная: "Обращение массива в рамках индексов от 0 до N-1", т.е. не весь массив, а его часть, отмеченная N. Поскольку N не обязательно будет совпадать с последним индексом списка, возврат участка имеет смысл.
@BeginBye
@BeginBye 6 жыл бұрын
Evgeniy Cheremisinov да, просчитался вчера насчёт единицы. Она там не нужна, спасибо. А насчёт возврата функции - нам же не весь список вроде как нужен, а его фрагмент с начала до N, насколько я понял постановку задачи.
@BeginBye
@BeginBye 6 жыл бұрын
Evgeniy Cheremisinov да, тут все зависит от постановки задачи) я понял иначе. Тем не менее, моя строчка возврата функцией заданного фрагмента обращённого списка добавляет функции универсальности и гибкости, так как позволяет получить результат как в работе с целым списком, так и с его фрагментом)
@devour_dead
@devour_dead 5 жыл бұрын
Чорт! Такой препод, что мне хочется все бросить и бегом программировать, писать самые простые вещи, тупить, ломать голову, снова тупить, решать и дальше дальше дальше. Все четко, системно, понятно, мозги шевелятся.
@rkevlarovich3653
@rkevlarovich3653 4 жыл бұрын
Тимофей, ну где ты был (да и я тоже) лет эдак 22 назад? )))) мне бы таких преподов (еще раз повторюсь) в универе, я бы стал точно программистом. А сейчас приходится самообразованием заниматься - что абсолютно несложно несмотря на пройденное время и возраст))) Спасибо и удачи!
@harislam86
@harislam86 2 жыл бұрын
"Лукавлю я, конечно... Слава Богу, что вы Питон не знаете" 🤣🤣🤣🤝🏻
@АлексейПилин-б2ф
@АлексейПилин-б2ф 3 жыл бұрын
Такой жирный лайк поставил, что чуть телефон пальцем не раздавил
@maxchel5901
@maxchel5901 Жыл бұрын
1:11:11 решето Эратосфена
@MrEvgeny57
@MrEvgeny57 3 жыл бұрын
В "решете" во втором цикле просева составных чисел в range вместо 2*k лучше использовать k**2. Все до него будут составные, отфильтрованные предыдущими итеррациями
@ВаллиВалли-у1р
@ВаллиВалли-у1р 5 жыл бұрын
Не не скучно , а интересно
@maratimus
@maratimus 5 жыл бұрын
N =int(input()) A = [True] * N for i in range(2, N-1): if A[i]: print(i) for j in range(i*i, N-1, i): A[j] = False
@maratimus
@maratimus 5 жыл бұрын
Здесь по другому через квадрат, тоже работает
@ФедякинРоман
@ФедякинРоман 3 жыл бұрын
def make_primes_list(num): primes = [] sieve = [x for x in range(2, num + 1)] while sieve: prime = sieve[0] primes.append(prime) sieve = [x for x in sieve if x % prime != 0] return primes Более читабельный вариант решета Эратосфена для тех, кто умеет в list comprehensions
@idontknow3489
@idontknow3489 5 жыл бұрын
30:00 легче вот так) from random import randint N = 5 A = B = [0] * N for k in range(N): B[k] = A[k] = randint(0,10) #запихивает рандомные числа в список
@arnoldd5345
@arnoldd5345 4 жыл бұрын
Класс!
@ФедякинРоман
@ФедякинРоман 3 жыл бұрын
Можно еще проще: B = A = [randint(0, 10) for _ in range(N)]
@ФедякинРоман
@ФедякинРоман 3 жыл бұрын
А если N прилетает из инпута, то в одну строчку: B = A = [randint(0, 10) for _ in range(int(input()))]
@Вадим-г6м9я
@Вадим-г6м9я 2 жыл бұрын
Шо це таке) Це було прикольно) Ніколи штірліц не був так близько від провалу) ))
@YourLanguageHelp
@YourLanguageHelp 5 жыл бұрын
24:45 не "4", а "top - 1"
@user-ck2sb2uc2b
@user-ck2sb2uc2b 4 жыл бұрын
Пока студенты молчат , я разговариваю с ПК ...
@quadroninja2708
@quadroninja2708 3 жыл бұрын
Мне кажется, они задумались, а преподаватель пошел вперёд мысли студентов, вроде пытаешься понять, но нужно догонять и не до вопросов
@lonelydance
@lonelydance 3 жыл бұрын
29:58 Признак хорошего тона - копировать лист через срезы: C = A[:]
@8nhuman8
@8nhuman8 3 жыл бұрын
лучше использовать метод copy(). Читабельнее
@АлександрЛагутов-д8г
@АлександрЛагутов-д8г 3 жыл бұрын
@Тимофей Хирьянов, доброго времени суток. В Контесте для групп 737 и 738. Задание D, даётся последовательность чисел, однако в тестах с 6 по 10 дается список. И судя по проверкам, необходимо переместить последний элемент в начало. В самом задании об этом ни чего не сказано. 1-й семестр, 6-я неделя (группы 737-738
@tkhirianov
@tkhirianov 3 жыл бұрын
@Александр Лагутов Спасибо большое за фидбек! Действительно, в тестах к заданию ошибка. Только это не список, а просто числа даны в строку. Я бы выкинул тесты с 6-го по 10-й или изменил их, но прямо сейчас у меня нет доступа к тестам на этом сервере. Я написал сисадмину с запросом доступа, но пока не могу вам помочь.
@tkhirianov
@tkhirianov 3 жыл бұрын
Напишите мне персонально в Telegram через несколько дней с копией вашего сообщения. Я могу забыть про эту проблему, а доступ к тому времени мне скорее всего уже дадут.
@yulii1171
@yulii1171 4 жыл бұрын
Очень интерессно. Спасибо
@СергейОрлов-я5с
@СергейОрлов-я5с 4 жыл бұрын
Классные лекции! Просто "бдыщь" головного мозга!🤪
@xrollup
@xrollup 4 жыл бұрын
Етитская сила, я наконец-то понял как работает решето Эратосфена!
@zvezdodinka
@zvezdodinka 2 жыл бұрын
def reverse_list(lst): ''' разворачивает список ''' b, n = [], -1 for i in range(len(lst)): b.append(lst[n]) n -= 1 return b lst = ['5', '4', '3', '2', '1'] print(reverse_list(lst))
@АлексейСеменихин-и2н
@АлексейСеменихин-и2н 4 жыл бұрын
Блин мужик, ты где такой спинжак отхватил😂👍
@StankBrewing
@StankBrewing 2 жыл бұрын
Спасибо за материал 🙏
@radunov.a
@radunov.a 10 ай бұрын
Не совсем понял, а алгоритмы будут позже или это и был алгоритм поиска в массиве?)
@АлександрБушев-м8п
@АлександрБушев-м8п 2 жыл бұрын
здоровья Вам.
@АнтонКулибякин
@АнтонКулибякин 6 жыл бұрын
Спасибо, преподаватель)))
@ЕвгенАкелла
@ЕвгенАкелла 4 ай бұрын
Спасибо за лекции. Решил перед изучением языка прослушать основы, не прогадал. 1:08:40 Мне кажется Вы тут допустили ошибку. Вы переписали все ячейки с индексом до N-1. И после завершения перебора, т.е. в предпоследнюю ячейку массива, впихиваете временное значение. А надо бы в последнюю, в А[N]. Или я не прав?
@Андрей-ь1л7к
@Андрей-ь1л7к 4 жыл бұрын
Очень артистично !)
@vitaliisvinovei9690
@vitaliisvinovei9690 2 жыл бұрын
58:17 Шо це таке?! XD подняло настроение)) спасибо большое за видео
@xandrewpwnz
@xandrewpwnz 6 жыл бұрын
Ребят, а тесты посмотреть для данных лекций ,есть возможность ?
@svetakhamaganova6302
@svetakhamaganova6302 2 жыл бұрын
25:30 in range(4, 1, -1)
@AlexxNeww
@AlexxNeww Жыл бұрын
Почему? Все правильно in range(4, -1, -1) т.е. индексы массива 4, 3, 2, 1, 0
@am0ba
@am0ba 5 жыл бұрын
Если функция поиска возвращает индекс найденного эл-та, то возвращая -1 в случае отсутствия элемента в массиве, идея не очень. В питоне индекс -1 будет указывать на последний эл-т массива не?
@BudinCars
@BudinCars 6 жыл бұрын
как же поздно я нашел это(
@funtorm
@funtorm 6 жыл бұрын
Ну да
@ЮстасПельмень
@ЮстасПельмень 5 жыл бұрын
да.
@am0ba
@am0ba 5 жыл бұрын
Информатику?
@antonkozachkov8897
@antonkozachkov8897 2 жыл бұрын
Только из интернета можно узнать какие подвиги совершают учителя. Спасибо.спасбо.спасибо.
@eugene8390
@eugene8390 6 жыл бұрын
можно циклический сдвиг осуществлять при помощи деления по модулю, т.о. индекс всегда остается в пределах массива и временная переменная не нужна def cyclic_shift(N:list): l = len(N) for i in range(l - 1): index = (i + 1) % l N[i], N[index] = N[index], N[i] return N
@arhangelist
@arhangelist 5 жыл бұрын
Можно, только не ясно зачем - отказались от временной переменной, получили двукратный рост операций с памятью на каждом шаге цикла. То есть работает дольше, а профит не ясен. Подробнее: ВАРИАНТ 1 (исходный): на каждой итерации соседняя ячейка тупо затирается новым значением, то есть это операция: "считать исходное значение в ячейке A ==> сохранить его в ячейку А+1". О судьбе исходного значения в "А+1" можно не заботиться, так как массив обходим в направлении, противоположном направлению сдвига, а самый первый элемент (который в любом случае будет затерт) сохранили во временную переменную еще до цикла. Останется только по окончании цикла восстановить его из tmp в условно "последнюю" (или "первую") ячейку; ВАРИАНТ 2 (новый): ради отказа от временной переменной, мы _на каждой итерации_ вынуждены сохранять значение соседней ячейки, так как иначе её содержимое будет утеряно. Вы для этого используете "обмен значениями", но строго говоря это не суть - так или иначе мы получим операции, по нагрузке схожие с: "считать исходные значения в ячейках А, Б ==> сохранить исходные значения из А, Б в ячейки Б, А". Даже на вскидку видно, что это в два раза больше на каждом шаге (читаем и А и Б, записываем так же и А и Б). Не явно действий может быть и того больше, так как по факту "обмен значениями переменных" Питон (если угодно Пайтон) также осуществляет через временную переменную, только делает это незаметно для программиста. Об этом в том числе сказано в данных уроках (если не ошибаюсь, в первом, там где речь о базовом синтаксисе объявления/присваивания значений переменных).
@nepBoHax
@nepBoHax 5 жыл бұрын
В правильном направлении мыслите, только можно сделать обертку над листом, где модом сдвигать только индекс, чуть вырастет время доступа к данным, но записи в них не будет происходить, выигрыш на лицо.
@murzinovleonid8355
@murzinovleonid8355 2 жыл бұрын
Большое Вам спасибо!
@ДенисБорисов-с9ы
@ДенисБорисов-с9ы 4 жыл бұрын
на 8:40 решил проверить пример на практике и программа вывела 2 3 4 5 6, значит пример можно считать неправильным?
@fainafaina8004
@fainafaina8004 4 жыл бұрын
"запукаем.. Що цэ такэ?!"(С)))))
@Nurgul-d6m
@Nurgul-d6m 4 жыл бұрын
Класс очень интересно смотреть,👍👍👍
@makedatauseful1015
@makedatauseful1015 2 жыл бұрын
Супер преподаватель
@Sigma8484
@Sigma8484 6 жыл бұрын
решето эратосфена можно сильно ускорить и в два раза сократить выделяемую память, если проверять только нечетные числа (индекс булевого массива = индекс нечетного числа, перевод из индекса в число 2*k+1) и вложенный for начинать не с 2*k, а с k*k, а внешний вести до sqrt(N)
@eugenedukatta9355
@eugenedukatta9355 5 жыл бұрын
Это уже программистские фишки (оптимизация кода и алгоритма). Вы абстрагируйтесь от того что вы опытный программист, а только что начинающий. А вообще Тимофей Федорович про это заикнулся, но не продолжил.
@drum_bt
@drum_bt 5 жыл бұрын
на 25:00 for k in range(top-1,-1,-1)
@danxai
@danxai 5 жыл бұрын
я все равно не понял, почему цикл до -1, а не до 0. А[-1] же получится!
@Anna-ps8xe
@Anna-ps8xe 5 жыл бұрын
@@danxai особенности того как задан интервал: начальное значение включено, а конечное - нет. На языке математики это будет выглядеть [begin,end).
@Opencamp1
@Opencamp1 4 жыл бұрын
24:44 а если начало ренджа top-1? Для этого же создавалась переменная? Спасибо большое за урок!
@ivanklutru
@ivanklutru 3 жыл бұрын
Это он для примера показал, просто не исправил. Вот, рабочий код """Введенные числа отображем в обратном порядке""" A = [0]*1000 top = 0 x = 1 while x != 0 : print("Для top", top) x = int(input("Введите число:")) if x != 0 : A[top] = x top += 1 for k in range(top, -1 , -1) : # range - start, stop (не включая это число), step print(A[k]) print("Всё")
@sharkmax1934
@sharkmax1934 Ай бұрын
24:20 "Начиная с top-1", а вместо этого в range пишет 4, что неверно. 1:06:00 Зачем так сложно организовывать циклический сдвиг? Достаточно цикла for со swap'ом соседних элементов. 1:03:00 написал программу, исправил все ошибки и не запустил, не показал что заработала. В одно месте говорит что итерации цикла считаются с 1, в другом говорит 0-ая итерация
@СтепанБендеров
@СтепанБендеров 4 жыл бұрын
A = [1, 2, 4, 7, 10, 13] for x in A: x*=x print(x) работает 1 4 16 49 100 169 [1, 4, 16, 49, 100, 169]
@EvgeshaFromUa
@EvgeshaFromUa 4 жыл бұрын
Если вы имеете ввиду, что вы поменяли таким образом список A, то некоем образом это не работает. Если стоит задача вывести квадраты значений списка А, то да
@wava210
@wava210 3 жыл бұрын
а допишите в конце print(A) без отступа (то есть не внутри for, а вне цикла) и поймете, что исходный список(массив) A остался прежним.
@МарияВикторовна-у1з
@МарияВикторовна-у1з 4 жыл бұрын
Как же эти лекции помогают, пиздец просто
@vongud
@vongud Жыл бұрын
Спасибо!!! А для чего применяется это решето?)
Алгоритмы на Python 3. Лекция №6
1:19:35
Тимофей Хирьянов
Рет қаралды 352 М.
Алгоритмы на Python 3. Лекция №4
1:14:14
Тимофей Хирьянов
Рет қаралды 572 М.
БАБУШКА ШАРИТ #shorts
0:16
Паша Осадчий
Рет қаралды 4,1 МЛН
УНО Реверс в Амонг Ас : игра на выбывание
0:19
Фани Хани
Рет қаралды 1,3 МЛН
Label Studio: The Easiest Way To Annotate Your Datasets
20:26
NeuralNine
Рет қаралды 1,2 М.
Алгоритмы на Python 3. Лекция №3
1:14:12
Тимофей Хирьянов
Рет қаралды 763 М.
Алгоритмы на Python 3. Лекция №2
1:19:49
Тимофей Хирьянов
Рет қаралды 1,3 МЛН
The Dome Paradox: A Loophole in Newton's Laws
22:59
Up and Atom
Рет қаралды 356 М.
Информатика, лекция 1/10 (ФБВТ МФТИ)
1:14:30
Тимофей Хирьянов
Рет қаралды 87 М.
Алгоритмы на Python 3. Лекция №1
1:20:50
Тимофей Хирьянов
Рет қаралды 5 МЛН
БАБУШКА ШАРИТ #shorts
0:16
Паша Осадчий
Рет қаралды 4,1 МЛН