Самый СТРАННЫЙ оператор в Python (основные фишки и ошибки с walrus operator)

  Переглядів 68,197

ZProger [ IT ]

ZProger [ IT ]

День тому

⭐ Курс ООП и Приват канал: www.zproger-school.com/?...
⭐ Мой телеграм канал: t.me/+7INN3ABOEnk1ZGIx
⭐ Телеграм канал из видео: t.me/+i-oKNJt75rowNWVi
В данном видео мы рассмотрим очень странный оператор Python, который добавили в релизе Python3.8. Многие вообще не знают о его существование, но он призван упростить нам написание кода и избавить от ошибок.
Но как бы это странно не звучало, в некоторых моментах он эти ошибки наоборот добавляют, поэтому в этом видео мы рассмотрим как и возможности оператора, так и ошибки, которые часто совершают новички, используя возможности оператора моржа.
📁 Документация walrus operator: t.me/codeblog8/133
📁 Github: github.com/Zproger
📁 Все плейлисты с уроками: bit.ly/39GaY89
📁 Связаться со мной: zproger777@gmail.com
📁 Поддержать криптовалютой: github.com/Zproger/donate
Тайм-коды:
0:00 - Новый странный оператор
0:55 - Как работает оператор моржа?
1:26 - Странные записи walrus оператора
2:00 - Зачем добавили этот оператор? Почему не расширили оператор присваивания?
4:06 - Оператор моржа это синтаксический сахар?
4:46 - Пример использования в условиях
6:15 - Использование в циклах для ввода данных
7:16 - Настоящее предназначение walrus оператора в python
9:28 - Интересный пример использования
10:04 - Разбираем популярные ошибки с оператором моржа
11:40 - Где глубже изучить этот оператор?

