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

แชร์
ฝัง
  • เผยแพร่เมื่อ 26 ธ.ค. 2024

ความคิดเห็น • 104

  • @vlad-qx5fu
    @vlad-qx5fu ปีที่แล้ว +21

    ВЫ преподаватель от Бога!!!
    Могу это сказать как коллега с 25 летним стажем.
    Низкий вам поклон за вашу работу!!! Конструктивность, подача, юмор, и тд. Огромное Mirci!
    Пусть добрые слова, согреют вас всегда!👆🙏🙏🙏💪🦾

    • @DmitryTimofeev
      @DmitryTimofeev 5 หลายเดือนก่อน

      Согласен! Гениальный педагог! Я купил несколько книг по Python, но только благодаря Сергею, начал действительно понимать.

  • @elenalevasheva3830
    @elenalevasheva3830 ปีที่แล้ว +4

    Спасибо большое за чудесный урок. Опять новое открытие. Это как увлекательное путешествие с добрым и надежным другом.

  • @СергейАрхипов-р8о
    @СергейАрхипов-р8о ปีที่แล้ว +2

    Доходчиво, кратко - возможно есть и лучше, но не встречал. Ролики не на 1,5 часа, "зависаний" диктора нет, материал усваивается отлично. СПАСИБО!

  • @андрейхоменко-и5я
    @андрейхоменко-и5я 3 ปีที่แล้ว +19

    Как всегда супер. Как же важно знать функции по памяти. Это залог более быстрого решения задачи.

    • @anbur9197
      @anbur9197 8 หลายเดือนก่อน

      я если знаю, что такая функция или метод уже где-то был, но не помню точную реализацию, спрашиваю нейронную сеть))

    • @андрейхоменко-и5я
      @андрейхоменко-и5я 8 หลายเดือนก่อน

      @@anbur9197 тоже стал использовать. Но знание максимального количества функций позволит лучше и быстрее строить алгоритм.

    • @xrilicc1154
      @xrilicc1154 8 หลายเดือนก่อน

      Как успехи, кстати?​@@андрейхоменко-и5я

  • @norannohara4289
    @norannohara4289 ปีที่แล้ว +11

    вы не пердставляете мою улыбку когда похвалили за join, вы лучший
    p.s + 1000 к самоуверенности

  • @DmitryTimofeev
    @DmitryTimofeev 5 หลายเดือนก่อน +3

    Сергей, большое спасибо! Кстати пример со словами можно сделать даже проще, чем с методом join, просто поменяв слагаемые строки местами:
    words = ["дай", "мне", "сил"]
    s = ""
    for x in words:
    s += x + " "
    print(s)
    Но можно сделать и ещё короче:
    words = ["дай", "мне", "сил"]
    for x in words:
    print(x, end = " ")

  • @MrFog124
    @MrFog124 ปีที่แล้ว +3

    11:52 *Щ* пока что, почти всё, что вы рассказываете до 23 урока знаю, но с удовольствием смотрю и выполняю ваши задания. Спасибо большое за Ваши старания! Вы вносите огромный вклад в развитие самоучек!

    • @d1v1n3_p0vveR
      @d1v1n3_p0vveR 9 หลายเดือนก่อน

      какие еще задания ты выполняешь??? их нет, у тебя шиза чувак

  • @vbvbnnhgjkkdfgfghh5136
    @vbvbnnhgjkkdfgfghh5136 3 ปีที่แล้ว +7

    Здорово, интересный ролик. Спасибо.

  • @ВикторЖигурда
    @ВикторЖигурда 3 ปีที่แล้ว +5

    Рахмат! Как всегда selfedu рулит

  • @iiiukakaiiiukaka973
    @iiiukakaiiiukaka973 ปีที่แล้ว +2

    автор - красавчик, курс очень нравится

  • @nomadicus77
    @nomadicus77 ปีที่แล้ว +10

    Вот смотришь на последние задание и птички летают в голове, вроде всё понятно, но сам бы фиг такое написал)))

  • @andredru4278
    @andredru4278 10 หลายเดือนก่อน +1

    Спасибо. Понравилось занятие.

  • @mobyfactor
    @mobyfactor 2 ปีที่แล้ว +1

    Спасибо за курс,очень доходчиво объясняете

  • @abdulloakramov7941
    @abdulloakramov7941 ปีที่แล้ว +1

    Спасибо большое за урок

  • @ДмитрийСафронов-р2ъ
    @ДмитрийСафронов-р2ъ 3 ปีที่แล้ว +9

    Про .join подумал сразу но задача таки продемонстрировать цикл как метод реализации..больше вызвало сомнения конструкция которая убирала пробел. Я бы просто сделал срез без методов и циклов. мне кажется так было бы еще быстрее. В любом случаи спасибо!!! Я все эти темы знаю, но всегда полезно пересматривать! иногда когда закапываешься в сложных конструкциях то простого не замечаешь простого, а пересматривая уроки для начинающих порой находишь новые простые и давно забытые решения.

  • @jamjam3337
    @jamjam3337 ปีที่แล้ว +2

    спасибо!👏👍💥

  • @Putu_pererenan
    @Putu_pererenan 5 หลายเดือนก่อน +1

    Если бы меня так программировать учили, когда я начинал, я бы уже нахрен суперменом бы стал

  • @olegkomlev
    @olegkomlev 2 ปีที่แล้ว +3

    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 ปีที่แล้ว +1

      Конечно, в данном случае эффективнее всего join, но могут встретиться задачи, где нужна другая обработка элементов, а не соединение через разделитель. А вот задачи на последовательности, где первый и/или последний элемент - особые, встречается довольно часто. В некоторых случаях удобнее перед обработкой изменить первый или последний элемент, чтобы он стал "таким же", как остальные. Например, в строке, разделенной на слова пробелами, поставить в начало и в конец пробел, чтобы все слова были заключены между пробелами.
      Иногда изменять диапазон цикл нежелательно или нельзя (например, элементы перебираются каким-то внешним механизмом, который нельзя изменить, а мы можем задавать только обработку очередного элемента). Кроме опознания первого (или последнего) элемента и его особой обработки ( 6:24 ), можно после цикла сделать что-то, что модифицирует обработку первого или последнего так, как нам нужно. В видео показано удаление лишнего пробела при помощи lstrip. Иногда можно присвоить переменной-результату такое начальное значение, чтобы стандартная обработка первого элемента превратилась в особую обработку первого элемента. В нашем случае, нужно бы перед циклом присвоить переменной s некий "антипробел" (символ из антиматерии), который бы уничтожил лишний пробел, добавленный перед первым словом. Но, увы, такого символа в кодовой таблице нет...

  • @FreeCoinsChannel
    @FreeCoinsChannel 4 หลายเดือนก่อน +1

    Отличные уроки! Вы хорошо обьясняете...по вашим урокам много чего понял намного быстрее...а теперь хочу Вас немного поправить...на одном из первых уроков Вы говорили что хорошая практика использовать < вместо вместо >=...но Вы часто используете именно "="..)

    • @selfedu_rus
      @selfedu_rus  4 หลายเดือนก่อน

      Спасибо! Разница практически незаметна, поэтому не принципиально, особенно для Python. Успехов!

    • @FreeCoinsChannel
      @FreeCoinsChannel 4 หลายเดือนก่อน

      @@selfedu_rus я уже давно учу программирование...я понимаю что это может как-то отразиться только разве что в большом цыкле так как

    • @mcgregor9832
      @mcgregor9832 4 หลายเดือนก่อน

      ​@@FreeCoinsChannelнет. Оператор

    • @mcgregor9832
      @mcgregor9832 4 หลายเดือนก่อน +1

      ​@@FreeCoinsChannelиногда необходимо использовать именно =, а при возможности избегать. Это лишь нестрогая рекомендация

  • @Alowv
    @Alowv 8 หลายเดือนก่อน +2

    У меня в школе по вашим видео проводят урок

  • @proffootballplayer7389
    @proffootballplayer7389 ปีที่แล้ว +1

    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)

  • @suprun1982
    @suprun1982 3 ปีที่แล้ว +6

    Я просто красавчик)

  • @annoynmousss
    @annoynmousss 2 ปีที่แล้ว +4

    7:28 - print(*words) axax

  • @suiunbekiskenderov7444
    @suiunbekiskenderov7444 3 ปีที่แล้ว +2

    Спасибо

  • @DmytriyScience
    @DmytriyScience หลายเดือนก่อน

    Уже python выучил, а у этого учителя так мне ничего и непонятно, как было так и осталось😂

  • @timohahahehehe
    @timohahahehehe 2 ปีที่แล้ว +2

    11:38 себе

  • @ЭльдарДадашевич
    @ЭльдарДадашевич 2 ปีที่แล้ว +3

    При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'

    • @playt_pythonlearn
      @playt_pythonlearn 2 ปีที่แล้ว

      Как её решить?

    • @nevroisgoshausachi9027
      @nevroisgoshausachi9027 2 ปีที่แล้ว

      такая же ерунда не пойму что с этим делать?

    • @archibaldivanovich4103
      @archibaldivanovich4103 2 ปีที่แล้ว

      Здравствуйте столкнулся с такой же ошибкой!
      for s in title.lower():
      if "а"

    • @АндрейПятинкин-з1б
      @АндрейПятинкин-з1б ปีที่แล้ว

      @@playt_pythonlearn скорее всего вы в переменной start_index = 'a' -> написали а не кириллицей

    • @АринаРодионовна-ч7г
      @АринаРодионовна-ч7г ปีที่แล้ว

      @@АндрейПятинкин-з1б ошибка всё равно остаётся

  • @quasaro8601
    @quasaro8601 3 ปีที่แล้ว

    Подскажите есть видео обучение как на телефон установить Payton

    • @kneel6815
      @kneel6815 3 ปีที่แล้ว +5

      Питонить на телефоне. Теперь я видел всё

    • @quasaro8601
      @quasaro8601 3 ปีที่แล้ว

      @@kneel6815 не это ещё мелочь

    • @stilllifeenthusiast
      @stilllifeenthusiast ปีที่แล้ว

      @@kneel6815 ты смеёшься, а я реально пишу код на телефоне, потому что ноутбук или хотя бы маленький нетбук я позволить себе не могу, потому что какой ноутбук на учительскую зарплату?

    • @maxonchik4095
      @maxonchik4095 ปีที่แล้ว +2

      Pydroid

  • @Jdjkjh
    @Jdjkjh ปีที่แล้ว

    4:04😂хорошо сказано

  • @ordinar007
    @ordinar007 2 ปีที่แล้ว +1

    Здравствуйте! Очень классный канал. Смотрю ваши уроки. Огромное спасибо за ваш труд! Подскажите, пожалуйста, был ли урок о таких функциях как ord и chr ? Никак не идет задача с транслитерацией. Два дня сижу и уже разочарование в себе(((

    • @selfedu_rus
      @selfedu_rus  2 ปีที่แล้ว

      Спасибо! По этим функциям не помню, может в самом конце есть, но не факт. Если нет, то, как говорят в этих случаях, гугл в помощь )) Успехов!

  • @levprom4228
    @levprom4228 ปีที่แล้ว +2

    Не хватает кода из видео в текстовом виде.

  • @nihaoarigato
    @nihaoarigato 2 ปีที่แล้ว

    Сколько раз вы отмотали назад от этого тайминга 6:18 , чтобы понять?

  • @redfox6179
    @redfox6179 ปีที่แล้ว +2

    i = это просто переменная?

    • @redfox6179
      @redfox6179 ปีที่แล้ว

      отвечу сам
      Буква "i" часто используется в качестве переменной или итератора в циклах, особенно в математических и научных контекстах. Применение буквы "i" обусловлено ее ассоциацией с комплексными числами и индексами. Вот несколько причин, почему "i" может быть выбрана в качестве имени переменной:
      Индексация: Во многих случаях, особенно в циклах, переменная "i" используется для представления индексов элементов в коллекциях или последовательностях. Использование "i" стало традицией, и многие разработчики привыкли видеть ее в этой роли.
      Комплексные числа: В математике и научных областях буква "i" обычно обозначает мнимую единицу в комплексных числах. Поэтому, в некоторых случаях, когда в коде есть связь с комплексными числами или математическими операциями, выбор "i" в качестве имени переменной может быть логичным.
      Исторические прецеденты: В некоторых языках программирования, таких как C и его производные, соглашение использования "i" в качестве имени переменной для циклов было установлено десятилетия назад, и это стало широко принятым соглашением.
      Несмотря на широкое использование "i" в качестве имени переменной, важно помнить, что вы можете выбрать любое другое имя, которое лучше подходит для вашей конкретной ситуации. Главное правило при выборе имени переменной - делайте его понятным и описательным, чтобы облегчить чтение и понимание кода другим программистам.

  • @ibrahimoglu
    @ibrahimoglu 3 ปีที่แล้ว +1

    👍

  • @nitroexpress9928
    @nitroexpress9928 2 ปีที่แล้ว +2

    Печально конечно что чтобы изменить элемент нужно обязательно его индекс знать, в Жабаскрипте работа с массивами гораздо удобнее.

  • @aestheticanonym9503
    @aestheticanonym9503 2 ปีที่แล้ว +1

    а для чего нужна переменная p для вычесления факториала?

    • @merdanatayew589
      @merdanatayew589 2 ปีที่แล้ว

      Чтобы умножить все числа

  • @yuriitkachenko2115
    @yuriitkachenko2115 3 ปีที่แล้ว +1

    сколько ещё будет уроков?

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +3

      65 всего

    • @kenrosenberg7146
      @kenrosenberg7146 3 ปีที่แล้ว +3

      @@selfedu_rus а ООП будет?

    • @ЭльдарДадашевич
      @ЭльдарДадашевич 2 ปีที่แล้ว

      @@selfedu_rus При переводе строки с латиницы на кириллицу , если Python писать на английском будет ошибка list index out of range, так как по условию с 'а'

  • @gkenjutsu
    @gkenjutsu 3 ปีที่แล้ว +2

    Следующего урока нету пока((

  • @amadeus1300
    @amadeus1300 3 ปีที่แล้ว +2

    я красавчик )

  • @anbur9197
    @anbur9197 8 หลายเดือนก่อน

    7:21 а что насчет тех, кто думал о print(*words) ?

    • @Putu_pererenan
      @Putu_pererenan 5 หลายเดือนก่อน

      Это просто вывод в консоль, а не склейка

  • @СергейЧистяков-ь2х
    @СергейЧистяков-ь2х 3 ปีที่แล้ว

    Я не понял , я понял или не понял под этот алфавит ставятся индексы от нуля где t ! И типо он сам сразу смотрит первая буква п индекс 16 и ставит в нижнем регистре или не так?

  • @CRESHT
    @CRESHT 2 ปีที่แล้ว +2

    Лучше всего 5 звезд. 🤣

  • @svmanek
    @svmanek ปีที่แล้ว +2

    Очень интересно, но ничего не понятно...

  • @waydao4958
    @waydao4958 3 ปีที่แล้ว +4

    А можно было w + ' ')))

    • @streamdream-ru
      @streamdream-ru 3 ปีที่แล้ว

      Тоже напрашивался такой вариант. Но тогда пробел был бы в конце)

    • @waydao4958
      @waydao4958 3 ปีที่แล้ว +1

      @@streamdream-ru но его бы было не видно)))

  • @Piratka521
    @Piratka521 ปีที่แล้ว +3

    ну вот, я не красавчик 😭

  • @jarefmozz9988
    @jarefmozz9988 ปีที่แล้ว +1

    12:55 Ерунда какая-то... ord('a') это 1072, 0-1072 будет -1072, значения в t с индексом -1072 нет, т.е. вместо английской а не должно ничего выводится, или вообще быть ошибка, но ошибки нет, он как по волшебству выводит то, что надо...

    • @Taron8117
      @Taron8117 ปีที่แล้ว +1

      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 ปีที่แล้ว +1

      ​@@Taron8117что такое ord()? может я что-то пропустил, но я не разу не видел этот оператор

    • @Taron8117
      @Taron8117 ปีที่แล้ว

      @@effort48ff ord() возвращает числовое значение переданного символа, то есть его код в Unicode

    • @АристархРоссолимо
      @АристархРоссолимо 11 หลายเดือนก่อน +1

      ​@@Taron8117блин спасибо, очень помог ваш комментарий пока я тупил 1,5 часа

    • @АристархРоссолимо
      @АристархРоссолимо 11 หลายเดือนก่อน

      ​@@Taron8117созрел ещё вопрос, в слаг.каунт два дефис на слаг.реплейс, почему происходит между 'пайтон' и 'лучший' одно дефис ведь там в самой строке содержиться дефис, так что получается два дефис меняется на одно и плюс дефис которое есть в самой строке в итоге должно отобразиться два дефис. Но в консоле одно, почему так?

  • @mrup7192
    @mrup7192 3 ปีที่แล้ว

    можно было просто slug = slug.replace('--', '-') без while, наверное )

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +2

      нельзя ) например, при трех подряд дефисах

    • @mrup7192
      @mrup7192 3 ปีที่แล้ว

      стыд........
      Наверное слишком много думаю хаха

    • @selfedu_rus
      @selfedu_rus  3 ปีที่แล้ว +2

      @@mrup7192 все ошибаются )

  • @susenya
    @susenya ปีที่แล้ว +1

    7.20 здесь можно было просто print(*words)

    • @Putu_pererenan
      @Putu_pererenan 5 หลายเดือนก่อน +1

      Это просто вывод в консоль, а не склейка

  • @mefodymo7456
    @mefodymo7456 2 ปีที่แล้ว +3

    Перемудреный пример с переводом букв

  • @ОлегАлексеев-н3м
    @ОлегАлексеев-н3м 9 หลายเดือนก่อน +1

    Использовать циклы для решения задачи с факториалом неубедительно . Нахрена столько страданий когда можно сделать просто так
    import math
    n = int(input("Введите натуральное число не более 100:"))
    if n100:
    print("Неверно введенное число")
    else:
    j = math.factorial(n)
    print(j)

  • @mlbb-maniac
    @mlbb-maniac 3 ปีที่แล้ว +1

    Объясняете хорошо, но мягкие буквы т, д и прочие, дикция как будто картошку в рот положили для русского языка звучит ужасно для меня, уши не выдерживают слушать долго , как будто слюни во рту проглотить не получается , извините конечно, на вкус и цвет все фломастеры разные . Но объясняете хорошо, спасибо

    • @ТатьянаТоропина-б3т
      @ТатьянаТоропина-б3т 3 ปีที่แล้ว +4

      А мне, наоборот, дикция автора нравится.

    • @mlbb-maniac
      @mlbb-maniac 3 ปีที่แล้ว

      @@ТатьянаТоропина-б3т видно, что человек работал над дикцией, слова произносятся словно оканчивал курсы на диктора. Но лично я не могу слушать долго и не раздражаться через некоторое время. Я надеюсь что будет больше поклонников данного канала и всё такое, мне лично важно чтобы информацию доносил хорошо, и я получил информацию по фласку с данного канала, а это главное

    • @denistalko6585
      @denistalko6585 3 ปีที่แล้ว +1

      Русский язык тоже разный. И в разных регионах говорят совершенно по разному, со своими фонетическими диалектами. Так что это нормально.

    • @ВладВ-г8ъ
      @ВладВ-г8ъ 2 ปีที่แล้ว +2

      А есть картавые ещё! А ещё есть не выговаривающие букву Л например, вместо неё говорят В! Им что рот не открывать теперь?

  • @sudokuHunter
    @sudokuHunter 4 หลายเดือนก่อน +2

    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']
    Для тех кому надо

  • @PISKA-un8cg
    @PISKA-un8cg ปีที่แล้ว

    5:21, а нельзя ли просто убрать пробел начале, написав s[1::]😅

    • @Putu_pererenan
      @Putu_pererenan 5 หลายเดือนก่อน

      Зачем, если можно пробел просто указать после? s += w + ' '

  • @gayratsaidakhmedov5451
    @gayratsaidakhmedov5451 ปีที่แล้ว +1

    спасибо