Частые ошибки начинающих питонистов

Поділитися
Вставка
  • Опубліковано 18 гру 2024

КОМЕНТАРІ • 70

  • @George-eb3bw
    @George-eb3bw 2 роки тому +18

    00:00 непонятные названия переменных
    10:31 использование контактенации
    13:05 усложнение кода тем, что и так произойдет по умолчанию #пример: (str(input())
    16:25 использование list compr вместо range
    19:15 использование функций map, filter, reduce вместо list compr
    23:25 использования вместо while True других конструкций для вечного цикла
    23:40 использование квадратных скобок для list compr без необходимости
    29:30 использование индексов в цикле for #пример: for i in range(len(list))
    33:30 использование функции len при проверке наличия элементов в коллекции
    35:30 использование флага в цикле без необходимости
    37:50 в блоке except замалчивание ошибки и неиспользование конкретного исключения

  • @ЧакСобчак-ж8з
    @ЧакСобчак-ж8з 4 місяці тому

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

  • @lichrave6805
    @lichrave6805 8 місяців тому +1

    Многие ошибки прямо сейчас совершаю и учусь дальше их делать(обучают в онлайн школе програмирования). Спасибо за информацию, просто чудом попал на ваш канал.

  • @user-tt9hx4kh1e
    @user-tt9hx4kh1e 2 місяці тому

    Спустя год плотного изучения питона пришел ко всему, что сказано в видео. Больше не понтуюсь колбасой с map и filter. С английским не очень, но под рукой переводчик 24/7, так что проблем с этим нет. Я стал думать о всех, кто будет читать мой код и стараюсь делать его понятным каждому

  • @Insidepointg
    @Insidepointg Рік тому +1

    очень недооцененный контент, автор дает отличные знания и я вообще счастлив что наткнулся на его канал. Так качественно и понятно подавать знания это надо уметь, второй такой человек на мой взгляд это Тимофей Хирьянов

    • @PythonRussian
      @PythonRussian  Рік тому +1

      спасибо за отзыв. В ваших силах помочь - порекомендовать друзьям, поделиться в соцсетях

  • @Laserball74
    @Laserball74 2 роки тому +2

    молодец! Закинул себе в избранное 👌

  • @IlyaIlya_lopkop
    @IlyaIlya_lopkop 3 роки тому +5

    Супер-бомба, больше видео!

  • @ДмитрийЛахменев
    @ДмитрийЛахменев 2 роки тому +2

    Отличная подача материала, почерпнул новый фишки для себя. Лайк однозначно!

  • @barma1309
    @barma1309 2 роки тому +2

    спасибо за видосы!! Очень в книгах не хватает бест практикс разделов

  • @y18kotov
    @y18kotov 2 роки тому +2

    Спасибо! очень поззнавательно.

  • @artemtakingpictures
    @artemtakingpictures 3 роки тому +3

    спасибо, очень полезно! про f строки у меня не было ясности, какой именно вариант использовать, сейчас понятно что просто пишем все на них

    • @PythonRussian
      @PythonRussian  3 роки тому +3

      у меня есть отдельно видео по ф-строкам, посмотри тоже ua-cam.com/video/vbZTVaulTdk/v-deo.html

  • @Pumba053
    @Pumba053 3 роки тому +2

    Спасибо, отличный туториал!

  • @mrmedbedb1256
    @mrmedbedb1256 2 роки тому +2

    По последнему пункту можно ещё так:
    try:
    int('a')
    except Exception as err:
    print(f'{err}, {err.args}')
    Если не знаешь, какие исключения выпадут, то таким образом их можно зафиксировать.

  • @ВладимирГригорьевич-у2р

    за 26:21 большое спасибо

  • @ВладимирГригорьевич-у2р

    на форуме решений теперь умничаю, но конечно со ссылкой сюды

  • @polunochNY
    @polunochNY 3 роки тому +1

    ушла всё переписывать! :)

  • @ВладимирКолобов-к3х
    @ВладимирКолобов-к3х Місяць тому +1

    Информация класс !! Но из за ооочень маленького шрифта тяжело присматриваться !! Не у всех зрение как у орла !! Пожалуйста делай шрифт побольше - это не трудно !!

  • @andrewpuchinin8547
    @andrewpuchinin8547 Рік тому +2

    Хочется сказать про dict.get(key,None). Не знаю точно, откуда это пошло, но со своей стороны могу предположить, что это пишется как "напоминалка" другому программисту: мол, ты не забудь, что тут еще может быть None. Наверное, люди предполагают, что, если их get() вернет None, то другой человек может долго думать, а откуда этот None взялся. А так типа видно
    Но еще раз, я не анализировал столько много кода новичков, как вы, так что только допускаю

    • @АртёмВолощук-г1в
      @АртёмВолощук-г1в Рік тому

      Гуглил что делать когда у меня из mongoDb не вернулся узел, как проверить на none да ещё и что бы не писать if. Так вот какая то из вверхних ссылок подсказала что есть get и именно с none. при чём не пример, при этом ссылки на документацию небыло и упоминания что он не нужен тоже. А так как это работает и не сильно было запарно то я так и написал.

  • @mm_dima
    @mm_dima Рік тому +1

    Насчёт лист компрехеншнс, делаю вообще так - [*range(10)]

  • @rpuropu
    @rpuropu 3 роки тому +2

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

    • @PythonRussian
      @PythonRussian  3 роки тому +4

      конечно не реально. Я хоть и автор но тоже советую идти постепенно, помни что многие вещи никак не понять если не прочувствовать написав код. То есть пишем много кода -это единственный способ научиться программировать! Ролики никуда не убегут =)

  • @ВладимирГригорьевич-у2р

    и вот этот list(map) постоянно я использую, ну теперь =) использовал =)

  • @api-nsk
    @api-nsk 3 роки тому +7

    Нравится манера подачи материала, все последовательно и четко. Но "новичк*" всегда лишним кажется. Весь контент у вас основан на обучении и исправлении действий как для начинающих, так и отучении от устаревшего кодинга профессионала. Если опустить "встречал у новичков" на "встречал", то суть не изменится :-)
    Возможно говорю это не зря, так как являясь подписчиком канала буду буду лучше воспринимать подачу, как и другие.

    • @PythonRussian
      @PythonRussian  3 роки тому +2

      ну тут логика простая -я рассказываю как раз о том, что часто вижу, в том числе при код-ревью или на форуме. Просто не хочу брать темы с потолка и подумал, что скажем новичок более внимательно отнесется к тому, что показано в видео, если слышит что это частая ошибка/проблема и его тоже может коснуться, чем просто "давайте поговорим о декораторах". Но и вашу точку зрения понимаю, постараюсь избавиться от этого. Полагаю что те, кто посмотрел хоть сколько то видео на канале уже поймут, что речь пойдет о каких то важных вещах, в которых ошибаются программисты.

  • @bbty_4086
    @bbty_4086 3 роки тому

    1:49 скажите пожалуйста какая клавиша раставила пробелы тут и где можно найти список таких полезностей.

    • @PythonRussian
      @PythonRussian  3 роки тому +1

      вот тут посмотри ua-cam.com/video/Jmkep5EbQQY/v-deo.html

  • @edgull_tlt
    @edgull_tlt 3 роки тому

    Спасибо

  • @ВладимирГригорьевич-у2р

    Как вы относитесь к частому исползованию
    if : break ?
    Почему интересуюсь, потому что преподователь часто говорит что бы максимально избегать этой конструкции, но не объясняет толком почему, мол не понятно читающиму будет. А обратной связи с ним нэма, так как запись там...если честно, я как то подсел на этот break..., и потому задался вопросом у Вас

    • @PythonRussian
      @PythonRussian  3 роки тому +1

      приведите пожалуйста пример, не совсем понимаю. Дело в том, что break это не пара для if, это оператор выхода из цикла. Видимо вы какие то условия проверяете в цикле. Если выложите какой-нибудь код на pastebin и ссылку сюда, то смогу сказать точнее. Пока вроде не вижу проблем

    • @ВладимирГригорьевич-у2р
      @ВладимирГригорьевич-у2р 3 роки тому +2

      @@PythonRussian да да, в WHILE, что то я тупанул, не уточнив, а код как нибудь потом, а то чот я стесняюсь =)

    • @ВладимирГригорьевич-у2р
      @ВладимирГригорьевич-у2р 3 роки тому

      @@PythonRussian pastebin.com/MEvikSWM

    • @PythonRussian
      @PythonRussian  3 роки тому +1

      @@ВладимирГригорьевич-у2р я прошу прощения, мне почему то этот комментарий Ютуб не показал, потому не ответил, а сейчас уже не активна ссылка. Сможете еще раз выложить код?

    • @ВладимирГригорьевич-у2р
      @ВладимирГригорьевич-у2р 3 роки тому +1

      @@PythonRussian страннол девки пляшут, я же выложил повторно, нет коммента, ютуб походу удалил....

  • @SemyonKalyakulin
    @SemyonKalyakulin Рік тому +1

    Так а в каких все же случаях map и filter будут понятнее?)

    • @PythonRussian
      @PythonRussian  Рік тому +1

      честно говоря, когда видео снимал , у меня был какой то хороший пример из практики наготове, но теперь не могу вспомнить контекст. Короче мап-фильтр хороши для тех кто пришел с других ЯП (где они есть), для любителей функциональной парадигмы, а также при работе с reduce и itertools (местами). Вот так еще можно написать кратко
      >>> from operator import add
      >>> map(add, list1, list2)
      Конечно можно сделать генэксп с zip, но уже не так кратко.

    • @SemyonKalyakulin
      @SemyonKalyakulin Рік тому

      @@PythonRussian спасибо. Не знал, что map умеет работать с множеством iterable сразу))

  • @user-gp6vm4jc9p
    @user-gp6vm4jc9p 3 роки тому +1

    А у меня в Python 3.10 не получается такого результата, как в вашем примере по правилу №5. У меня print((e ** 2 for e in range(10) if e % 2 == 0)) выводит: , а не [0, 4, 16, 36, 64]. Чтобы получить список нужно [ ] ставить. Это специфика данной версии Илия где-то ошибаюсь?

    • @PythonRussian
      @PythonRussian  3 роки тому

      это вы где то ошибаетесь - с круглыми скобками это генэксп, что вам и пишет, если нужен результат, то или действительно формировать список или использовать распаковку в стиле print(*(e ** 2 for e in range(10) if e % 2 == 0)).

    • @user-gp6vm4jc9p
      @user-gp6vm4jc9p 3 роки тому

      @@PythonRussian Понятно, спасибо. Я, собственно, так и думал. Просто я повторил запись, что была на экране (там звездочки не было после print: ...(*(e...) , и удивился, что такой вывод у вас дал именно результат, а не констатацию факта, что используется генэксп. :)).
      Еще раз спасибо за ролики! Они действительно очень понятны и, что тоже немаловажно, хорошим русским языком озвучены.

  • @Nikola_Kreslo
    @Nikola_Kreslo 3 роки тому

    Not bad, not bad

  • @ВладимирГригорьевич-у2р

    1 == 1, ыыыы =) прям как я

  • @МаксимЛапин-ж8о
    @МаксимЛапин-ж8о 3 роки тому

    👍

  • @ИгорьЛатуха
    @ИгорьЛатуха 3 роки тому

    В - внезапность

  • @kan4317
    @kan4317 3 роки тому

    Конкотенация быстрее форматирования примерно в 3 раза
    А еще в блоке except лучше писать print(repr(e)) выведет еще и имя исключения

    • @PythonRussian
      @PythonRussian  3 роки тому

      это вы как посчитали? с помощью timeit попробуйте конкатенацию трех строковых переменных, а потом формирование ф-строк с ними же. Форматирование быстрее. Плюс промежуточные объекты не создаются в памяти

    • @kan4317
      @kan4317 3 роки тому

      @@PythonRussian только что попробовал. 10кк итераций с f-строками дают в среднем 2.3 сек
      Конкотенация тех же переменных 1.8 сек

    • @kan4317
      @kan4317 3 роки тому

      Тройной прирост у меня получался без определения переменных, в тупую готовые строки

    • @PythonRussian
      @PythonRussian  3 роки тому +1

      @@kan4317 у меня питон 3.8, ф-строки на 10 миллионах повторов в среднем формируются за 143 наносекунды, конкатенация переменных 181 наносекунда. Да разница невелика но уж точно не в 3 раза в пользу одного варианта и плюс ф-строки побыстрее, поудобнее и поправильнее.

    • @kan4317
      @kan4317 3 роки тому +1

      @@PythonRussian каюсь, поставил в неравные условия, при конкотенации не добавлял пробелы

  • @user-sq1fe3ku5m
    @user-sq1fe3ku5m 2 роки тому

    недооцененный канал...а жаль...масса полезного...

  • @sagenovalstybes706
    @sagenovalstybes706 3 роки тому +1

    Не знаю, откудa Вы это взяли: e**2 for e in range(10) if e%2==0, но на питоне 3.5.3 уже работает range(0,10,2)

    • @PythonRussian
      @PythonRussian  3 роки тому

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

  • @МайяГоворова-ы7и

    Ох, из учебников для новичков это все убрали бы)

  • @rpuropu
    @rpuropu 3 роки тому

    из С++ это пошло стр(инпут())

    • @PythonRussian
      @PythonRussian  3 роки тому +2

      спасибо вам большое! реально просто не понимал почему это все пишут =) и главное когда спрашиваешь -молчат. Я уж думал это что-то из глубин нашей психологии, а оно вон как оказывается.

    • @rpuropu
      @rpuropu 3 роки тому

      @@PythonRussian я не имел ввиду синтаксис, я имел ввиду как раз психологию) блоксхема рождённая в С++ она и тут работает)

    • @warpingdrum3712
      @warpingdrum3712 8 місяців тому

      @@PythonRussian во втором Пытхоне инпут пытался вычислить вводимое выражение. Там еще был рав_инпут , но это не то же самое, что стр(инпут())

    • @PythonRussian
      @PythonRussian  8 місяців тому

      @@warpingdrum3712 вы кажется правы, но это ж с каких старых туториалов значит код списывают

  • @sinrew2073
    @sinrew2073 3 роки тому

    Спасибо