КОМЕНТАРІ: 281
@zproger
@zproger Рік тому
Если кто знает интересные фишки с этим оператором, не забудьте поделиться в комментариях =)
@grigoriikuchumov2277
@grigoriikuchumov2277 Рік тому
Принципиальная разница между := и = в том, что первый оператор определяет выражение, а второй - инструкцию. Поэтому как и должно при использовании выражений возвращается результат обработки выражения. С инструкциями такое не прокатывает, потому что инструкции не могут никаких результатов возвращать (это не их роль). "Проблемка" в Си (и многих наследниках) была в том, что там оператор = являл собой и инструкцию и выражение в зависимости от контекста использования. a = 5; - инструкция присваивания. if (a = 5) ... ; - выражение (a = 5) в инструкции (условной оператор). Да, при неопытности или рассеянности это может приводить к проблемам, при перепутывании операторов = и ==, например, в условном выражении. В Python = является только инструкцией и никак иначе (следовательно, возвращать значения не может), поэтому если бы вернули "фишку" классических Си-подобных языков с оператором инструкции и выражения в зависимости от контекста, то это было бы не в духе Python, в котором стараются в максимальную однозначность и т. п. В print(a=5) "проблема" в том, что интерпретатор даже не может предположить, что ты с какого-то хрена будешь пихать инструкцию в качестве параметра в функцию. Поэтому, разумеется, ищется подходящий аргумент. Ну, а для наглядной разницы что происходит и какие проблемы могут быть при недостаточном опыте или непонимании что-то типа такого: Первый фрагмент. if a := False and (b := True): print('a = ', a) print('b = ', b) print('a = ', a) print('b = ', b) Второй фрагмент. if a := True and (b := False): print('a = ', a) print('b = ', b) print('a = ', a) print('b = ', b) Третий фрагмент. if a := True and (b := False): print('a = ', a) print('b = ', b) print('a = ', a) print('b = ', b) Четвёртый фрагмент. if a := False or (b := True): print('a = ', a) print('b = ', b) print('a = ', a) print('b = ', b) Пятый фрагмент. if (a := False) or (b := True): print('a = ', a) print('b = ', b) print('a = ', a) print('b = ', b) Поэтому с данным оператором надо быть внимательным. Особенно стоит обратить внимание на 4-й фрагмент и сравнить с 5-м.
@Mr_AnKei
@Mr_AnKei Рік тому
Классное видео, очень полезное спасибо :)
@gitarre_spielen
@gitarre_spielen 10 місяців тому
ну как же, он позволяет оставлять рожицы в комментариях к программе: # :=)
@_vpru
@_vpru 2 місяці тому
@@grigoriikuchumov2277 по-моему код, в котором есть неоднозначности стоит признать говном. Поэтому даже зная приоритет выполнения инструкций/выражений, всё-равно считается хорошим тоном ставить скобки. В конце концов, синтаксический сахар должен быть сладким, а не превращать одностроку в горький ребус. Поэтому наверное и цикл FOR будет жить вечно в кодерской среде - он прост и понятен как два пальца.
@justman7656
@justman7656 Рік тому
Всё обобщается фразой: Оператор сохраняет значение в переменную и одновременно его возвращает
@zproger
@zproger Рік тому
Да, но если я так скажу и сразу закрою видео, никто не поймет ничего)
@rad9587
@rad9587 Рік тому
@@zproger что не понятного?
@qvar7449
@qvar7449 Рік тому
@@rad9587 думаю многие если услышат такое объяснение просто скажут "зачем? можно же просто просто сначала присвоить переменной, а потом использовать переменную"
@rad9587
@rad9587 Рік тому
@@qvar7449 мне лично уже с превьюшки было понятно, что делает этот оператор, хотя программирую на расте
@arsegorov
@arsegorov Рік тому
Честно говоря, странно, что обычное присваивание не возвращает присвоенное значение, в отличие от Си, не смотря на то, что Питон на Си и написан. Хотя цепное присваивание `a = b = c` в Питоне есть
@esft-argentum
@esft-argentum Рік тому
Определение назначения фактически отсутствует, сплошные иллюстрации. Наглядность - это замечательно, но строгость описания не менее важна. Я лично услышал в данном ролике что-то вроде: «Если мы напишем «print(x:=1)», то значение 1 запишется в x, то есть это - всё равно, что написать «print(1)»...» - как-то невнятно. Должно же, как мне кажется, описание звучать как-то так: «Данный оператор присваивает переменной значение и возвращает его», - и уже дальше можно пускать примеры, так будет и строго, и наглядно.
@xaea-1233
@xaea-1233 Рік тому
согласен, видно что автор то сам понимает что говорит, а вот мне непонятно, хотя я уже второй год работаю
@serafimgrubas2070
@serafimgrubas2070 Рік тому
Пример с двухчасовой функцией реально дал понимание нужности этого оператора. Остальные примеры тяжело понять, в особенности со строкой startswith поскольку там генератор в любом случае пройдётся по всему списку
@user-oi5hk5gl3o
@user-oi5hk5gl3o Рік тому
а в двухчасовой функции проходиться по всему списку не будет?? Проблема не в том будет или нет, а в том СКОЛЬКО РАЗ!
@kan4317
@kan4317 Рік тому
Не, any "ломается" на первом True
@romansovetskikh7902
@romansovetskikh7902 Рік тому
Проблема высосана из пальца. Элементарно всё решаетcя и без моржа.
@user-pz9ju6ss7r
@user-pz9ju6ss7r Рік тому
@@romansovetskikh7902 да, решается, просто моржовый оператор изначально создавался как сахар, а не принципиально новый подход
@zproger
@zproger Рік тому
Более подробно в документации описали, оператор хоть и достаточно простой по своей логике, но примеров кода очень много и не всегда удается понять с первого раза.
@user-en6dz2so7p
@user-en6dz2so7p Рік тому
На 7:30 мы имеем дело не с генератором а с (list comprehension - строковые включения) f_data = [y for x in data if (y := test(x)) != 4]. данная запись при вызове type(f_data) вернет . для того что бы создать генератор используется подобная запись, только в круглых скобках: f_data = (y for x in data if (y := test(x)) != 4) - тот же type(f_data) вернет , с которым работают через вызов next(f_data) Отличие этих двух записей очень большое. Так что правильнее будет сказать, что данная запись генерирует список, но генератором не является
@svaaccelerator313
@svaaccelerator313 Рік тому
По поводу примера while (value:= input()) != "" можно же красиво упростить: while name := input("Name:"): print(name)
@Max-qj2fh
@Max-qj2fh Рік тому
тот случай когда быстрее прочитать чем посмотреть ролик до конца ) но спасибо за наводку )
@zproger
@zproger Рік тому
Пожалуйста =)
@irwe3514
@irwe3514 Рік тому
Очень полезная информация для новичка, все подробно и просто розложено. Спасибо что делаете подобные видео, ждем другие:)
@zproger
@zproger Рік тому
Благодарю!
@bekzodhalilov8689
@bekzodhalilov8689 Рік тому
Спасибо очень помогаешь с учёбой по языку Python!!!;)
@zproger
@zproger Рік тому
Это хорошо =)
@nikitabaraboshin7123
@nikitabaraboshin7123 Рік тому
ZProger, пожалуйста, давайте больше конкретики в видео, не обходитесь одними иллюстрациями. Без четкого и ясного определения функции намного сложнее понимать ее применение. Пожалуйста, уделите больше внимания разбору примеров
@user-gg9ec2nm6i
@user-gg9ec2nm6i Рік тому
03:31 знаем знаем) так меньше шансов ошибится. Вместо равенства можно случайно указать присвоение переменной и тогда это будет совсем другой код. Такая запись лишает нас возможности присвоения. У этой фишки есть название, но я не помню его)
@dotcomming7680
@dotcomming7680 Рік тому
Yoda notation я подозреваю. Но обычно в ООП таким образом ещё и избавляются от nullPointerException
@zproger
@zproger Рік тому
Да, опасная штука :)
@sob3856
@sob3856 Рік тому
Насколько я знаю компилятор gcc с параметром -Werror не даст скомпилировать код если нарисать if x=5, оно покажет ошибку.
@sailtogether3236
@sailtogether3236 Рік тому
АРГХХ, БЛДЖАД! Это можно было сказать тремя фразами: кейс 1 - присваивать значение переменной в условиях (в С-стиле, но без его недостатка), кейс 2 - перестать делать for y in [fn(x)] в comprehension'ах, и кейс 3 - конфликт синтаксиса присвоения внутри аргумента функции и именованных аргументов функций
@bomboklaa
@bomboklaa Рік тому
Ого, сперва подумал, что вообще показалось, что ты попросил 600 лайков... Но это же действительно странно, что такой полезный канал так не популярен!
@zproger
@zproger Рік тому
Будем исправляться =)
@_Kruzo_
@_Kruzo_ Рік тому
Спасибо за ответы на "основные вопросы", которые запутали все окончательно...
@zproger
@zproger Рік тому
я старался =)
@Barmaley_YT
@Barmaley_YT Рік тому
Доброго дня, хорошего настроения. Есть интересная особенность, которая к сожалению не касается моржового оператора. Хотелось бы получить ответ на следующий вопрос : Почему конкатинируются строки в листе? Пример следующий: temp=['i','love', 'the ' 'Python','very','match' '!!!'] print(temp)
@cs_dequeue
@cs_dequeue Рік тому
Спасибо за полезное видео! Но надеюсь люди догадываются, что в 7:28 не генератор, а просто list comprehension. синтаксис генаратора вместо [] использует (). Про print(num = 1) было интересно👍
@someone3835
@someone3835 Рік тому
Видео полезное, спасибо. Особенно про производительность при двойном вызове функции.
@vadim5401
@vadim5401 Рік тому
Но ведь результат работы двухчасовой функции можно предварительно присвоить в переменную и потом сравнивать как угодно без повторного вызова. Как понимаю, := дает только возможность визуально сократить код на строку присваивания.
@zproger
@zproger Рік тому
Это чисто пример, чтобы понять суть оператора. А так да, оператор частично создан чтобы улучшить код и добавить новый функционал.
@MaxusR
@MaxusR Рік тому
В случае while это уже выльется в бесконечный цикл с прерыванием по значению
@renatshaym
@renatshaym 11 місяців тому
Да за шо) Вот смотрю видео и так затягивает, что хочется смотреть ещё и ещё и те видео, которые выходят во всплывающих подсказках) И так уходит незаметно полдня) Автору спасибо за топовые контенты, которые он пилит для нас)
@artembagachkov933
@artembagachkov933 Рік тому
Крутая штука, главное предупреждать команду перед использованием, а когда пишешь сам то просто быть внимательным :)
@zproger
@zproger Рік тому
=)
@user-yk2zc8vy6u
@user-yk2zc8vy6u Рік тому
Спасибо за инфу) Чисто сахар, чтобы писать в меньшее количество строк)
@zproger
@zproger Рік тому
Ага) Но сахар достаточно опасный в некоторых случаях =)
@hock_2334
@hock_2334 Рік тому
простите мне мою невежественность , а как вы сделали != "" перечеркнутым? Я только начинаю учится. Это только в пайчарме так можно?
@zproger
@zproger Рік тому
IDE сама так форматирует для красоты =)
@user-pl6hu6si1u
@user-pl6hu6si1u Рік тому
я правильно понял, что он работает как и обычное = ,но вмести с тем возвращает присвоенное значение.
@zproger
@zproger Рік тому
Да
@auril1594
@auril1594 Рік тому
спасибо, стало понятнее. пример бы наверное сделал через filter. хотя может через моржа и правильнее
@zproger
@zproger Рік тому
Можно разные примеры делать =)
@handal3403
@handal3403 Рік тому
Скажи пожалуйста как называется твоя тема pycharm?
@zproger
@zproger Рік тому
Dracula
@MyKashiwa
@MyKashiwa Рік тому
Спасибо! Очень хорошо и доходчиво
@zproger
@zproger Рік тому
Рад что Вам понравилось
@jackmoral9127
@jackmoral9127 Рік тому
Круто! Но больше всего мне стало интересно этот как вместо != зачеркнутое равно поставить, это какуюто комбинацию клавишь надо прожать или только в пайчарме актуально?
@alexbobtail4862
@alexbobtail4862 Рік тому
Тоже интересно. Нашли, как это сделать?
@alexbobtail4862
@alexbobtail4862 Рік тому
Попытался скопировать знак ≠. Не работает
@QAengineer
@QAengineer Рік тому
Очень много повторений, можно было сократить видео раза в 2
@zproger
@zproger Рік тому
Спасибо, учту в следующих видео и постараюсь не повторяться
@eagold
@eagold Рік тому
но кстати этого оператора мне часто не хватало, даже подумать не мог что он есть ещё и с версии 3.8
@zproger
@zproger Рік тому
Пайтон не перестает удивлять :)
@user-xf7ue9vj4g
@user-xf7ue9vj4g Рік тому
Спасибо Вам, очень понятно и лаконично👍
@zproger
@zproger Рік тому
Благодарю! Буду стараться и дальше =)
@andreykuznetsov8096
@andreykuznetsov8096 Рік тому
Зачем ты врёшь? И зачем автор это лайкнул? Я просмотрел уже 8 минут и особенно мой мозг взорвался на примере с if, потому что я не могу понять, зачем это нужно
@user-og6es2ht4v
@user-og6es2ht4v Рік тому
насчёт понятно спорный момент
@luispakvard5681
@luispakvard5681 Рік тому
А как взять записать ресурсы с одного екзешника другой я знаю что есть секция .rsrc реально ли ее взять с 1го файла и переписать в 2й екзешник что бы у него были там иконка, манифест , версия такие как у 1го файла и что б он работал как раньше?
@zproger
@zproger Рік тому
Реально, но я не знаю как это сделать в Python, потому что тут всё оборачивается в рантайм, и там сложно найти какие-то ресурсы
@Dmytro-Tsymbaliuk
@Dmytro-Tsymbaliuk Рік тому
Раз речь про .exe, то речь не о питоне, либо про питон, но с нестандартным транслятором, где полученный результат будет работать даже если удалить его из системы скопировать в другой то действительно можно, только смысл, если это никакого положительного результата не даст? Это будут тупо неиспользуемые данные
@ZA_CCCP
@ZA_CCCP Рік тому
Оо, спасибо, что увидел мой комментарий :]
@zproger
@zproger Рік тому
Пожалуйста, я все крутые идеи реализовываю =)
@CrossBend
@CrossBend 11 місяців тому
вот, сначала нарушают основные принципы программирования - плодят сущности, а потом вынуждены плодить их еще больше из-за именованных аргументов ))))) а как удобно в JS паровозиком присваивать: a=b=1;if(x=a==b)alert('x='+x) счастье порой так близко...
@dmitry-lz1ny
@dmitry-lz1ny Рік тому
Сам изучаю питон 3 недели и случайно узнал моржевом операторе. Тема крутая, но мне пока очень трудно найти правильное использование.
@zproger
@zproger Рік тому
Думаю ещё придет время =)
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg Рік тому
Спасибо автору, видео супер=) и если можно не ускоряйте видео сами, кому надо могут это сделать средствами ютуба, а замедление вашего видео звучит ужасно(((
@zproger
@zproger Рік тому
В каком плане не ускорять видео? Именно моменты где я пишу код? После ответа попытаюсь исправить, чтоб было комфортней смотреть
@IvanIvanov-dh3sg
@IvanIvanov-dh3sg Рік тому
@@zproger нет, код норм. Просто я речь вашу не успеваю осмысливать, может я тормоз=(. Привык к темпу Немчинского. Для меня вы рассказываете слишком быстро. На 0.75 поставил скорость и стало норм. Возможно мне нужно периодически останавливать воспроизведение и думать.
@Bluespyy
@Bluespyy Рік тому
@@IvanIvanov-dh3sg мне наоборот кажется что автор медленно говорит. Ставлю 1.25 чтобы не уснуть
@zproger
@zproger Рік тому
Я о том же, посмотрите мои видео раньше, они были в 3 раза медленнее, там дольше 20 секунд никто не смотрел) Если буду снимать в стиле Немчинского, то видео будут юзать для того чтобы заснуть, а не выучить Python :)
@zakirovio
@zakirovio Рік тому
Сначала перепутал с ключ значением в генераторе словаря {i: = value for i in range(n)}, оказалось немного другое 👍
@slavakonstantinov1531
@slavakonstantinov1531 Рік тому
Огромное спасибо. Это было очень интересно и познавательно
@zproger
@zproger Рік тому
Рад что принес пользу =)
@donfedor007
@donfedor007 Рік тому
Добрый день! Почему у Вас не равно записано не != , а перечёркнутое равно? И как так делать?
@archyt88
@archyt88 Рік тому
Если есть функция которая выполняется два часа, наверное следует её переписать на С++ или по крайней мере на Cython
@zproger
@zproger Рік тому
Это да, я чисто для простоты понимания сделал такой пример
@Vasile4e4ek
@Vasile4e4ek Рік тому
Это полезно для codewars и leetcode, мне этого точно порой не хватало, но с другой стороны, если это необходимо, значит что-то изначально не так
@serafimgrubas2070
@serafimgrubas2070 Рік тому
А если и с++ функция работает два часа, тут уже никуда не убежишь :)
@alexbobin3044
@alexbobin3044 Рік тому
Тем временем функция class Supermatem: Def reshala(aboba, nanana, sss) time. sleep(7200000) return "сложна, очень сложна"
@pavelmakis
@pavelmakis Рік тому
Вы знаете язык программирования Cpython? Не слышал о таком
@luispakvard5681
@luispakvard5681 Рік тому
Интересно на питоне инъекции шел кода и в частности Shellcode Reflective DLL Injection
@zproger
@zproger Рік тому
Интересно, но ютубу такое не понравится
@trixion74
@trixion74 Рік тому
я сначала подумал это Turbo Pascal
@zproger
@zproger Рік тому
тьфу тьфу тьфу
@user-eo7mv5yc2x
@user-eo7mv5yc2x 10 місяців тому
это конечно здорово, но я видел две двойных рекламы и получил очевидный ответ в конце. короче, спасибо кэп, лай не ставил
@zproger
@zproger 10 місяців тому
Я вообще не понимаю какую рекламу вы здесь увидели, если её тут нет
@robertobokarev439
@robertobokarev439 Рік тому
Пригодится во всяких генераторах, к примеру каждый вызов увеличивает возвращаемое число на 1
@MrMolekula
@MrMolekula Рік тому
3:35 - так пишут, чтобы по ошибке не написать в условии оператор присваивания. Про крайней мере меня так учили)
@FrolFrolow
@FrolFrolow Рік тому
Классный ролик, все понятно, пусть я почти и не знаю информатику и питон в частности(((
@Ramzes200986
@Ramzes200986 Рік тому
Удобно, вызвал один раз функцию и проверил и присвоил))))
@trixion74
@trixion74 Рік тому
Ожидание: что это за оператор Автор: сейчас я расскажу как его можно использовать p.s. прошла уже половина видео и я так и не понял
@zproger
@zproger Рік тому
:0
@bmx666bmx666
@bmx666bmx666 Рік тому
полезная вещь для изоляции переменных в блоках как условие или цикл. Что-то наподобие лямба функций, аргументы нужны лишь временно и не нужно дублировать и везде расставлять.
@luckytima2315
@luckytima2315 Рік тому
Прикольно )) Как вы сидите на зорине, посидел 3 дня, меня убила дерганая анимация и это на версий за 39 долларов ;p
@zproger
@zproger Рік тому
Не сижу, это чисто для видео)
@luckytima2315
@luckytima2315 Рік тому
@@zproger а что у вас за система на основной машине? я стараюсь вам подражать и сидел на минте как вы, потом увидел zorin решил поставить, но эта анимация меня просто убила (
@zproger
@zproger Рік тому
Мне Manjaro Gnome нравится =)
@luckytima2315
@luckytima2315 Рік тому
@@zproger бегу ставить :p
@revoluxe
@revoluxe Рік тому
Супер, очень полезная вещь!
@zproger
@zproger Рік тому
Благодарю
@jackmetropolitan7845
@jackmetropolitan7845 Рік тому
Ууу! До 8:30 думал - "что за ерунда", а потом как понял! Спасибо!
@zproger
@zproger Рік тому
Это точно)
@JarBinks
@JarBinks Рік тому
Спасибо! Видео оказалось очень полезным!
@zproger
@zproger Рік тому
=)
@user-og6es2ht4v
@user-og6es2ht4v Рік тому
а главное понятным
@elnurbda
@elnurbda Рік тому
Большое спасибо за видеоролик!
@zproger
@zproger Рік тому
Рад что понравилось
@sambo-mambo
@sambo-mambo Рік тому
Информативно. Круто мне понравилось.
@zproger
@zproger Рік тому
Благодарю!
@focsvin
@focsvin 10 місяців тому
Доброе время суток. Я что-то не понимаю. Почему в питоне нельзя писать так f_data = [y for x in data if(y = test(x)) != 4]. prtint() просто нельзя сделать присвоение в рандомно переменную. Хотя в чем тут проблема я честного говоря не понимаю. В том же C# это можно сделать. А тут то что не так ? По идее просто происходить присвоение значения. А потом эта переменная проверяется в условии.
@maxdemon4778
@maxdemon4778 Рік тому
Спасибо Автор) Не знал про это(
@zproger
@zproger Рік тому
Рад что было полезно!
@waltage
@waltage Місяць тому
Если язык С влияет на Питон - возникает обоснованный вопрос о целесообразности существования этого самого Питона. лол.
@pro100denchik
@pro100denchik Рік тому
Классно объяснил оператор моржа, но меня смутил знак неравенства ≠, интерпретатор пайтон это понимает? и что надо сделать, чтобы это работало? почему не стандартный знак != неравенства?
@fushibuzuka7463
@fushibuzuka7463 Рік тому
сам глаза округлил..правда не ас в питоне.
@zproger
@zproger Рік тому
Это так редактор кода форматирует) А на деле там обычный !=
@lochinlochinov8975
@lochinlochinov8975 Рік тому
А почему у тебя на 6:30 вместо != Поставлено ≠ ?
@zproger
@zproger Рік тому
Это редактор кода так делает для красоты)
@lochinlochinov8975
@lochinlochinov8975 Рік тому
@@zproger понятно
@scren2010
@scren2010 Рік тому
Отличное видео, спасибо!
@zproger
@zproger Рік тому
=)
@seregeyvladimirov7065
@seregeyvladimirov7065 Місяць тому
Часто использую этот оператор именно в if statement, больше нигде
@dotend7915
@dotend7915 Рік тому
Дядь, как у тебя неравно записалось как перечеркнутое равно? Оно же как то так записывается: !=
@zproger
@zproger Рік тому
Это так форматирует IDE для красоты =)
@respise
@respise 10 місяців тому
очень интересный акцент, никогда такого не слышал.
@zproger
@zproger 10 місяців тому
;)
@girfeo9338
@girfeo9338 Рік тому
Спасибо, одни из лучших среди лучших
@zproger
@zproger Рік тому
Спасибо
@segeus
@segeus Рік тому
Если бы в print() был аргумент **kwargs и метод работы с ним, то он прекрасно бы кушал print(x = 1).
@MrNagios
@MrNagios Рік тому
отлично, спасибо за видео
@zproger
@zproger Рік тому
Спасибо за поддержку!
@archyt88
@archyt88 Рік тому
Оператор для собеседований
@zproger
@zproger Рік тому
Тоже верно)
@asmrasmr327
@asmrasmr327 Рік тому
как использовать такую запись ≠ вместо != ?
@zproger
@zproger Рік тому
Никак, это редактор кода форматирует :)
@vdimitrioglo
@vdimitrioglo Рік тому
material theme установи
@vladimirkulakov6126
@vladimirkulakov6126 Рік тому
Это в новой версии python добавили?
@zproger
@zproger Рік тому
Да
@nikitawhite4516
@nikitawhite4516 Рік тому
Тема для пайшарма очень симпатичная. Как называется?
@zproger
@zproger Рік тому
Github Dark
@nikitawhite4516
@nikitawhite4516 Рік тому
@@zproger спасибо
@user-qd5od4fi5j
@user-qd5od4fi5j Рік тому
Очень крутое видео! Хотелось бы больше видео по селениуму. Особенно разбор оператора if с driver.find_element
@zproger
@zproger Рік тому
Постараюсь что-то придумать =)
@figaro2440
@figaro2440 11 місяців тому
А что там вообще рассматривать, если заданный элемент нашелся if срабатывает, это обычный if, что вы от него еще хотите?
@dzolud9338
@dzolud9338 Рік тому
Спасибо большое, хорошее видео
@zproger
@zproger Рік тому
Рад что понравилось!
@eagold
@eagold Рік тому
что это за странный оператор не равно? 06:44
@zproger
@zproger Рік тому
Это так IDE форматирует =)
@eagold
@eagold Рік тому
@@zproger а, фух🙈
@user-br2mt5bj6z
@user-br2mt5bj6z Рік тому
@@zproger А не подскажите, как называется плагин на такое форматирование? Очень понравилось, хотелось бы себе поставить
@waserdenser003
@waserdenser003 Рік тому
Только узнал, что питон написан на C...
@zproger
@zproger Рік тому
=)
@sailtogether3236
@sailtogether3236 Рік тому
Очень много "воды", но многие говорят, что "воды" очень много, совсем много, что просто капец, ведь можно было без "воды", которой очень много, сказать лишь суть, которая без "воды".
@user-gt3lm9ny1e
@user-gt3lm9ny1e Рік тому
Спасибо за видео!
@koolmax79
@koolmax79 Рік тому
Те кто на C/C++ пишут не путают = и ==. И я бы никогда так как предлагается не писал, некрасиво, лучше сущность сравнивать с чем то, а не наоборот. Простой пример if(men.age == 5) //если человеку 5 лет if(5 == men.age) //если 5 человеку лет. Вы серьезно так думаете и говорите? То что касается питона, хорошие примеры, подробно и понятно
@mauzeroffc7394
@mauzeroffc7394 Рік тому
а какая у тебя тема в PyCharm?
@zproger
@zproger Рік тому
Material UI - Github Dark
@mauzeroffc7394
@mauzeroffc7394 Рік тому
@@zproger спс
@SkveerBoy
@SkveerBoy Рік тому
Годно Годно )
@zproger
@zproger Рік тому
Благодарю =)
@Ramzes200986
@Ramzes200986 Рік тому
я вот не понял num вообще не имеет значения и тут получается хочешь присвоить ему 1?
@Dmytro-Tsymbaliuk
@Dmytro-Tsymbaliuk Рік тому
Python дошел до стандарта С++11 с инициализацией переменных, получается
@zproger
@zproger Рік тому
:D
@helish_88
@helish_88 Рік тому
этому оператору уже два года python 3.8 Release Date: Oct. 14, 2019
@zproger
@zproger Рік тому
Ну так никто и не говорил что он новый =) Мало кто снимает об этом операторе и хотелось что-то интересное рассказать
@helish_88
@helish_88 Рік тому
@@zproger 6 секунда, вы говорите новый оператор. разрешите дое*** :)))
@zproger
@zproger Рік тому
Упс, что-то не то сказал значит
@user-gh2sq4ps4o
@user-gh2sq4ps4o Рік тому
8:48 вроде python это оптимизирует для одинаковых значений
@user-gz4fx4sv6d
@user-gz4fx4sv6d Рік тому
Спасибо большое
@zproger
@zproger Рік тому
Рад что понравилось
@Samurai-vc3rl
@Samurai-vc3rl 11 місяців тому
У тебя Линукс??
@axil3910
@axil3910 Рік тому
С := понятно, а как ты символ зачеркнутого равно написал? Что это такое вообще? != ?
@zproger
@zproger Рік тому
Это IDE так форматирует =)
@Alcoholdehydrogenas
@Alcoholdehydrogenas 10 місяців тому
А что за линух и с каким ДЕ?
@zproger
@zproger 10 місяців тому
Arch + BSPWM
@user-qh8jy1cz6z
@user-qh8jy1cz6z 5 місяців тому
спасибо очень полезно начинающему
@user-br5vb8kx5g
@user-br5vb8kx5g Рік тому
это моржовый оператор, больше используется для написания кода в строчку
@izergaer
@izergaer Рік тому
Насколько я понял, это аналог оператора = из C
@zproger
@zproger Рік тому
Можно сказать и так, но walrus operator более функциональный
@user-jo7ci2wy4j
@user-jo7ci2wy4j Рік тому
а почему у вас неравно так записывается?
@zproger
@zproger Рік тому
Так форматирует IDE
@FoxSlyme
@FoxSlyme Рік тому
Очень затянуто.
@Alcoholdehydrogenas
@Alcoholdehydrogenas 10 місяців тому
Из какого Го?! Я узнал про этот оператор из Борланд Паскаль!
@GazMyas_Champion
@GazMyas_Champion Рік тому
2:50 Язык программирования написан на языке программирования... Что блеатььь?
@zproger
@zproger Рік тому
Ну да, а как иначе)
@arsenskavin130
@arsenskavin130 Рік тому
Генераторы делаются в круглых скобках.
@zproger
@zproger Рік тому
да, речь о других генераторах, не о технологии из языка
@arsenskavin130
@arsenskavin130 Рік тому
@@zproger не знаю как там в русскоязычной терминологии, но впервые встречаю что лист компрехеншены называют генераторами, генераторы это принципиально другая вещь.
@user-gy9lb9ji5f
@user-gy9lb9ji5f Рік тому
Аж на 12 мин ролик о том, что объясняется одним предложением . Моржовый (walrus) оператор, появившийся в Python 3.8, дает возможность решить сразу две задачи: присвоить значение переменной и вернуть это значение, поэтому порой можно написать код короче и сделать его более читаемым, и он может быть даже более эффективным с точки зрения вычислений.
@ostrov11
@ostrov11 Рік тому
... хоспадеблять ... если не знать школьных основ информатики, программирование воспринимается на грани с магией ((( вайтивайти из слесарей дворников продавецпятерочки ((
@zproger
@zproger Рік тому
xDD
@ostrov11
@ostrov11 Рік тому
@@zproger ... сорян, на пике Балмера был походу, не помню что хотел сказать этим
@Shurik1236
@Shurik1236 Рік тому
Классика Си: (c = getchar()) != EOF.
@zproger
@zproger Рік тому
:D
@Helsingoff
@Helsingoff Рік тому
А можно все что до 6:20 просто выбросить было? Что там было вообще рассказано интересного? Миллион раз была сказана фраза "так зачем же этот оператор"? Это что, вода чтобы ролик был длиннее 10 минут потому что так надо ютубу? Возможно моя проблема в том, что я давно знаю этот оператор и ролик мне скинул друг, включил я его ради любопытства, послушать что расскажут. Но слушать это просто невозможно, на 6:30 я наконец услышал начало объяснения применения оператора и офигел от количества воды в ролике. Воду льете профессионально ukposts.info/have/v-deo/n5SYfJeApneBkmg.html
@zproger
@zproger Рік тому
Смешное видео) Старался не лить воду, просто иногда приходится повторяться и наводить примеры, чтобы это лучше поняли. Раньше когда так не делал люди потом жаловались что слишком коротко и поверхностно) Так что всем не угодишь
@Alcoholdehydrogenas
@Alcoholdehydrogenas 10 місяців тому
а = б =1 - мы получим 2 ссылки на значение 1?
Eurovision Song Contest 2024: First Semi-Final (Live Stream) | Malmö 2024 🇸🇪
2:23:45
Godzilla Attacks Brawl Stars!!!
00:39
Brawl Stars
Переглядів 9 млн
😱СНЯЛ СУПЕР КОТА НА КАМЕРУ⁉
00:37
OMG DEN
Переглядів 1,7 млн
10 признаков того, что вы новичок в Python
4:59
Python запятая равна оператору =?
8:38
ZProger [ IT ]
Переглядів 46 тис.
Задача из Собеседования на 160,000 Евро в Год
13:27
Как выучить Python БЫСТРО используя ChatGPT?
10:10
ZProger [ IT ]
Переглядів 336 тис.
Grequests Python - 100 HTTP запросов за 2 секунды
10:13
ZProger [ IT ]
Переглядів 35 тис.
Python 3.12 Generic Types Explained
18:27
ArjanCodes
Переглядів 55 тис.
Eurovision Song Contest 2024: First Semi-Final (Live Stream) | Malmö 2024 🇸🇪
2:23:45