Тёмный

#23. Примеры работы оператора цикла for. Функция enumerate() | Python для начинающих 

selfedu
Подписаться 159 тыс.
Просмотров 64 тыс.
50% 1

Обучающий курс: stepik.org/cou...
Несколько примеров использования оператора цикла for. Функция enumerate() для получения индекса и значения элементов итерируемой последовательности.
Telegram-канал: t.me/python_se...
Все уроки по Python: • Добрый, добрый Python ...

Опубликовано:

 

30 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 103   
@nomadicus77
@nomadicus77 Год назад
Вот смотришь на последние задание и птички летают в голове, вроде всё понятно, но сам бы фиг такое написал)))
@vlad-qx5fu
@vlad-qx5fu Год назад
ВЫ преподаватель от Бога!!! Могу это сказать как коллега с 25 летним стажем. Низкий вам поклон за вашу работу!!! Конструктивность, подача, юмор, и тд. Огромное Mirci! Пусть добрые слова, согреют вас всегда!👆🙏🙏🙏💪🦾
@DmitryTimofeev
@DmitryTimofeev 2 месяца назад
Согласен! Гениальный педагог! Я купил несколько книг по Python, но только благодаря Сергею, начал действительно понимать.
@Piratka521
@Piratka521 Год назад
ну вот, я не красавчик 😭
@norannohara4289
@norannohara4289 Год назад
вы не пердставляете мою улыбку когда похвалили за join, вы лучший p.s + 1000 к самоуверенности
@МартовСергей-й3я
Ну, ты действительно красавчег (или красавица)! )
@ДмитрийСафронов-р2ъ
Про .join подумал сразу но задача таки продемонстрировать цикл как метод реализации..больше вызвало сомнения конструкция которая убирала пробел. Я бы просто сделал срез без методов и циклов. мне кажется так было бы еще быстрее. В любом случаи спасибо!!! Я все эти темы знаю, но всегда полезно пересматривать! иногда когда закапываешься в сложных конструкциях то простого не замечаешь простого, а пересматривая уроки для начинающих порой находишь новые простые и давно забытые решения.
@ТенелбекШокашов
Sep тоже может быть решением ?
@андрейхоменко-и5я
@андрейхоменко-и5я 3 года назад
Как всегда супер. Как же важно знать функции по памяти. Это залог более быстрого решения задачи.
@anbur9197
@anbur9197 5 месяцев назад
я если знаю, что такая функция или метод уже где-то был, но не помню точную реализацию, спрашиваю нейронную сеть))
@андрейхоменко-и5я
@андрейхоменко-и5я 5 месяцев назад
@@anbur9197 тоже стал использовать. Но знание максимального количества функций позволит лучше и быстрее строить алгоритм.
@xrilicc1154
@xrilicc1154 5 месяцев назад
Как успехи, кстати?​@@андрейхоменко-и5я
@mefodymo7456
@mefodymo7456 2 года назад
Перемудреный пример с переводом букв
@DmitryTimofeev
@DmitryTimofeev 2 месяца назад
Сергей, большое спасибо! Кстати пример со словами можно сделать даже проще, чем с методом join, просто поменяв слагаемые строки местами: words = ["дай", "мне", "сил"] s = "" for x in words: s += x + " " print(s) Но можно сделать и ещё короче: words = ["дай", "мне", "сил"] for x in words: print(x, end = " ")
@ОлегАлексеев-н3м
@ОлегАлексеев-н3м 6 месяцев назад
Использовать циклы для решения задачи с факториалом неубедительно . Нахрена столько страданий когда можно сделать просто так import math n = int(input("Введите натуральное число не более 100:")) if n100: print("Неверно введенное число") else: j = math.factorial(n) print(j)
@Putu_pererenan
@Putu_pererenan 2 месяца назад
Если бы меня так программировать учили, когда я начинал, я бы уже нахрен суперменом бы стал
@elenalevasheva3830
@elenalevasheva3830 Год назад
Спасибо большое за чудесный урок. Опять новое открытие. Это как увлекательное путешествие с добрым и надежным другом.
@Alowv
@Alowv 5 месяцев назад
У меня в школе по вашим видео проводят урок
@svmanek
@svmanek Год назад
Очень интересно, но ничего не понятно...
@ВикторЖигурда
@ВикторЖигурда 3 года назад
Рахмат! Как всегда selfedu рулит
@vbvbnnhgjkkdfgfghh5136
@vbvbnnhgjkkdfgfghh5136 3 года назад
Здорово, интересный ролик. Спасибо.
@suprun1982
@suprun1982 3 года назад
Я просто красавчик)
@levprom4228
@levprom4228 Год назад
Не хватает кода из видео в текстовом виде.
@annoynmousss
@annoynmousss 2 года назад
7:28 - print(*words) axax
@nitroexpress9928
@nitroexpress9928 Год назад
Печально конечно что чтобы изменить элемент нужно обязательно его индекс знать, в Жабаскрипте работа с массивами гораздо удобнее.
@СергейАрхипов-р8о
Доходчиво, кратко - возможно есть и лучше, но не встречал. Ролики не на 1,5 часа, "зависаний" диктора нет, материал усваивается отлично. СПАСИБО!
@MrFog124
@MrFog124 Год назад
11:52 *Щ* пока что, почти всё, что вы рассказываете до 23 урока знаю, но с удовольствием смотрю и выполняю ваши задания. Спасибо большое за Ваши старания! Вы вносите огромный вклад в развитие самоучек!
@d1v1n3_p0vveR
@d1v1n3_p0vveR 6 месяцев назад
какие еще задания ты выполняешь??? их нет, у тебя шиза чувак
@CRESHT
@CRESHT 2 года назад
Лучше всего 5 звезд. 🤣
@jarefmozz9988
@jarefmozz9988 Год назад
12:55 Ерунда какая-то... ord('a') это 1072, 0-1072 будет -1072, значения в t с индексом -1072 нет, т.е. вместо английской а не должно ничего выводится, или вообще быть ошибка, но ошибки нет, он как по волшебству выводит то, что надо...
@Taron8117
@Taron8117 Год назад
s это буква в нашем title. поэтому получается что ord(s) - start_index в данном случае идёт ord(“a”) - start_index. 1072-1072=0. И так далее. Допустим дальше по циклу s = «п». Получается ord(“п”) - start_index = 1087 - 1072 = 15. Так индекс равен 15. Под индексом 15 в нашем списке как раз буква “p”.
@effort48ff
@effort48ff 11 месяцев назад
​@@Taron8117что такое ord()? может я что-то пропустил, но я не разу не видел этот оператор
@Taron8117
@Taron8117 11 месяцев назад
@@effort48ff ord() возвращает числовое значение переданного символа, то есть его код в Unicode
@АристархРоссолимо
@АристархРоссолимо 8 месяцев назад
​@@Taron8117блин спасибо, очень помог ваш комментарий пока я тупил 1,5 часа
@АристархРоссолимо
@АристархРоссолимо 8 месяцев назад
​@@Taron8117созрел ещё вопрос, в слаг.каунт два дефис на слаг.реплейс, почему происходит между 'пайтон' и 'лучший' одно дефис ведь там в самой строке содержиться дефис, так что получается два дефис меняется на одно и плюс дефис которое есть в самой строке в итоге должно отобразиться два дефис. Но в консоле одно, почему так?
@proffootballplayer7389
@proffootballplayer7389 11 месяцев назад
n = int(input("Enter a number:")) p = [] def func(a): for i in range (n + 0): i = '*' p.append(i) return p result = func(p) print(result)
@redfox6179
@redfox6179 Год назад
i = это просто переменная?
@redfox6179
@redfox6179 Год назад
отвечу сам Буква "i" часто используется в качестве переменной или итератора в циклах, особенно в математических и научных контекстах. Применение буквы "i" обусловлено ее ассоциацией с комплексными числами и индексами. Вот несколько причин, почему "i" может быть выбрана в качестве имени переменной: Индексация: Во многих случаях, особенно в циклах, переменная "i" используется для представления индексов элементов в коллекциях или последовательностях. Использование "i" стало традицией, и многие разработчики привыкли видеть ее в этой роли. Комплексные числа: В математике и научных областях буква "i" обычно обозначает мнимую единицу в комплексных числах. Поэтому, в некоторых случаях, когда в коде есть связь с комплексными числами или математическими операциями, выбор "i" в качестве имени переменной может быть логичным. Исторические прецеденты: В некоторых языках программирования, таких как C и его производные, соглашение использования "i" в качестве имени переменной для циклов было установлено десятилетия назад, и это стало широко принятым соглашением. Несмотря на широкое использование "i" в качестве имени переменной, важно помнить, что вы можете выбрать любое другое имя, которое лучше подходит для вашей конкретной ситуации. Главное правило при выборе имени переменной - делайте его понятным и описательным, чтобы облегчить чтение и понимание кода другим программистам.
@ЭльдарДадашевич
@ЭльдарДадашевич 2 года назад
При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'
@playt_pythonlearn
@playt_pythonlearn 2 года назад
Как её решить?
@nevroisgoshausachi9027
@nevroisgoshausachi9027 2 года назад
такая же ерунда не пойму что с этим делать?
@archibaldivanovich4103
@archibaldivanovich4103 2 года назад
Здравствуйте столкнулся с такой же ошибкой! for s in title.lower(): if "а"
@АндрейПятинкин-з1б
@@playt_pythonlearn скорее всего вы в переменной start_index = 'a' -> написали а не кириллицей
@АринаРодионовна-ч7г
@@АндрейПятинкин-з1б ошибка всё равно остаётся
@аноним-х3ш
@аноним-х3ш 2 года назад
11:38 себе
@iiiukakaiiiukaka973
@iiiukakaiiiukaka973 Год назад
автор - красавчик, курс очень нравится
@FreeCoinsChannel
@FreeCoinsChannel Месяц назад
Отличные уроки! Вы хорошо обьясняете...по вашим урокам много чего понял намного быстрее...а теперь хочу Вас немного поправить...на одном из первых уроков Вы говорили что хорошая практика использовать < вместо вместо >=...но Вы часто используете именно "="..)
@selfedu_rus
@selfedu_rus Месяц назад
Спасибо! Разница практически незаметна, поэтому не принципиально, особенно для Python. Успехов!
@FreeCoinsChannel
@FreeCoinsChannel Месяц назад
@@selfedu_rus я уже давно учу программирование...я понимаю что это может как-то отразиться только разве что в большом цыкле так как
@mcgregor9832
@mcgregor9832 Месяц назад
​@@FreeCoinsChannelнет. Оператор
@mcgregor9832
@mcgregor9832 Месяц назад
​@@FreeCoinsChannelиногда необходимо использовать именно =, а при возможности избегать. Это лишь нестрогая рекомендация
@jamjam3337
@jamjam3337 Год назад
спасибо!👏👍💥
@andredru4278
@andredru4278 8 месяцев назад
Спасибо. Понравилось занятие.
@gkenjutsu
@gkenjutsu 3 года назад
Следующего урока нету пока((
@waydao4958
@waydao4958 3 года назад
А можно было w + ' ')))
@streamdream-ru
@streamdream-ru 3 года назад
Тоже напрашивался такой вариант. Но тогда пробел был бы в конце)
@waydao4958
@waydao4958 3 года назад
@@streamdream-ru но его бы было не видно)))
@amadeus1300
@amadeus1300 3 года назад
я красавчик )
@abdulloakramov7941
@abdulloakramov7941 10 месяцев назад
Спасибо большое за урок
@ordinar007
@ordinar007 2 года назад
Здравствуйте! Очень классный канал. Смотрю ваши уроки. Огромное спасибо за ваш труд! Подскажите, пожалуйста, был ли урок о таких функциях как ord и chr ? Никак не идет задача с транслитерацией. Два дня сижу и уже разочарование в себе(((
@selfedu_rus
@selfedu_rus 2 года назад
Спасибо! По этим функциям не помню, может в самом конце есть, но не факт. Если нет, то, как говорят в этих случаях, гугл в помощь )) Успехов!
@suiunbekiskenderov7444
@suiunbekiskenderov7444 3 года назад
Спасибо
@mobyfactor
@mobyfactor 2 года назад
Спасибо за курс,очень доходчиво объясняете
@quasaro8601
@quasaro8601 3 года назад
Подскажите есть видео обучение как на телефон установить Payton
@kneel6815
@kneel6815 3 года назад
Питонить на телефоне. Теперь я видел всё
@quasaro8601
@quasaro8601 3 года назад
@@kneel6815 не это ещё мелочь
@stilllifeenthusiast
@stilllifeenthusiast Год назад
@@kneel6815 ты смеёшься, а я реально пишу код на телефоне, потому что ноутбук или хотя бы маленький нетбук я позволить себе не могу, потому что какой ноутбук на учительскую зарплату?
@maxonchik4095
@maxonchik4095 Год назад
Pydroid
@sudoku_OLDgen
@sudoku_OLDgen Месяц назад
your_value = ['a', 'b', 'v', 'g', 'd', 'e', 'zh', 'z', 'i', 'y', 'k', 'l', 'm', 'n', 'o', 'p', 'r', 's', 't', 'u', 'f', 'h', 'c', 'ch', 'sh', 'shch', '', 'y', '', 'e', 'yu', 'ya'] Для тех кому надо
@gayratsaidakhmedov5451
@gayratsaidakhmedov5451 10 месяцев назад
спасибо
@anbur9197
@anbur9197 5 месяцев назад
7:21 а что насчет тех, кто думал о print(*words) ?
@Putu_pererenan
@Putu_pererenan 2 месяца назад
Это просто вывод в консоль, а не склейка
@aestheticanonym9503
@aestheticanonym9503 2 года назад
а для чего нужна переменная p для вычесления факториала?
@merdanatayew589
@merdanatayew589 2 года назад
Чтобы умножить все числа
@olegkomlev
@olegkomlev 2 года назад
6:24 Цикл, хоть for, хоть while, нужен для того, чтобы обработать идущие подряд сходные элементы какой-то структуры или "свернуть" идущие подряд сходные действия. В данном случае, первый и последний элементы списка words отличаются от остальных (первый не должен получить пробел слева, а последний не должен получить пробел справа от себя). Мы можем считать, например, что первый элемент особенный, а остальные (в т.ч. и последний) - сходные, потому, что получат слева пробел в строке-результате. Предложено отличить первый элемент от последующих при помощи булевой переменной и задать разные обработки первого и остальных при помощи тернарного оператора (который можно считать "сокращенным" условным оператором). Использование условного оператора было бы оправдано, если бы в списке words особый элемент стоял в середине, или особых было бы несколько, или они были бы в неизвестном месте. Но если особый 1-й или последний, то не нужно помещать его в цикл, чтобы задать отдельную обработку условным оператором. Нужно: 1)перед циклом особым образом обработать 1-й элемент, 2)обработать иным способом с помощью цикла все элементы, кроме первого и последнего, 3)после цикла обработать 3-м способом последний элемент. Это гораздо эффективней, чем выполнять в каждой итерации проверку, которая сработает только 1 раз. В данном случае, можно было задать особую обработку первого и особую - всех остальных (последний на остальные похож): s= words[0] # первый элемент без пробела #цикл для элементов начиная со 2-го for w in words[1:]: s += ' '+w Проблема может быть, если допустим случай, когда words=[ ] (в этом случае результат должен быть s=""). Но для пустого списка s= words[0] выдает ошибку. Исправить можно так: s = words[0] if words else ""
@olegkomlev
@olegkomlev 2 года назад
Конечно, в данном случае эффективнее всего join, но могут встретиться задачи, где нужна другая обработка элементов, а не соединение через разделитель. А вот задачи на последовательности, где первый и/или последний элемент - особые, встречается довольно часто. В некоторых случаях удобнее перед обработкой изменить первый или последний элемент, чтобы он стал "таким же", как остальные. Например, в строке, разделенной на слова пробелами, поставить в начало и в конец пробел, чтобы все слова были заключены между пробелами. Иногда изменять диапазон цикл нежелательно или нельзя (например, элементы перебираются каким-то внешним механизмом, который нельзя изменить, а мы можем задавать только обработку очередного элемента). Кроме опознания первого (или последнего) элемента и его особой обработки ( 6:24 ), можно после цикла сделать что-то, что модифицирует обработку первого или последнего так, как нам нужно. В видео показано удаление лишнего пробела при помощи lstrip. Иногда можно присвоить переменной-результату такое начальное значение, чтобы стандартная обработка первого элемента превратилась в особую обработку первого элемента. В нашем случае, нужно бы перед циклом присвоить переменной s некий "антипробел" (символ из антиматерии), который бы уничтожил лишний пробел, добавленный перед первым словом. Но, увы, такого символа в кодовой таблице нет...
@СергейЧистяков-ь2х
Я не понял , я понял или не понял под этот алфавит ставятся индексы от нуля где t ! И типо он сам сразу смотрит первая буква п индекс 16 и ставит в нижнем регистре или не так?
@nihaoarigato
@nihaoarigato 2 года назад
Сколько раз вы отмотали назад от этого тайминга 6:18 , чтобы понять?
@ibrahimoglu
@ibrahimoglu 3 года назад
👍
@Jdjkjh
@Jdjkjh Год назад
4:04😂хорошо сказано
@yuriitkachenko2115
@yuriitkachenko2115 3 года назад
сколько ещё будет уроков?
@selfedu_rus
@selfedu_rus 3 года назад
65 всего
@kenrosenberg7146
@kenrosenberg7146 3 года назад
@@selfedu_rus а ООП будет?
@ЭльдарДадашевич
@ЭльдарДадашевич 2 года назад
@@selfedu_rus При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'
@mrup7192
@mrup7192 3 года назад
можно было просто slug = slug.replace('--', '-') без while, наверное )
@selfedu_rus
@selfedu_rus 3 года назад
нельзя ) например, при трех подряд дефисах
@mrup7192
@mrup7192 3 года назад
стыд........ Наверное слишком много думаю хаха
@selfedu_rus
@selfedu_rus 3 года назад
@@mrup7192 все ошибаются )
@susenya
@susenya 10 месяцев назад
7.20 здесь можно было просто print(*words)
@Putu_pererenan
@Putu_pererenan 2 месяца назад
Это просто вывод в консоль, а не склейка
@mlbb-maniac
@mlbb-maniac 3 года назад
Объясняете хорошо, но мягкие буквы т, д и прочие, дикция как будто картошку в рот положили для русского языка звучит ужасно для меня, уши не выдерживают слушать долго , как будто слюни во рту проглотить не получается , извините конечно, на вкус и цвет все фломастеры разные . Но объясняете хорошо, спасибо
@ТатьянаТоропина-б3т
А мне, наоборот, дикция автора нравится.
@mlbb-maniac
@mlbb-maniac 3 года назад
@@ТатьянаТоропина-б3т видно, что человек работал над дикцией, слова произносятся словно оканчивал курсы на диктора. Но лично я не могу слушать долго и не раздражаться через некоторое время. Я надеюсь что будет больше поклонников данного канала и всё такое, мне лично важно чтобы информацию доносил хорошо, и я получил информацию по фласку с данного канала, а это главное
@denistalko6585
@denistalko6585 3 года назад
Русский язык тоже разный. И в разных регионах говорят совершенно по разному, со своими фонетическими диалектами. Так что это нормально.
@ВладВ-г8ъ
@ВладВ-г8ъ Год назад
А есть картавые ещё! А ещё есть не выговаривающие букву Л например, вместо неё говорят В! Им что рот не открывать теперь?
@PISKA-un8cg
@PISKA-un8cg 10 месяцев назад
5:21, а нельзя ли просто убрать пробел начале, написав s[1::]😅
@Putu_pererenan
@Putu_pererenan 2 месяца назад
Зачем, если можно пробел просто указать после? s += w + ' '
Далее
28 Вложенные циклы Python
16:45
Просмотров 108 тыс.