7 Ошибок новичков в Python, которые нужно исключить

  Рет қаралды 31,025

ZProger [ IT ]

ZProger [ IT ]

Күн бұрын

Пікірлер
@mikeofs1304
@mikeofs1304 11 ай бұрын
Пункт 2 - НЕ в скорости , а в памяти. Ну иэто логично опять же - ведь по сути генератор это не структура данных в отличие от листа.
@zaza2258
@zaza2258 11 ай бұрын
Он и говорил о памяти, хотя я не помню чтобы кто-то утверждал что листкомп занимают меньше памяти, столько же сколько и обычные листы
@zproger
@zproger 11 ай бұрын
Да, есть такое, немножко не так выразился, а на монтаже забыл поправить
@subze.150
@subze.150 8 ай бұрын
Здравствуйте, а есть путиводитель к изучению пайтона и для дальнейшой карьеры?
@miroslavn1
@miroslavn1 11 ай бұрын
Для меня самое полезное было использование построчного профайлера. Как-то пропустил такую фишку :(. Обзор профайлеров и их использования, был бы полезен (мне)
@guiterenzog2723
@guiterenzog2723 11 ай бұрын
В чем смысл использовать NamedTuple в сравнении с обычным классом или датаклассом? Правда не вижу преимуществ, можно было обойтись обычным классом, раз он уже создан
@nice_souei
@nice_souei 11 ай бұрын
Именованный тапл занимает гораздо меньше памяти в сравнении с классом (если не использовать slots)
@0x255
@0x255 11 ай бұрын
NamedTule это прежде всего кортеж. можно вычитывать кортежи передавая распакованные значения в конструктор NamedTuple и на выходе получишь доступ к значениям по заданным именам а не по индексам, как в случае с обычным кортежем.
@gmanchelsi
@gmanchelsi 7 ай бұрын
Вроде проще арифметику с денежными единицами переводить в int, и вести расчеты в центах/копейках, 10 + 10 + 10 выглядит понятнее, чем Decimal("0.1") + Decimal("0.1") + Decimal("0.1")
@ache070707
@ache070707 11 ай бұрын
1:37 тут немного непонятные формулировки. [value for value in range(10000)] - генератор списков (value for value in range(10000) - генераторное выражение. Было бы очень полезно объяснить, почему такая разница между ними и чем это обусловлено. + когда применяют список, а когда кортежи. Таким образом, новички более углубленно поймут свои возможные ошибки.
@n1ret
@n1ret 11 ай бұрын
прикол в том, что сравнивать скорость по занимаемой памяти не корректно, так ещё и тут абсолютно разный функционал, первый вариант запишет всё в список, воторой создаст генератор без записывания и это вообще будет можно сказать функция
@GredfixTV
@GredfixTV 11 ай бұрын
Да сам вывод некорректен. Каким образом он измерил скорость функцией getsizeof?😂 getsizeof возвращает размер объекта и логично, что у генераторного выражения он меньше, потому что он хранит только текущее состояние Да и всегда надо понимать для чего тебе та или иная структура данных, а то такие видео "Топ 7 ошибок новичков" можно клепать сколько угодно, потому что эти самые ошибки и будут появляться из-за недостаточных объяснений
@CSGO-cr2ct
@CSGO-cr2ct 11 ай бұрын
​@@n1retА ты уверен что тебе нужен лист с миллионами значений? ты можешь создать генератор, и записывать уже в лист с генератора, что тебе надо и все, а не хранить мусорные значения, которыми ты даже в коде не будешь пользоваться 🤔
@АнатолийАнатолий-я1ъ
@АнатолийАнатолий-я1ъ 11 ай бұрын
Первая ошибка, видимо, это смотреть такие видео вместо чтения документации
@0x255
@0x255 11 ай бұрын
вы же в курсе, что генератор после выполнения итерации теряет её значение? другими словами - по генератору можно пройтись только один раз.
@МихаилПастушков-з5м
@МихаилПастушков-з5м 11 ай бұрын
самое полезное - нижнее подчеркивание для разделения разрядов, спасибо
@mrKazzila
@mrKazzila 11 ай бұрын
Во втором примере оговорился😬 разница в основном будет не в скорости, а по памяти
@zproger
@zproger 11 ай бұрын
Да, ошибочка
@voaldr
@voaldr 11 ай бұрын
Благодарю за примеры. Из-за них решился взятся за прочтение Лутца.
@zproger
@zproger 11 ай бұрын
Спасибо за фидбэк!
@shadr1n
@shadr1n 11 ай бұрын
Подкину идею Расскажи про комментарии в начале файла Для линукс систем и Си кода это важный момент Там что то про кодировку или че то такое Раскрой тему асинка, прочитал книжку хорошую много полезного подчеркнул, но не против увидеть другие реализации с методами асинка Раскрой тему пакетов модулей гита и подобное Раскрой тему командной работы с репозиторием это думаю круто, работаю с гитом один и ничего такого, а вот в команде страшно, пайчарм еще такие сообщения выдает при обновлении локального гита merge rebase, интересно узнать про пул реки и тд ну и вообще можно раскрыть как из терминала так и из пайчарм ❤
@LiftBuff
@LiftBuff 11 ай бұрын
А почему в последнем примере не написать декоратор timer, чтобы не загромождать код этими time.time time.time?)
@zproger
@zproger 11 ай бұрын
Этому есть причина, которую я называю словом "лень" :D
@LiftBuff
@LiftBuff 11 ай бұрын
Вот по этой причине многие хорошие блогеры и начинают скатываться)@@zproger
@Печенька-л8з
@Печенька-л8з 11 ай бұрын
Не знал про named tuple. Спасибо, очень полезно
@zproger
@zproger 11 ай бұрын
Благодарю
@renty3
@renty3 10 ай бұрын
Какой у тебя линукс дистрибутив, или мб плагины? интересно просто выглядит твоя система.
@zproger
@zproger 10 ай бұрын
это arch + кастом bspwm оболочка
@seal_pavel
@seal_pavel 10 ай бұрын
Зачем создавать класс и наследоваться от именованного кортежа, когда есть Data classes?
@SayXaNow
@SayXaNow 10 ай бұрын
0:50 ну я посчитал по твоим критериям: увеличил до миллиона транзакций в секунду. это работает годами. через 1000 лет банк потеряет 1 рубль из-за этой ужаснейшей ошибки. это действительно огромное количество расходов для компании.
@zproger
@zproger 10 ай бұрын
Думаю компания не выдержит таких потерь
@arkadarktime
@arkadarktime 11 ай бұрын
Разве round не округляет? :.1f просто удаляет, а round округляет так же?
@АндрейАмпелонов
@АндрейАмпелонов 11 ай бұрын
Первая ошибка новичка - изучать питон. Сначала надо научится программировать. Умение говнокодить - само придёт с годами))
@zproger
@zproger 11 ай бұрын
надо начинать с FASM, согласен
@droidnah
@droidnah 7 ай бұрын
Не, я конечно всё понимаю, но о "Кортыжах" слышу впервые...
@eng9507
@eng9507 10 ай бұрын
Блин, а как сделать так, чтобы у меня было все так же красиво как и ZProger, я понимаю, что это линукс, но ваще не шарб ни в кастомизации, ни в чем либо другом😬
@zproger
@zproger 10 ай бұрын
В следующем видео расскажу
@eng9507
@eng9507 10 ай бұрын
@@zproger огромное спасибо! 😁
@denizsincar29
@denizsincar29 11 ай бұрын
1 ошибка: не пишите на tkinter, пишите на wx. Ваши проги на ткинтере совсем не доступны для незрячих, так как gui рендерится не нативно, а читалки экрана для незрячих эти gui не понимают. «Видел» я небольшие скрипты для автоматизации. Написанные на tkinter... И я не мог пользоваться.
@zproger
@zproger 11 ай бұрын
Интересный момент, спасибо.
@criticalrock7244
@criticalrock7244 10 ай бұрын
Я нихера не понял, но было интересно и хочу в этом разобраться
@zproger
@zproger 10 ай бұрын
:0
@luckytima2315
@luckytima2315 11 ай бұрын
Братик нифига ты имба, на арче сидишь красиво )) Скажи что за тема в vscode?
@zproger
@zproger 11 ай бұрын
Это nvim от nvchad
@luckytima2315
@luckytima2315 11 ай бұрын
@@zproger спасибо братик
@result_123
@result_123 11 ай бұрын
Тоже хочу перейти в Линукс, недавно скачал арч и случайно повредил винду. Вот и стимул не возвращаться, а привыкать)
@МитяйФреон
@МитяйФреон 11 ай бұрын
Поставь manjaro, будет тебе юзерфрендли arch based ОС. А вообще из под винды, если очень хочется никсы трогать, посмотри в сторону WSL ​@@result_123
@qrtyww
@qrtyww 10 ай бұрын
пж запиши видео про свою божественную настройку гиперленда вима браузера и тд
@unchpokable
@unchpokable 11 ай бұрын
1 - если вас удивляет пропажа точности при арифметических операциях с float и double типами, нужно открыть гугл и почитать, как эти типы организуют память и почему именно плывет точность. Decimal нужен только для фин. операций, так как в других случаях избыточен из за высокого потребления памяти в сравнении с float и double. 2 - выигрыш не по скорости, а по памяти. Второй вариант сработает только в случае, если нам не нужна индексация, так как мы получим объект-генератор вместо листа. 3 - ладно. 4 - если в ваших словарях в какой то момент появляются ключи разных типов данных, ещё и допускающих неявные преобразования между собой, вам стоит крепко задуматься, как и почему вы свернули не туда. И желательно на годик-другой пересесть на язык со строгой статической типизацией, ручки выпрямить. 5 - Используйте полноценные IDE, а не огрызки в виде текстовых редакторов, и тогда вам не придется удивляться, что использование зарезервированных ключевых слов почему то приводит к ошибкам, так как IDE вам об этом сообщит по месту. 6\7 - Если ваша функция просит только путь к файлу, и пытается туда что то записать, никак не проверяя, что ей передали, то скорее всего ваши руки растут немного не из плеч. Любая функция работы с ФС, являющаяся оберткой над функциями стандартной библиотеки, должна либо конкретизировать, что именно и с какими файлами она делает, либо ожидать помимо пути к файлу и флаги, отвечающие за режим работы с файлом - чтение\запись\чтение-запись\бинарный_IO. Так же, абсолютно нормально и правильно, когда контекстные менеджеры используются внутри такой функции, ибо в этом смысл - мы вызываем функцию, и просим её записать "text" в "file.txt". Как она будет это выполнять, вызывающий код интересовать не должно. А вот передача открытых файловых дескрипторов как раз таки и приводит к ошибкам и багам, и делать так нужно тогда и только тогда, когда по другому сделать невозможно. 8 - У "простых" туплей и именованных разные сферы применения. Нет "лучшего" и "худшего" вариантов, если контекст, в рамках которого и нужно выбирать, какой именно тип вам нужен. Про наследование от NamedTuple - типизация в питоне формальная. Мы всё ещё в такой класс можем в одно и то же поле запихивать и, условно, кошек, и велосипеды, и фиолетовое. А ещё такой "наследник", в случае переопределения конструктора и передачи всех нужных параметров конструктору родительского класса, вообще может создать франкенштейна, половина полей у которого объявлены как поля класса в исходном коде, а другие сгенерированы в рантайме. А если конструктор родителя не вызывать - то в чём смысл наследования от NamedTuple? 9 - Вау, специальная библиотека для работы со сложной математикой работает быстрее стандартного питонячьего интерпретатора, вот это открытие. NumPy "под капотом" целиком написан на С, по этому когда вы используете его встроенные функции и методы, они отрабатывают быстрее, так как вы вызываете скомпилированный код. Гуглим "В чем отличие интерпретируемых и компилируемых ЯП". А питоньи стандартные функции с numpy-объектами работают медленно, так как выполняется дополнительная аллокация и копирование памяти для преобразования unmanaged-данных из "внутрянок" numpy в типы, с которыми может работать питоний интерпретатор. Для кого вообще записываются подобные видео?
@maxpetrov4288
@maxpetrov4288 11 ай бұрын
Для кого вообще ты пишешь свои идиотские комментарии? Особенно содержательна вот эта часть "3-ладно"! Ну раз такому выдающемуся спецу ладно, то мы тут должны быть в восторге (для тебя поясняю: ИРОНИЯ). Ну и по 9-ому пункту ты тоже какую-то фигню написал - суть не в том, что numpy быстрее, а в том, что некоторые неочевидные операции в numpy медленнее, чем в стандартном Python, например, создание массивов.
@SantaCluster
@SantaCluster 11 ай бұрын
нормальное видео. например, увидел что-то новое, полез читать, изучать. увидел что-то старое, похлопал себя пяткой в грудь и скушал пирожок. Обнаружил косяк - настрочил своё гневное фу! :))) А нуб прочитал и возрадовался :))) 6-7: как учил меня один старый мастер: никогда не доверяй входящим данным, особенно от пользователей (моя вольная интерпретация: фильтруй базар)
@unchpokable
@unchpokable 11 ай бұрын
@@maxpetrov4288 Ютуб мне порекомендовал видео, я его посмотрел и прокомментировал. В чём проблема? А про мой девятый пункт - я это написал к тому, что подобные "неочевидности" неочевидны только тем, кто не понимает, как работает программирование. Для человека, который учит программирование, а не питон, будет очевидно, какие функции Python будут медленно работать с NumPy объектами и наоборот, потому что он понимает, что происходит при вызове таких функций. По этому и в видео "для новичков" должно было не просто быть сказано, что мол вот, смотрите какой прикол, а объяснено, почему именно так происходит. Потому что понимание работы с памятью - это азы и основы даже для высокоуровневых ЯП, и если человек не понимает, как работает память в его программах, он может называть себя кем угодно, кроме программиста.
@Alan-12345
@Alan-12345 11 ай бұрын
Для нормисов, которых большинство
@NJrat2.0
@NJrat2.0 11 ай бұрын
Благодарю, за комментарий. Не кратко, но четко все описано
@Djdjdjdjmemeo
@Djdjdjdjmemeo 11 ай бұрын
Может перейдешь ещё раз другие языки? Питон мой мэйн язык, а си шарп просто для прикола как пример, иногда задалюывает смотреть только питон
@zproger
@zproger 11 ай бұрын
У меня канал о Python, не думаю что кто-то ждет здесь видео о других языках.
@Djdjdjdjmemeo
@Djdjdjdjmemeo 11 ай бұрын
Я просто предложил, может даже раз в месяц сделать что то по типу рубрики. Дело в том что ты единственный кто делает такоц интересный и особенный контент, но к сожалению только на питоне(жругих ютуберов на твоем уровненету), который порой даже мне надоедает​@@zproger
@Djdjdjdjmemeo
@Djdjdjdjmemeo 11 ай бұрын
У нас все на работе тебя смотрят, так к слову😂
@zproger
@zproger 11 ай бұрын
Проблемка в том, что для поиска фишек нужно глубоко копать в язык, а на других языках я не пишу, поэтому особо ничего интересного рассказать не смогу 🧐🧐 Разве что в Rust можно копнуть, но это планы на будущее.
@Djdjdjdjmemeo
@Djdjdjdjmemeo 11 ай бұрын
@@zproger кстати раст тоже интересный язык, хотел выучить но работа не позволяет. А в целом слышал что язык прикольный в плане фишек
@andrewbondaryuk
@andrewbondaryuk 11 ай бұрын
Уже лет 10-15 никто не использует значения с плавающей для денег.
@SantaCluster
@SantaCluster 11 ай бұрын
а для биткоинов? ;-)
@MyTrash_blblbl
@MyTrash_blblbl 11 ай бұрын
Это школа библиотек?
@bisquit7779
@bisquit7779 11 ай бұрын
Что это за OC?
@zproger
@zproger 10 ай бұрын
arch linux
@piphserg
@piphserg 11 ай бұрын
Какая разница в скорости? Разница в объёме использования памяти.
@zproger
@zproger 11 ай бұрын
Да, оговорился немного
@Empty_Vima
@Empty_Vima 11 ай бұрын
Просто ставлю лайк за линукс порно. 😂❤ И каждый раз вопрос... Какие настройки и как он все это бэкапит...😅
@zproger
@zproger 11 ай бұрын
Все никак не могу допилить систему, только сделаю, как сразу что-то отваливается в обновах, поэтому когда сделаю финальный релиз, будет ролик по ее настройке.
@Empty_Vima
@Empty_Vima 11 ай бұрын
@@zproger Если изучить Библию. То оно так и должно себя вести... Рекламой вещей которыми пользуетесь вы повышаете количество пользователей и возможность поддержки тех фич... 😉😍
@zproger
@zproger 11 ай бұрын
Библию знаю хорошо, но пример не понял))
@LMWYA
@LMWYA 11 ай бұрын
Не сможете сказать, что у него за WM?
@zproger
@zproger 11 ай бұрын
bswpm
@alexeymatveev9031
@alexeymatveev9031 11 ай бұрын
Спс. Зашло
@zproger
@zproger 11 ай бұрын
Благодарю
@Tim24-j1s
@Tim24-j1s 11 ай бұрын
Запиши уже как настроил вим для питона (((
@zproger
@zproger 11 ай бұрын
Нет времени на это к сожалению, да и он не настроен, это дефолтный nvchad
@abdulgoniyfarhodov
@abdulgoniyfarhodov 11 ай бұрын
Вопрос не по теме, но если ответите буду очень благодарен, вы пользуетесь каким то оконным менеджером, вроде i3 или dwm, суть не в этом. Я нигде не смог найти нормальный гайд по кастомизации. То есть нигде не показано как настроить выпадающие уведомления, как добавлять в панель приложения работающие в фоновом режиме вроде telegram или obsstudio, выпадающее меню wifi, микшер громкости и так далее. Если знаете хороший ресурс посоветуйте пожалуйста
@OstapBaran-v2l
@OstapBaran-v2l 29 күн бұрын
0:32 ошибка будёт
@shadr1n
@shadr1n 11 ай бұрын
Разочарован 😢 Что это было в 8 примере? Почему не декоратор 😮 «Лень» и должна была заставить его написать
@EnderFay7777
@EnderFay7777 11 ай бұрын
А что у тебя за ОС
@Michaelius1111
@Michaelius1111 11 ай бұрын
Это арч. В целом, можно скачать endeavour os и привести её к такому виду, если нужно что-то с графическим установщиком
@beluga8569
@beluga8569 11 ай бұрын
Arch linux если не ошибаюсь
@zproger
@zproger 11 ай бұрын
Arch + кастом BSPWM
@dvromin
@dvromin 11 ай бұрын
Зачем так растягивать окончания?
@zproger
@zproger 11 ай бұрын
По-другому не умею
@PTX12547
@PTX12547 11 ай бұрын
разве можно Яндексу доверять, новостная повестка, алгоритмы - все лживое
@ОбезьянаЧичичи-в8л
@ОбезьянаЧичичи-в8л 11 ай бұрын
Генератор не ускоряет в 8000 раз. И вообще, на стрессах он на 3-5% медленнее лист-компрехеншна.
@zproger
@zproger 11 ай бұрын
Немного оговорился, там были замеры по памяти, следовательно в 8000 раз именно экономия памяти, а не ускорение.
@maksimvolkov8892
@maksimvolkov8892 11 ай бұрын
Банковское приложение на пайтон, ору
@alko4188
@alko4188 11 ай бұрын
named tuple - устаревший эрзац. dataclass рулят
@zproger
@zproger 11 ай бұрын
Это совершенно разные структуры
@alko4188
@alko4188 11 ай бұрын
и? в чем вы видите проблему в использовании датаклассов в приведенных вами примерах?@@zproger
@Anonymous00754
@Anonymous00754 7 ай бұрын
ниче не понял что типо нампай медленнеее?? не поверю!))
@vano03voin
@vano03voin 11 ай бұрын
Я первый . обожаю этот канал
@zproger
@zproger 11 ай бұрын
Спасибо 😉😉
@maceamde
@maceamde 11 ай бұрын
Парень, тебе нельзя озвучивать... В твоей речи выпадают все гласные звуки и интонация не попадает в смысловые значения. Жуть! Я не воспринимаю и половины того, что ты говоришь
@zproger
@zproger 11 ай бұрын
Спасибо, буду исправлять. Нельзя озвучивать это как сказать "если не умеешь ходить, то даже не учись", это дело практики и нужно время. Можете глянуть первые видео и сравнить как я говорил раньше, только советую присесть перед этим)
@Владислав-м3е9г
@Владислав-м3е9г 11 ай бұрын
Hello!
@zproger
@zproger 11 ай бұрын
Hello 😎😎
@odduck41
@odduck41 11 ай бұрын
Первая ошибка: начать с Python, а не с трушного C++ P.S. Для душнил: это рофл, мне наплевать на каком ЯПе кто пишет, ЯП это инструмент, главное, чтобы разработчик им грамотно воспользовался.
@zproger
@zproger 11 ай бұрын
:DD
@VelikiyChuchhe
@VelikiyChuchhe 8 ай бұрын
Хотел подушнить, но впилился в P.S...Плачу теперь.
@VelikiyChuchhe
@VelikiyChuchhe 8 ай бұрын
5! И моё 5 более объективно, т.к. я новичек и мне было реально полезно! Вотъ!
@kashka-
@kashka- 11 ай бұрын
Первая ошибка: Решил учить питон
@omnycus
@omnycus 11 ай бұрын
Почему? Минусов вроде нет, если нужна скорость то используй rpython и будет тебе счастье
@zproger
@zproger 11 ай бұрын
Так можно сказать про любой язык
@omnycus
@omnycus 11 ай бұрын
@@zproger Именно, для каждого языка своё предназначение
@muradeus6457
@muradeus6457 11 ай бұрын
Первая ошибка: начать изучать пайтон
@zproger
@zproger 11 ай бұрын
😖😖
@miroslavn1
@miroslavn1 11 ай бұрын
Если нет мозгов, то большая ошибка изучать что бы то ни было, без мозгов можно только потреблядь
@Empty_Vima
@Empty_Vima 11 ай бұрын
А Фатальная ошибка не написать свою операционную систему...😂 Ну и не иметь точку респа с США видимо...😂
@criticalrock7244
@criticalrock7244 10 ай бұрын
Просто интересно стало, а что с пайтоном не так? И чем тогда его можно заменить?
@8O0Aa.1q3S0.
@8O0Aa.1q3S0. 9 ай бұрын
​@@criticalrock7244c++
@dar837
@dar837 11 ай бұрын
4
@armen4494
@armen4494 11 ай бұрын
Немного напрягает буква z. Что бы это значило? За СВО?
@zproger
@zproger 11 ай бұрын
посмотрите сколько каналу лет и сколько видео сюда уже загружено с этим ником
@SantaCluster
@SantaCluster 11 ай бұрын
Zorro был супергероем задолго до СВО :)))
@ВладимирСорокин-ч5ю
@ВладимирСорокин-ч5ю 11 ай бұрын
Данное видео не было для меня полезным
@zproger
@zproger 11 ай бұрын
Благодарю за фидбэк
@Mr47wereim
@Mr47wereim 11 ай бұрын
Чи є у тебе в планах ,перейти на українську?
@zproger
@zproger 11 ай бұрын
А кто тогда будет смотреть видео? Статистика моего канала показывает, что украинцев смотрит всего около 6%, русскоговорящих примерно 80%, при этом там целый ряд стран. Не вижу особого смысла это делать, я могу начать на корявом английском снимать, но какой с этого толк если будет по 100 просмотров.
@VelikiyChuchhe
@VelikiyChuchhe 8 ай бұрын
Кома зайва! І це в тексті з одного речення!!! Сідай, 2!!!😴
@dar837
@dar837 11 ай бұрын
4
@zproger
@zproger 11 ай бұрын
😎
Tools EVERY Software Engineer Should Know
11:37
Tech With Tim
Рет қаралды 28 М.
小丑教训坏蛋 #小丑 #天使 #shorts
00:49
好人小丑
Рет қаралды 54 МЛН
Анонс K:03 Pro
6:34
ergohaven
Рет қаралды 1,8 М.