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 замалчивание ошибки и неиспользование конкретного исключения
@lichrave68058 ай бұрын
Многие ошибки прямо сейчас совершаю и учусь дальше их делать(обучают в онлайн школе програмирования). Спасибо за информацию, просто чудом попал на ваш канал.
@ЧакСобчак-ж8з4 ай бұрын
наткнулся на канал случайно несколько дней назад. Никогда не встречал чтобы настолько доходчиво доносили информацию, видео взахлеб залетают. Спасибо дружище👍
@user-tt9hx4kh1e2 ай бұрын
Спустя год плотного изучения питона пришел ко всему, что сказано в видео. Больше не понтуюсь колбасой с map и filter. С английским не очень, но под рукой переводчик 24/7, так что проблем с этим нет. Я стал думать о всех, кто будет читать мой код и стараюсь делать его понятным каждому
@Insidepointg Жыл бұрын
очень недооцененный контент, автор дает отличные знания и я вообще счастлив что наткнулся на его канал. Так качественно и понятно подавать знания это надо уметь, второй такой человек на мой взгляд это Тимофей Хирьянов
@PythonRussian Жыл бұрын
спасибо за отзыв. В ваших силах помочь - порекомендовать друзьям, поделиться в соцсетях
@IlyaIlya_lopkop3 жыл бұрын
Супер-бомба, больше видео!
@Laserball742 жыл бұрын
молодец! Закинул себе в избранное 👌
@ДмитрийЛахменев3 жыл бұрын
Отличная подача материала, почерпнул новый фишки для себя. Лайк однозначно!
@y18kotov2 жыл бұрын
Спасибо! очень поззнавательно.
@barma13092 жыл бұрын
спасибо за видосы!! Очень в книгах не хватает бест практикс разделов
@Pumba0533 жыл бұрын
Спасибо, отличный туториал!
@mrmedbedb12562 жыл бұрын
По последнему пункту можно ещё так: try: int('a') except Exception as err: print(f'{err}, {err.args}') Если не знаешь, какие исключения выпадут, то таким образом их можно зафиксировать.
@artemtakingpictures3 жыл бұрын
спасибо, очень полезно! про f строки у меня не было ясности, какой именно вариант использовать, сейчас понятно что просто пишем все на них
@PythonRussian3 жыл бұрын
у меня есть отдельно видео по ф-строкам, посмотри тоже kzbin.info/www/bejne/rJO9hYmXqtGHms0
@andrewpuchinin8547 Жыл бұрын
Хочется сказать про dict.get(key,None). Не знаю точно, откуда это пошло, но со своей стороны могу предположить, что это пишется как "напоминалка" другому программисту: мол, ты не забудь, что тут еще может быть None. Наверное, люди предполагают, что, если их get() вернет None, то другой человек может долго думать, а откуда этот None взялся. А так типа видно Но еще раз, я не анализировал столько много кода новичков, как вы, так что только допускаю
@АртёмВолощук-г1в Жыл бұрын
Гуглил что делать когда у меня из mongoDb не вернулся узел, как проверить на none да ещё и что бы не писать if. Так вот какая то из вверхних ссылок подсказала что есть get и именно с none. при чём не пример, при этом ссылки на документацию небыло и упоминания что он не нужен тоже. А так как это работает и не сильно было запарно то я так и написал.
@ВладимирГригорьевич-у2р3 жыл бұрын
за 26:21 большое спасибо
@rpuropu3 жыл бұрын
блин, я вот вижу что твои ролики суперполезны... но освоить это всё сразу нереально)).. я просмотрю все твои видео и буду их по кругу гонять кжадый день перед сном и во время отдыха, чтобы пока практикую узнавать ситуации хотя бы.. ох
@PythonRussian3 жыл бұрын
конечно не реально. Я хоть и автор но тоже советую идти постепенно, помни что многие вещи никак не понять если не прочувствовать написав код. То есть пишем много кода -это единственный способ научиться программировать! Ролики никуда не убегут =)
@ВладимирКолобов-к3хАй бұрын
Информация класс !! Но из за ооочень маленького шрифта тяжело присматриваться !! Не у всех зрение как у орла !! Пожалуйста делай шрифт побольше - это не трудно !!
@mm_dima Жыл бұрын
Насчёт лист компрехеншнс, делаю вообще так - [*range(10)]
@ВладимирГригорьевич-у2р3 жыл бұрын
на форуме решений теперь умничаю, но конечно со ссылкой сюды
@edgull_tlt3 жыл бұрын
Спасибо
@polunochNY3 жыл бұрын
ушла всё переписывать! :)
@api-nsk3 жыл бұрын
Нравится манера подачи материала, все последовательно и четко. Но "новичк*" всегда лишним кажется. Весь контент у вас основан на обучении и исправлении действий как для начинающих, так и отучении от устаревшего кодинга профессионала. Если опустить "встречал у новичков" на "встречал", то суть не изменится :-) Возможно говорю это не зря, так как являясь подписчиком канала буду буду лучше воспринимать подачу, как и другие.
@PythonRussian3 жыл бұрын
ну тут логика простая -я рассказываю как раз о том, что часто вижу, в том числе при код-ревью или на форуме. Просто не хочу брать темы с потолка и подумал, что скажем новичок более внимательно отнесется к тому, что показано в видео, если слышит что это частая ошибка/проблема и его тоже может коснуться, чем просто "давайте поговорим о декораторах". Но и вашу точку зрения понимаю, постараюсь избавиться от этого. Полагаю что те, кто посмотрел хоть сколько то видео на канале уже поймут, что речь пойдет о каких то важных вещах, в которых ошибаются программисты.
@bbty_40863 жыл бұрын
1:49 скажите пожалуйста какая клавиша раставила пробелы тут и где можно найти список таких полезностей.
@PythonRussian3 жыл бұрын
вот тут посмотри kzbin.info/www/bejne/gJ7OlqNreseEh7s
@ВладимирГригорьевич-у2р3 жыл бұрын
Как вы относитесь к частому исползованию if : break ? Почему интересуюсь, потому что преподователь часто говорит что бы максимально избегать этой конструкции, но не объясняет толком почему, мол не понятно читающиму будет. А обратной связи с ним нэма, так как запись там...если честно, я как то подсел на этот break..., и потому задался вопросом у Вас
@PythonRussian3 жыл бұрын
приведите пожалуйста пример, не совсем понимаю. Дело в том, что break это не пара для if, это оператор выхода из цикла. Видимо вы какие то условия проверяете в цикле. Если выложите какой-нибудь код на pastebin и ссылку сюда, то смогу сказать точнее. Пока вроде не вижу проблем
@ВладимирГригорьевич-у2р3 жыл бұрын
@@PythonRussian да да, в WHILE, что то я тупанул, не уточнив, а код как нибудь потом, а то чот я стесняюсь =)
@ВладимирГригорьевич-у2р3 жыл бұрын
@@PythonRussian pastebin.com/MEvikSWM
@PythonRussian3 жыл бұрын
@@ВладимирГригорьевич-у2р я прошу прощения, мне почему то этот комментарий Ютуб не показал, потому не ответил, а сейчас уже не активна ссылка. Сможете еще раз выложить код?
@ВладимирГригорьевич-у2р3 жыл бұрын
@@PythonRussian страннол девки пляшут, я же выложил повторно, нет коммента, ютуб походу удалил....
@SemyonKalyakulin Жыл бұрын
Так а в каких все же случаях map и filter будут понятнее?)
@PythonRussian Жыл бұрын
честно говоря, когда видео снимал , у меня был какой то хороший пример из практики наготове, но теперь не могу вспомнить контекст. Короче мап-фильтр хороши для тех кто пришел с других ЯП (где они есть), для любителей функциональной парадигмы, а также при работе с reduce и itertools (местами). Вот так еще можно написать кратко >>> from operator import add >>> map(add, list1, list2) Конечно можно сделать генэксп с zip, но уже не так кратко.
@SemyonKalyakulin Жыл бұрын
@@PythonRussian спасибо. Не знал, что map умеет работать с множеством iterable сразу))
@МаксимЛапин-ж8о3 жыл бұрын
👍
@user-gp6vm4jc9p3 жыл бұрын
А у меня в Python 3.10 не получается такого результата, как в вашем примере по правилу №5. У меня print((e ** 2 for e in range(10) if e % 2 == 0)) выводит: , а не [0, 4, 16, 36, 64]. Чтобы получить список нужно [ ] ставить. Это специфика данной версии Илия где-то ошибаюсь?
@PythonRussian3 жыл бұрын
это вы где то ошибаетесь - с круглыми скобками это генэксп, что вам и пишет, если нужен результат, то или действительно формировать список или использовать распаковку в стиле print(*(e ** 2 for e in range(10) if e % 2 == 0)).
@user-gp6vm4jc9p3 жыл бұрын
@@PythonRussian Понятно, спасибо. Я, собственно, так и думал. Просто я повторил запись, что была на экране (там звездочки не было после print: ...(*(e...) , и удивился, что такой вывод у вас дал именно результат, а не констатацию факта, что используется генэксп. :)). Еще раз спасибо за ролики! Они действительно очень понятны и, что тоже немаловажно, хорошим русским языком озвучены.
@ВладимирГригорьевич-у2р3 жыл бұрын
и вот этот list(map) постоянно я использую, ну теперь =) использовал =)
@Nikola_Kreslo3 жыл бұрын
Not bad, not bad
@ВладимирГригорьевич-у2р3 жыл бұрын
1 == 1, ыыыы =) прям как я
@ИгорьЛатуха3 жыл бұрын
В - внезапность
@PythonRussian3 жыл бұрын
не уловил...
@ИгорьЛатуха3 жыл бұрын
Не ожиданно услышать вот.
@kan43173 жыл бұрын
Конкотенация быстрее форматирования примерно в 3 раза А еще в блоке except лучше писать print(repr(e)) выведет еще и имя исключения
@PythonRussian3 жыл бұрын
это вы как посчитали? с помощью timeit попробуйте конкатенацию трех строковых переменных, а потом формирование ф-строк с ними же. Форматирование быстрее. Плюс промежуточные объекты не создаются в памяти
@kan43173 жыл бұрын
@@PythonRussian только что попробовал. 10кк итераций с f-строками дают в среднем 2.3 сек Конкотенация тех же переменных 1.8 сек
@kan43173 жыл бұрын
Тройной прирост у меня получался без определения переменных, в тупую готовые строки
@PythonRussian3 жыл бұрын
@@kan4317 у меня питон 3.8, ф-строки на 10 миллионах повторов в среднем формируются за 143 наносекунды, конкатенация переменных 181 наносекунда. Да разница невелика но уж точно не в 3 раза в пользу одного варианта и плюс ф-строки побыстрее, поудобнее и поправильнее.
@kan43173 жыл бұрын
@@PythonRussian каюсь, поставил в неравные условия, при конкотенации не добавлял пробелы
@sagenovalstybes7063 жыл бұрын
Не знаю, откудa Вы это взяли: e**2 for e in range(10) if e%2==0, но на питоне 3.5.3 уже работает range(0,10,2)
@PythonRussian3 жыл бұрын
ну это же просто пример, хотел показать когда и фильтруем и преобразовываем.
@user-sq1fe3ku5m2 жыл бұрын
недооцененный канал...а жаль...масса полезного...
@МайяГоворова-ы7и Жыл бұрын
Ох, из учебников для новичков это все убрали бы)
@rpuropu3 жыл бұрын
из С++ это пошло стр(инпут())
@PythonRussian3 жыл бұрын
спасибо вам большое! реально просто не понимал почему это все пишут =) и главное когда спрашиваешь -молчат. Я уж думал это что-то из глубин нашей психологии, а оно вон как оказывается.
@rpuropu3 жыл бұрын
@@PythonRussian я не имел ввиду синтаксис, я имел ввиду как раз психологию) блоксхема рождённая в С++ она и тут работает)
@warpingdrum37128 ай бұрын
@@PythonRussian во втором Пытхоне инпут пытался вычислить вводимое выражение. Там еще был рав_инпут , но это не то же самое, что стр(инпут())
@PythonRussian8 ай бұрын
@@warpingdrum3712 вы кажется правы, но это ж с каких старых туториалов значит код списывают