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

  Рет қаралды 449,824

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

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

6 жыл бұрын

Практика: judge.mipt.ru/mipt_cs_on_python3/
Telegram-группа: t.me/tkhirianov_mipt_cs_on_py...
Спонсировать: / tkhirianov или www.paypal.me/tkhirianov
курс: Информатика. Алгоритмы и структуры данных на Python 3.
лектор: Хирьянов Тимофей Фёдорович
03.10.2017
Темы, рассмотренные на лекции №5:
- Список как массив данных.
- Линейный поиск в массиве.
- Копирование массива. Копирование задом-наперёд.
- Алгоритм обращения массива.
- Алгоритм циклического сдвига в массиве.
- Добавление элемента в конец и в начало массива.
- Удаление элемента из конца и начала массива.
- Ссылочная модель данных в Python. Изменяемость списка.
- Решето Эратосфена.

Пікірлер: 563
@user-iy9of1ew8c
@user-iy9of1ew8c 4 жыл бұрын
Вот я честно не понимаю, на сколько нужно быть правильным человеком и учебным заведением, что бы такую информацию выкладывать бесплатно и в таком качестве. Большое спасибо вам за работу, от всего интернет сообщества России. Думаю я не преувеличил. Большая, полезная, великолепная работа для развития всей страны.
@rio5121
@rio5121 3 жыл бұрын
Это современный взгляд, испорченный капитализмом. При союзе образование было бесплатным.
@vanadoo5836
@vanadoo5836 3 жыл бұрын
Поддерживаю!
@quddi
@quddi 3 жыл бұрын
@@rio5121 если вспомнить все, что было при нем, то лучше уж так, как сейчас
@ivanprokofyev
@ivanprokofyev 2 жыл бұрын
@@quddi, если бы еще знать хоть что-то о "нем".
@ivanprokofyev
@ivanprokofyev 2 жыл бұрын
Сильно преувеличиваешь, похоже, что в силу идеалистических представлений об окружающем мире и в силу того, что "слаще морковки" ничего не пробовал, т.е. не знаешь, что такое образование, которое направлено на подготовку специалистов, а не на штамповку компетентных потребителей. Какую такую информацию, в каком качестве? Сплошное самолюбование автора и ни дидактики, ни методики, ничего-то особенного. Современное образование, это заигрывание с УО, с набалованными детишками, это снижение требований и сложности для того, чтобы набрать необходимое количество молодых балбесов для з/п преподов ну и немного или много в карман положить. Это не про образование все, это все про профанацию и свободный рынок.
@CurlyBeaver
@CurlyBeaver 3 жыл бұрын
То чувство, когда в бесплатных лекциях на youtube человек объясняет проще и понятнее, чем в купленных мной платных онлайн-курсах за 30к... Жаль, что нельзя пожать руку, очень талантливый преподаватель!
@Mishanya00
@Mishanya00 2 жыл бұрын
Ну так это не просто человек, а преподаватель МФТИ, квалифицированнее некоторых преподов курсов будет
@user-in5ir5jd7u
@user-in5ir5jd7u 11 ай бұрын
с курсами за 150к тоже самое... у меня столько стоит
@elenam4339
@elenam4339 11 ай бұрын
зачем сравнивать университетское образование и онлайн-курсы ))
@iml404
@iml404 Ай бұрын
еще бы изначально учил правильно переменные называть - цены бы не было. А то лист с именем A и элементы с именем x это фигня полная, за такое на реальных проектах больно бьют по шапке. С заглавной буквы вообще принято называть классы
@YellowNoski
@YellowNoski 5 жыл бұрын
Вот это я понимаю - класс! Человек просто взял и на примере кнопок в лифте и наименовании этажей во Франции идеально объяснил логичность индексации с 0. Браво!
@shadedeveloping4705
@shadedeveloping4705 4 жыл бұрын
Преподаватель: "Лабы пропускать нельзя" Я за компом: ....
@evheniihoroshko1161
@evheniihoroshko1161 2 жыл бұрын
Здоровья вам Тимофей Хирьянов. Как хорошо что я нашел ваш канал. Читать статьи разные что такое стр инт и т.д. Окей базовые понятие , а тогда думаешь а чего же дальше начать, думал нужно учить синтаксисы ,а они оказываются непостоянны и меняются. То что вы раскладывание по полочкам облегчает мне и другим жизнь Я люблю чтобы всё было от и до и с рассказано почему так ( по каким правилам ) А не то что в интернете говорят общие понятия - что должно быть так и никак иначе А потом у меня другие вопросы и ищешь в интернете на свой же вопрос ответ.
@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 3 жыл бұрын
спасибо вам!
@igoweiqibaduk8283
@igoweiqibaduk8283 2 жыл бұрын
Иритака, ты очень очень очень хороший человек! Твои таймкоды круче яндекса и гугла вместе взятых!
@iritaka
@iritaka 2 жыл бұрын
@@igoweiqibaduk8283 Ну Очень приятно! Спасибо огромное!!
@ivanprokofyev
@ivanprokofyev 2 жыл бұрын
Массив, это не способ доступа, а структура данных. Под способом доступа можно понимать тот или иной конкретный синтаксис или работу интерпретатора.
@iritaka
@iritaka 2 жыл бұрын
@@ivanprokofyev хорошее замечание
@Dimonitos
@Dimonitos 5 жыл бұрын
Хорошие емкие лекции. Спасибо за материал. Было бы гораздо удобнее если в названии будет тема лекции! Например: "Алгоритмы на Python 3. Лекция №5 (Массивы)"
@user-op5tk5fg3v
@user-op5tk5fg3v 3 жыл бұрын
За такое преподавание педагоги должны получать большую зарплату и входить в селебрити) давно пора записывать и выкладывать лекции, чтобы отсеять и поувольнять тех, кто бубнит себе под нос, путается в показаниях и кого тоска зеленая слушать) спасибо за увлеченность и добросовестность
@elliottroot513
@elliottroot513 3 жыл бұрын
Я Вас очень сильно уважаю. Словами не передать как я счастлив смотреть Ваши лекции
@RuslanZinovyev
@RuslanZinovyev 4 жыл бұрын
Решето Эратосфена гениально расписан на Пайтоне, просто красота, так круто когда на память на доске можешь его написать.
@volodimirbatalov7442
@volodimirbatalov7442 4 жыл бұрын
мозга кипит, но мне нравится, спасибо Тимофею большое... много вещей, подробно, наглядно, даже вопросов не возникает...
@Kostya_kzn
@Kostya_kzn 4 жыл бұрын
Правильно говорят: "Если преподаватель не может объяснить 6 летнему ребенку, то он сам не разбирается в предмете!". Лекции просто чудо!!! В четко, ясно и понятно.
@sergejkaznov2677
@sergejkaznov2677 4 жыл бұрын
НАСТОЛЬКО ПРОСТЫМ ЯЗЫКОМ И ТАК ИНТЕРЕСНО УВЛЕКАТЕЛЬНО ПОБОЛЬШЕ БЫ ТАКИХ УЧИТЕЛЕЙ 👍👍👍☝️👍👍👍
@alexmak8305
@alexmak8305 5 жыл бұрын
за "шо це таке" на 58:18- отдельный лайк!!!)
@andreyvbvbvb
@andreyvbvbvb 5 жыл бұрын
На секунды две поздно напсал
@mihakgma
@mihakgma 4 жыл бұрын
не уразумив ы не побачив) шо це такэ?)
@sanjarkenjayev7368
@sanjarkenjayev7368 2 жыл бұрын
а что такое шо це текэ ? из Мариуполя препод
@True_Ulatim
@True_Ulatim 4 жыл бұрын
Вы великолепный преподаватель. Смотрю все ваши лекции с превеликим удовольствием и на 6-й лекции могу с уверенностью сказать, что именно этого мне не хватало при кодировании. Я уже пишу на питоне телеграмм ботов и работаю с БД но это все занимало очень много времени так как не всегда было достаточно понимания как это работает. Все конечно же гуглилось но до конца понять, что то все-таки не мог.
@westend_school
@westend_school 4 жыл бұрын
почему-то не нашел 6ю лекцию. она еще активна?
@psychicks3463
@psychicks3463 Жыл бұрын
@@westend_school kzbin.info/www/bejne/hH3UaKF4bseJZq8
@shaykhinurov
@shaykhinurov Жыл бұрын
Так, эту лекцию посмотрел, теперь не запутаться, в следующий раз смотреть следующую.
@yevhenukrainianer4781
@yevhenukrainianer4781 6 жыл бұрын
Тернарный особо порадовал. Спс за лекцию.
@mariyaalberdina9917
@mariyaalberdina9917 2 жыл бұрын
Очень здорово! Обучение это очень важно, хорошо что вы есть и так хорошо делаете свою работу!
@user-xv6oj1wv5e
@user-xv6oj1wv5e 4 жыл бұрын
Спасибо Вам за уроки! Замечательная подача материала!!!
@MarkNikita1
@MarkNikita1 Жыл бұрын
Огромное спасибо за уроки! Вместе с вами учиться намного приятнее и легче)
@Qwerty-fn3rf
@Qwerty-fn3rf 5 жыл бұрын
препод от бога
@user-iz9sj1nn5q
@user-iz9sj1nn5q 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 жыл бұрын
И? Это любой студент знает?
@user-zf4pm4ky1r
@user-zf4pm4ky1r 3 жыл бұрын
Спасибо Вам за уроки! Пусть ваша деятельность будет всегда успешной, доброго счастья вам, крепкого здоровья и уважения.
@yesugibe7041
@yesugibe7041 5 жыл бұрын
Спасибо за материал и отличную подачу!
@rinatsarmuldin8118
@rinatsarmuldin8118 4 жыл бұрын
Талант и интелект вот это человек с большой буквы!
@AnastasiaKorosteleva_SPb
@AnastasiaKorosteleva_SPb 5 жыл бұрын
лектор очень душевный!
@user-gv6ih6pg4q
@user-gv6ih6pg4q 4 жыл бұрын
Такие знания . Бесплатно . Бескорыстно . Настоящий русский Учёный .
@Berseny
@Berseny 3 жыл бұрын
Знания бесплатно и бескорыстно -- это про коммунистов, а не про ррррусских. Ведь какой-нибудь буржуй, наживающийся на интеллектуальной собственности, не перестает от этого быть ррррусским буржуем. Верно? Правильно сформулировать: прогрессивный ученый левых взглядов (даже если он сам лепит чушь про какую-то нравственность в лагере праваков). По поступкам товарищ вполне себе марксист. =))
@beria_
@beria_ 3 жыл бұрын
@@Berseny у тебя шлак в голове
@Berseny
@Berseny 3 жыл бұрын
@@beria_ Да неужели? А у тебя точно шлака в башке нет? А? Уверен? =) Наивный человечишко. =)
@Berseny
@Berseny 3 жыл бұрын
@@Русь-Родина А пока с чужого канала, это не бескорыстно? Нет, ну если ему заплатил кто-то за съемку уроков... Ну хз. Здесь бескорыстность не в том, что человек ничего не получил за свой труд педагога, это был бы альтруизм. Бескорыстие в том, что всеми знаниями вправе воспользоваться всякий человек. Интеллектуальная собственность -- зло!
@Berseny
@Berseny 3 жыл бұрын
@@Русь-Родина Являясь достоянием всего человечества, это уже не интеллектуальная собственность, а общечеловеческое богатство. Я имел в виду, конечно же, частную собственность на знания, ну или собственность корпоративную. Ну когда остальные обязаны платить и покупать каждый раз, когда им необходимо, а у продавцов от этого не убывает. Уродливая система капитала, античеловеческая. Сделали из знаний подобие валюты, которая призвана приумножать их капиталы. Причем авторы к этим продажам зачастую не имеют никакого отношения. Они трудились на корпорацию, вот она и присвоила все их наработки. А человек просто раб, получил зарплату и всё! Никакой интеллектуальной ренты, хрен в зубы, и грызи. =) В общем, паразитическая система.
@vaal5500
@vaal5500 4 жыл бұрын
Спасибо за прекрасную лекцию)
@konstantinselivanov8513
@konstantinselivanov8513 3 жыл бұрын
Тимофей, вы лучший! Спасибо!
@anatoliiljin6870
@anatoliiljin6870 2 жыл бұрын
Спасибо! Вы самый лучший преподаватель!
@gornakovs
@gornakovs Жыл бұрын
Спасибо тебе Добрый человек за эти лекции
@patrickspilmann5008
@patrickspilmann5008 3 жыл бұрын
Тимофей, БРАВО! СПАСИБО! Вы ЛУЧШИЙ преподаватель!!!!
@ZlataDobrovolny
@ZlataDobrovolny 2 жыл бұрын
Это гениально! Блокбастер по программированию!
@vitalikos2010
@vitalikos2010 5 жыл бұрын
Последние 8 минут видео сделали мой день...
@user-sw9vz3ev2v
@user-sw9vz3ev2v 4 жыл бұрын
Лекции класс не возможно уснуть , подписался..
@user-zk9gv2hz7o
@user-zk9gv2hz7o 2 жыл бұрын
Вообще интересное объяснение логичности индексации с нуля. Забавное. Строго говоря во Франции нет нулевых этажей (хотя кнопка ноль в лифте присутствует). Первый этаж в нашем понимании по французски это Rez-de-chaussée произносится что-то вроде Редшосэ и переводится как «рядом с дорогой из известняка» или «на уровне дороги из известняка». Я так понимаю по нашему это земляной пол :). Даже в лохматой древности у нас не было в традиции строить дома с земляным полом, климат не тот. :) Поэтому вероятно у нас всё начинается с первого этажа, а не с нулевого.
@alekseytrump1586
@alekseytrump1586 2 жыл бұрын
Спасибо за лекции. Лучшие!!!
@_pheax
@_pheax 4 жыл бұрын
спасибо, Тимофей Фёдорович
@Lexfr0mkhar
@Lexfr0mkhar 4 жыл бұрын
Приятно слушать и созерцать!
@rustamturaev5361
@rustamturaev5361 3 жыл бұрын
Спасибо, продолжаю изучение с удовольствием)
@maratgabitov
@maratgabitov 3 жыл бұрын
23:07 Всё понятно, топ лекция, продолжайте) (молчание - это глубокая заинтересованность)
@konst2087
@konst2087 2 жыл бұрын
пользуясь несколько лет срезами на уровне рутины я даже и не выдумывался в такие нужные вещи
@memprus
@memprus 4 жыл бұрын
Во втором гуманитарном корпусе МГУ, где сидит факультет ВМиК 9Вычислительная Математика и Кибернетика), лифт от 0 до 7)))
@user-cx8rl2cd2l
@user-cx8rl2cd2l 5 жыл бұрын
Спасибо, преподаватель)))
@user-gw9kb3su3x
@user-gw9kb3su3x 4 жыл бұрын
Очень артистично !)
@Siren476
@Siren476 5 жыл бұрын
Ну почему понимаешь, что надо было учиться, когда тебе уже сороковой десяток идёт? Сейчас бы с удовольствием сидела бы среди этих студентов..
@user-mh9ql3kg3l
@user-mh9ql3kg3l 5 жыл бұрын
Сороковой десяток или все таки четвёртый?
@Siren476
@Siren476 5 жыл бұрын
Денис Катанугин Да, долго я необразованная живу)
@danalexpiano
@danalexpiano 5 жыл бұрын
Stacy Miller не надо вам в программисты ))))))
@user-eo3tl9cd9k
@user-eo3tl9cd9k 5 жыл бұрын
)
@b.g.5106
@b.g.5106 5 жыл бұрын
@@danalexpiano программисты не люди))))
@yulii1171
@yulii1171 4 жыл бұрын
Очень интерессно. Спасибо
@user-hb9vq1id9y
@user-hb9vq1id9y 4 жыл бұрын
Не не скучно , а интересно
@StankBrewing
@StankBrewing Жыл бұрын
Спасибо за материал 🙏
@777richok
@777richok 2 жыл бұрын
В лектории очень тихо, потому что лекция увлекательная!
@spartanec_channel
@spartanec_channel 2 жыл бұрын
*в конце лекции как всегда "отжигаете"))*
@tkhirianov
@tkhirianov 2 жыл бұрын
Заинтриговали. Не понял на какой именно минуте и что именно вы имеете в виду.
@spartanec_channel
@spartanec_channel 2 жыл бұрын
Для начала, раз Вы мне ответили, хочу поблагодарить Вас за эти лекции. Очень интересно и доступно объясняете. Занимаюсь с удовольствием. А насчёт "отжигаете", я имел ввиду, что в конце лекций Вы часто в сжатые сроки объясняете сложные моменты :) И благо, я могу перемотать, посмотреть и обдумать несколько раз. На живой лекции я бы такой роскошью не обладал :)
@harislam86
@harislam86 2 жыл бұрын
"Лукавлю я, конечно... Слава Богу, что вы Питон не знаете" 🤣🤣🤣🤝🏻
@user-oo4lp8se9r
@user-oo4lp8se9r 4 жыл бұрын
Комментарий в поддержку контента.
@vkgpmail
@vkgpmail 2 жыл бұрын
Спасибо Вам огромное!!!
@murzinovleonid8355
@murzinovleonid8355 2 жыл бұрын
Большое Вам спасибо!
@aezakmi50872
@aezakmi50872 5 жыл бұрын
Спасибо за лекции . Очень познавательный матерьял . Мне как программисту .Вы оказали огромную помощь .
@user-vr4ps7do2u
@user-vr4ps7do2u Жыл бұрын
здоровья Вам.
@user-rl3nm6yi1c
@user-rl3nm6yi1c 2 жыл бұрын
Такой жирный лайк поставил, что чуть телефон пальцем не раздавил
@user-yg4bf9os2f
@user-yg4bf9os2f 2 жыл бұрын
восхитительно
@user-vu8pl8zl7h
@user-vu8pl8zl7h 4 жыл бұрын
Тимофей Федорович, спасибо Вам большое за публикации своих курсов на ютубе! У меня возникло одно замечание, я его выскажу, не сочтите за неуважение. Я как будто заметил, что некоторые вещи людям непонятны, на первом курсе у студента ветер в голове) да и мне тоже иногда трудно) вот к примеру эти списки, а зачем они вообще нужны? А если непонятно зачем этот инструмент нужен, трудно в нем разобраться. Не лучше ли подавать материал с практической точки зрения? т.е. вот к примеру есть задача с помощью питона проанализировать введеные данные к примеру значения температуры (или я не знаю что еще))), и вот для этого можно применить такую вещь как списки, и вот так-то они устроены и т.д. или же еще на первой лекции можно было поставить задачу написать примитивный калькулятор, и параллельно объяснить все базовые вещи. ну как то так, спасибо)
@PodsasBoosty
@PodsasBoosty 5 жыл бұрын
21:10 Тишина, понятно да? да! значит ничего не понятно)
@kashasa
@kashasa 6 жыл бұрын
Спасибо!
@user-ck2sb2uc2b
@user-ck2sb2uc2b 4 жыл бұрын
Пока студенты молчат , я разговариваю с ПК ...
@quadroninja2708
@quadroninja2708 3 жыл бұрын
Мне кажется, они задумались, а преподаватель пошел вперёд мысли студентов, вроде пытаешься понять, но нужно догонять и не до вопросов
@rkevlarovich3653
@rkevlarovich3653 3 жыл бұрын
Тимофей, ну где ты был (да и я тоже) лет эдак 22 назад? )))) мне бы таких преподов (еще раз повторюсь) в универе, я бы стал точно программистом. А сейчас приходится самообразованием заниматься - что абсолютно несложно несмотря на пройденное время и возраст))) Спасибо и удачи!
@user-sd4pv6bc8v
@user-sd4pv6bc8v 4 жыл бұрын
Отлично!)
@user-dh5zg5qh1p
@user-dh5zg5qh1p 4 жыл бұрын
Классные лекции! Просто "бдыщь" головного мозга!🤪
@user-sm5gg8rl6v
@user-sm5gg8rl6v 3 жыл бұрын
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]
@VladArnoldner
@VladArnoldner 6 жыл бұрын
Спасибо
@ubershh
@ubershh 2 жыл бұрын
Надо после окончания лекции для студентов продолжать лекцию для подписчиков и рассказывать нерассмотренные вопросы)
@user-sh8tp5fq5l
@user-sh8tp5fq5l 4 жыл бұрын
Блин мужик, ты где такой спинжак отхватил😂👍
@makedatauseful1015
@makedatauseful1015 2 жыл бұрын
Супер преподаватель
@user-oh2xc9ni6i
@user-oh2xc9ni6i 2 жыл бұрын
Шо це таке) Це було прикольно) Ніколи штірліц не був так близько від провалу) ))
@MrEvgeny57
@MrEvgeny57 2 жыл бұрын
В "решете" во втором цикле просева составных чисел в range вместо 2*k лучше использовать k**2. Все до него будут составные, отфильтрованные предыдущими итеррациями
@dmitrijloskutnikov694
@dmitrijloskutnikov694 2 жыл бұрын
48:50 Гениально. 1:00:51 Я это ивертирование мучил за пару дней до просмотра видео. И прошёл по всем граблям, что тут показаны.
@xrollup
@xrollup 4 жыл бұрын
Етитская сила, я наконец-то понял как работает решето Эратосфена!
@petrrybakov1462
@petrrybakov1462 4 жыл бұрын
гений!
@marines8725
@marines8725 2 жыл бұрын
спасибо!
@devour_dead
@devour_dead 5 жыл бұрын
Чорт! Такой препод, что мне хочется все бросить и бегом программировать, писать самые простые вещи, тупить, ломать голову, снова тупить, решать и дальше дальше дальше. Все четко, системно, понятно, мозги шевелятся.
@cuckoops
@cuckoops 4 жыл бұрын
Наглядный пример разработки по методу TDD (Test-Driven Development) :)
@Pixel_Magic
@Pixel_Magic 3 жыл бұрын
Чел, который знает питон: Кто-нибудь, пристрелите меня
@ntvisigoth
@ntvisigoth Жыл бұрын
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' Возможно, дело вкуса. Но мой вариант, мне кажется, выглядит привлекательнее
@xandrewpwnz
@xandrewpwnz 6 жыл бұрын
Ребят, а тесты посмотреть для данных лекций ,есть возможность ?
@Sigma8484
@Sigma8484 6 жыл бұрын
решето эратосфена можно сильно ускорить и в два раза сократить выделяемую память, если проверять только нечетные числа (индекс булевого массива = индекс нечетного числа, перевод из индекса в число 2*k+1) и вложенный for начинать не с 2*k, а с k*k, а внешний вести до sqrt(N)
@eugenedukatta9355
@eugenedukatta9355 4 жыл бұрын
Это уже программистские фишки (оптимизация кода и алгоритма). Вы абстрагируйтесь от того что вы опытный программист, а только что начинающий. А вообще Тимофей Федорович про это заикнулся, но не продолжил.
@Flyboard12345
@Flyboard12345 5 жыл бұрын
51:19 уфф))
@user-qs3mn1jg3x
@user-qs3mn1jg3x 4 жыл бұрын
Как же эти лекции помогают, пиздец просто
@user-bq9bf2kt3x
@user-bq9bf2kt3x 2 жыл бұрын
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
@ruslanways
@ruslanways 2 жыл бұрын
16:00 с версии Python 3 - PEP рекомендует использовать enumerate, если хотим получать индексы.
@BudinCars
@BudinCars 5 жыл бұрын
как же поздно я нашел это(
@darmoed_phantorm
@darmoed_phantorm 5 жыл бұрын
Ну да
@user-py8jy4yr5k
@user-py8jy4yr5k 5 жыл бұрын
да.
@am0ba
@am0ba 4 жыл бұрын
Информатику?
@vitaliisvinovei9690
@vitaliisvinovei9690 2 жыл бұрын
58:17 Шо це таке?! XD подняло настроение)) спасибо большое за видео
@user-mp7ff8mu4b
@user-mp7ff8mu4b 4 жыл бұрын
жаль что у нас такого курса не было изучали а изучали аналоговые ВМ и чуть ЭВМ . классная лекция только для меня очень быстро
@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 жыл бұрын
В правильном направлении мыслите, только можно сделать обертку над листом, где модом сдвигать только индекс, чуть вырастет время доступа к данным, но записи в них не будет происходить, выигрыш на лицо.
@YourLanguageHelp
@YourLanguageHelp 4 жыл бұрын
24:45 не "4", а "top - 1"
@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 жыл бұрын
Здесь по другому через квадрат, тоже работает
@user-ur5wz6eh1r
@user-ur5wz6eh1r 5 жыл бұрын
Иногда прыгает с 5-го на 10-е. Не сразу понимаю, что хочет донести. А вообще очень достойно преподает.
@lonelydance
@lonelydance 3 жыл бұрын
29:58 Признак хорошего тона - копировать лист через срезы: C = A[:]
@8nhuman8
@8nhuman8 3 жыл бұрын
лучше использовать метод copy(). Читабельнее
@developmentops8552
@developmentops8552 6 жыл бұрын
Спасибо, решето понравилось, долго допирал ) единственное что не понял почему мы 0 и 1 ставим в False ? они тогда составными печатаются
@danalexpiano
@danalexpiano 5 жыл бұрын
Сергей Разгонов ну ошибся он в конце, там ещё третий вариант будет - неприменимо. 0 не является простым, так как на 0 делить нельзя. Сейчас точно не помню, но вроде и 1 не будет простым, так как простое должно делиться на два числа - единицу и себя, а у 1 эти оба числа являются одним и тем же. Простые числа тут предполагаются как элементы разложения на множители.
@user-nt7zx5ix8t
@user-nt7zx5ix8t 4 жыл бұрын
0 и 1 false , т.к это числа 1 и 2 (простые). В последней строке ошибка, там надо не "k", а "k+1"
@fainafaina8004
@fainafaina8004 4 жыл бұрын
"запукаем.. Що цэ такэ?!"(С)))))
@user-je5wi9ry6s
@user-je5wi9ry6s 3 жыл бұрын
Класс очень интересно смотреть,👍👍👍
@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 да, тут все зависит от постановки задачи) я понял иначе. Тем не менее, моя строчка возврата функцией заданного фрагмента обращённого списка добавляет функции универсальности и гибкости, так как позволяет получить результат как в работе с целым списком, так и с его фрагментом)
@antonkozachkov8897
@antonkozachkov8897 2 жыл бұрын
Только из интернета можно узнать какие подвиги совершают учителя. Спасибо.спасбо.спасибо.
@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 жыл бұрын
Класс!
@user-bq9bf2kt3x
@user-bq9bf2kt3x 2 жыл бұрын
Можно еще проще: B = A = [randint(0, 10) for _ in range(N)]
@user-bq9bf2kt3x
@user-bq9bf2kt3x 2 жыл бұрын
А если N прилетает из инпута, то в одну строчку: B = A = [randint(0, 10) for _ in range(int(input()))]
Алгоритмы на Python 3. Лекция №6
1:19:35
Тимофей Хирьянов
Рет қаралды 344 М.
Алгоритмы на Python 3. Лекция №4
1:14:14
Тимофей Хирьянов
Рет қаралды 560 М.
아이스크림으로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 62 МЛН
Женская драка в Кызылорде
00:53
AIRAN
Рет қаралды 455 М.
Alex hid in the closet #shorts
00:14
Mihdens
Рет қаралды 12 МЛН
Scary Teacher 3D Nick Troll Squid Game in Brush Teeth White or Black Challenge #shorts
00:47
Зачем нужны указатели в C++?
8:14
Алгоритмы на Python 3. Лекция №8
1:18:29
Тимофей Хирьянов
Рет қаралды 228 М.
О словах малого пророка Амоса и текущей ситуации
33:26
Тимофей Хирьянов
Рет қаралды 167 М.
Морозов Иван собеседование python junior разработчик
1:02:31
Информатика на Python, лекция 2, ФБВТ МФТИ (2023)
1:22:47
Тимофей Хирьянов
Рет қаралды 74 М.
2020 Практика программирования на Python, лекция №2
1:21:31
Тимофей Хирьянов
Рет қаралды 264 М.
Алгоритмы на Python 3. Лекция №1
1:20:50
Тимофей Хирьянов
Рет қаралды 5 МЛН
아이스크림으로 체감되는 요즘 물가
00:16
진영민yeongmin
Рет қаралды 62 МЛН