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

  Рет қаралды 68,254

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 Жыл бұрын
согласен, видно что автор то сам понимает что говорит, а вот мне непонятно, хотя я уже второй год работаю
@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) Отличие этих двух записей очень большое. Так что правильнее будет сказать, что данная запись генерирует список, но генератором не является
@serafimgrubas2070
@serafimgrubas2070 Жыл бұрын
Пример с двухчасовой функцией реально дал понимание нужности этого оператора. Остальные примеры тяжело понять, в особенности со строкой startswith поскольку там генератор в любом случае пройдётся по всему списку
@user-oi5hk5gl3o
@user-oi5hk5gl3o Жыл бұрын
а в двухчасовой функции проходиться по всему списку не будет?? Проблема не в том будет или нет, а в том СКОЛЬКО РАЗ!
@kan4317
@kan4317 Жыл бұрын
Не, any "ломается" на первом True
@romansovetskikh7902
@romansovetskikh7902 Жыл бұрын
Проблема высосана из пальца. Элементарно всё решаетcя и без моржа.
@user-pz9ju6ss7r
@user-pz9ju6ss7r Жыл бұрын
@@romansovetskikh7902 да, решается, просто моржовый оператор изначально создавался как сахар, а не принципиально новый подход
@zproger
@zproger Жыл бұрын
Более подробно в документации описали, оператор хоть и достаточно простой по своей логике, но примеров кода очень много и не всегда удается понять с первого раза.
@svaaccelerator313
@svaaccelerator313 Жыл бұрын
По поводу примера while (value:= input()) != "" можно же красиво упростить: while name := input("Name:"): print(name)
@Max-qj2fh
@Max-qj2fh Жыл бұрын
тот случай когда быстрее прочитать чем посмотреть ролик до конца ) но спасибо за наводку )
@zproger
@zproger Жыл бұрын
Пожалуйста =)
@QAengineer
@QAengineer Жыл бұрын
Очень много повторений, можно было сократить видео раза в 2
@zproger
@zproger Жыл бұрын
Спасибо, учту в следующих видео и постараюсь не повторяться
@nikitabaraboshin7123
@nikitabaraboshin7123 Жыл бұрын
ZProger, пожалуйста, давайте больше конкретики в видео, не обходитесь одними иллюстрациями. Без четкого и ясного определения функции намного сложнее понимать ее применение. Пожалуйста, уделите больше внимания разбору примеров
@irwe3514
@irwe3514 Жыл бұрын
Очень полезная информация для новичка, все подробно и просто розложено. Спасибо что делаете подобные видео, ждем другие:)
@zproger
@zproger Жыл бұрын
Благодарю!
@bekzodhalilov8689
@bekzodhalilov8689 Жыл бұрын
Спасибо очень помогаешь с учёбой по языку Python!!!;)
@zproger
@zproger Жыл бұрын
Это хорошо =)
@sailtogether3236
@sailtogether3236 Жыл бұрын
АРГХХ, БЛДЖАД! Это можно было сказать тремя фразами: кейс 1 - присваивать значение переменной в условиях (в С-стиле, но без его недостатка), кейс 2 - перестать делать for y in [fn(x)] в comprehension'ах, и кейс 3 - конфликт синтаксиса присвоения внутри аргумента функции и именованных аргументов функций
@user-gg9ec2nm6i
@user-gg9ec2nm6i Жыл бұрын
03:31 знаем знаем) так меньше шансов ошибится. Вместо равенства можно случайно указать присвоение переменной и тогда это будет совсем другой код. Такая запись лишает нас возможности присвоения. У этой фишки есть название, но я не помню его)
@dotcomming7680
@dotcomming7680 Жыл бұрын
Yoda notation я подозреваю. Но обычно в ООП таким образом ещё и избавляются от nullPointerException
@zproger
@zproger Жыл бұрын
Да, опасная штука :)
@sob3856
@sob3856 Жыл бұрын
Насколько я знаю компилятор gcc с параметром -Werror не даст скомпилировать код если нарисать if x=5, оно покажет ошибку.
@bomboklaa
@bomboklaa Жыл бұрын
Ого, сперва подумал, что вообще показалось, что ты попросил 600 лайков... Но это же действительно странно, что такой полезный канал так не популярен!
@zproger
@zproger Жыл бұрын
Будем исправляться =)
@someone3835
@someone3835 Жыл бұрын
Видео полезное, спасибо. Особенно про производительность при двойном вызове функции.
@cs_dequeue
@cs_dequeue Жыл бұрын
Спасибо за полезное видео! Но надеюсь люди догадываются, что в 7:28 не генератор, а просто list comprehension. синтаксис генаратора вместо [] использует (). Про print(num = 1) было интересно👍
@Barmaley_YT
@Barmaley_YT Жыл бұрын
Доброго дня, хорошего настроения. Есть интересная особенность, которая к сожалению не касается моржового оператора. Хотелось бы получить ответ на следующий вопрос : Почему конкатинируются строки в листе? Пример следующий: temp=['i','love', 'the ' 'Python','very','match' '!!!'] print(temp)
@archyt88
@archyt88 Жыл бұрын
Оператор для собеседований
@zproger
@zproger Жыл бұрын
Тоже верно)
@hock_2334
@hock_2334 Жыл бұрын
простите мне мою невежественность , а как вы сделали != "" перечеркнутым? Я только начинаю учится. Это только в пайчарме так можно?
@zproger
@zproger Жыл бұрын
IDE сама так форматирует для красоты =)
@MyKashiwa
@MyKashiwa Жыл бұрын
Спасибо! Очень хорошо и доходчиво
@zproger
@zproger Жыл бұрын
Рад что Вам понравилось
@renatshaym
@renatshaym Жыл бұрын
Да за шо) Вот смотрю видео и так затягивает, что хочется смотреть ещё и ещё и те видео, которые выходят во всплывающих подсказках) И так уходит незаметно полдня) Автору спасибо за топовые контенты, которые он пилит для нас)
@user-xf7ue9vj4g
@user-xf7ue9vj4g Жыл бұрын
Спасибо Вам, очень понятно и лаконично👍
@zproger
@zproger Жыл бұрын
Благодарю! Буду стараться и дальше =)
@andreykuznetsov8096
@andreykuznetsov8096 Жыл бұрын
Зачем ты врёшь? И зачем автор это лайкнул? Я просмотрел уже 8 минут и особенно мой мозг взорвался на примере с if, потому что я не могу понять, зачем это нужно
@user-og6es2ht4v
@user-og6es2ht4v Жыл бұрын
насчёт понятно спорный момент
@jackmoral9127
@jackmoral9127 Жыл бұрын
Круто! Но больше всего мне стало интересно этот как вместо != зачеркнутое равно поставить, это какуюто комбинацию клавишь надо прожать или только в пайчарме актуально?
@alexbobtail4862
@alexbobtail4862 Жыл бұрын
Тоже интересно. Нашли, как это сделать?
@alexbobtail4862
@alexbobtail4862 Жыл бұрын
Попытался скопировать знак ≠. Не работает
@_Kruzo_
@_Kruzo_ Жыл бұрын
Спасибо за ответы на "основные вопросы", которые запутали все окончательно...
@zproger
@zproger Жыл бұрын
я старался =)
@trixion74
@trixion74 Жыл бұрын
Ожидание: что это за оператор Автор: сейчас я расскажу как его можно использовать p.s. прошла уже половина видео и я так и не понял
@zproger
@zproger Жыл бұрын
:0
@ZA_CCCP
@ZA_CCCP Жыл бұрын
Оо, спасибо, что увидел мой комментарий :]
@zproger
@zproger Жыл бұрын
Пожалуйста, я все крутые идеи реализовываю =)
@artembagachkov933
@artembagachkov933 Жыл бұрын
Крутая штука, главное предупреждать команду перед использованием, а когда пишешь сам то просто быть внимательным :)
@zproger
@zproger Жыл бұрын
=)
@user-yk2zc8vy6u
@user-yk2zc8vy6u Жыл бұрын
Спасибо за инфу) Чисто сахар, чтобы писать в меньшее количество строк)
@zproger
@zproger Жыл бұрын
Ага) Но сахар достаточно опасный в некоторых случаях =)
@waltage
@waltage Ай бұрын
Если язык С влияет на Питон - возникает обоснованный вопрос о целесообразности существования этого самого Питона. лол.
@auril1594
@auril1594 Жыл бұрын
спасибо, стало понятнее. пример бы наверное сделал через filter. хотя может через моржа и правильнее
@zproger
@zproger Жыл бұрын
Можно разные примеры делать =)
@user-pl6hu6si1u
@user-pl6hu6si1u Жыл бұрын
я правильно понял, что он работает как и обычное = ,но вмести с тем возвращает присвоенное значение.
@zproger
@zproger Жыл бұрын
Да
@CrossBend
@CrossBend Жыл бұрын
вот, сначала нарушают основные принципы программирования - плодят сущности, а потом вынуждены плодить их еще больше из-за именованных аргументов ))))) а как удобно в JS паровозиком присваивать: a=b=1;if(x=a==b)alert('x='+x) счастье порой так близко...
@donfedor007
@donfedor007 Жыл бұрын
Добрый день! Почему у Вас не равно записано не != , а перечёркнутое равно? И как так делать?
@vadim5401
@vadim5401 Жыл бұрын
Но ведь результат работы двухчасовой функции можно предварительно присвоить в переменную и потом сравнивать как угодно без повторного вызова. Как понимаю, := дает только возможность визуально сократить код на строку присваивания.
@zproger
@zproger Жыл бұрын
Это чисто пример, чтобы понять суть оператора. А так да, оператор частично создан чтобы улучшить код и добавить новый функционал.
@MaxusR
@MaxusR Жыл бұрын
В случае while это уже выльется в бесконечный цикл с прерыванием по значению
@slavakonstantinov1531
@slavakonstantinov1531 Жыл бұрын
Огромное спасибо. Это было очень интересно и познавательно
@zproger
@zproger Жыл бұрын
Рад что принес пользу =)
@focsvin
@focsvin 10 ай бұрын
Доброе время суток. Я что-то не понимаю. Почему в питоне нельзя писать так f_data = [y for x in data if(y = test(x)) != 4]. prtint() просто нельзя сделать присвоение в рандомно переменную. Хотя в чем тут проблема я честного говоря не понимаю. В том же C# это можно сделать. А тут то что не так ? По идее просто происходить присвоение значения. А потом эта переменная проверяется в условии.
@zakirovio
@zakirovio Жыл бұрын
Сначала перепутал с ключ значением в генераторе словаря {i: = value for i in range(n)}, оказалось немного другое 👍
@handal3403
@handal3403 Жыл бұрын
Скажи пожалуйста как называется твоя тема pycharm?
@zproger
@zproger Жыл бұрын
Dracula
@luispakvard5681
@luispakvard5681 Жыл бұрын
А как взять записать ресурсы с одного екзешника другой я знаю что есть секция .rsrc реально ли ее взять с 1го файла и переписать в 2й екзешник что бы у него были там иконка, манифест , версия такие как у 1го файла и что б он работал как раньше?
@zproger
@zproger Жыл бұрын
Реально, но я не знаю как это сделать в Python, потому что тут всё оборачивается в рантайм, и там сложно найти какие-то ресурсы
@Dmytro-Tsymbaliuk
@Dmytro-Tsymbaliuk Жыл бұрын
Раз речь про .exe, то речь не о питоне, либо про питон, но с нестандартным транслятором, где полученный результат будет работать даже если удалить его из системы скопировать в другой то действительно можно, только смысл, если это никакого положительного результата не даст? Это будут тупо неиспользуемые данные
@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? Не слышал о таком
@revoluxe
@revoluxe Жыл бұрын
Супер, очень полезная вещь!
@zproger
@zproger Жыл бұрын
Благодарю
@Ramzes200986
@Ramzes200986 Жыл бұрын
Удобно, вызвал один раз функцию и проверил и присвоил))))
@koolmax79
@koolmax79 Жыл бұрын
Те кто на C/C++ пишут не путают = и ==. И я бы никогда так как предлагается не писал, некрасиво, лучше сущность сравнивать с чем то, а не наоборот. Простой пример if(men.age == 5) //если человеку 5 лет if(5 == men.age) //если 5 человеку лет. Вы серьезно так думаете и говорите? То что касается питона, хорошие примеры, подробно и понятно
@luispakvard5681
@luispakvard5681 Жыл бұрын
Интересно на питоне инъекции шел кода и в частности Shellcode Reflective DLL Injection
@zproger
@zproger Жыл бұрын
Интересно, но ютубу такое не понравится
@dmitry-lz1ny
@dmitry-lz1ny Жыл бұрын
Сам изучаю питон 3 недели и случайно узнал моржевом операторе. Тема крутая, но мне пока очень трудно найти правильное использование.
@zproger
@zproger Жыл бұрын
Думаю ещё придет время =)
@eagold
@eagold Жыл бұрын
но кстати этого оператора мне часто не хватало, даже подумать не мог что он есть ещё и с версии 3.8
@zproger
@zproger Жыл бұрын
Пайтон не перестает удивлять :)
@MrMolekula
@MrMolekula Жыл бұрын
3:35 - так пишут, чтобы по ошибке не написать в условии оператор присваивания. Про крайней мере меня так учили)
@JarBinks
@JarBinks Жыл бұрын
Спасибо! Видео оказалось очень полезным!
@zproger
@zproger Жыл бұрын
=)
@user-og6es2ht4v
@user-og6es2ht4v Жыл бұрын
а главное понятным
@sailtogether3236
@sailtogether3236 Жыл бұрын
Очень много "воды", но многие говорят, что "воды" очень много, совсем много, что просто капец, ведь можно было без "воды", которой очень много, сказать лишь суть, которая без "воды".
@trixion74
@trixion74 Жыл бұрын
я сначала подумал это Turbo Pascal
@zproger
@zproger Жыл бұрын
тьфу тьфу тьфу
@robertobokarev439
@robertobokarev439 Жыл бұрын
Пригодится во всяких генераторах, к примеру каждый вызов увеличивает возвращаемое число на 1
@sambo-mambo
@sambo-mambo Жыл бұрын
Информативно. Круто мне понравилось.
@zproger
@zproger Жыл бұрын
Благодарю!
@FrolFrolow
@FrolFrolow Жыл бұрын
Классный ролик, все понятно, пусть я почти и не знаю информатику и питон в частности(((
@jackmetropolitan7845
@jackmetropolitan7845 Жыл бұрын
Ууу! До 8:30 думал - "что за ерунда", а потом как понял! Спасибо!
@zproger
@zproger Жыл бұрын
Это точно)
@bmx666bmx666
@bmx666bmx666 Жыл бұрын
полезная вещь для изоляции переменных в блоках как условие или цикл. Что-то наподобие лямба функций, аргументы нужны лишь временно и не нужно дублировать и везде расставлять.
@scren2010
@scren2010 Жыл бұрын
Отличное видео, спасибо!
@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 :)
@eagold
@eagold Жыл бұрын
что это за странный оператор не равно? 06:44
@zproger
@zproger Жыл бұрын
Это так IDE форматирует =)
@eagold
@eagold Жыл бұрын
@@zproger а, фух🙈
@user-br2mt5bj6z
@user-br2mt5bj6z Жыл бұрын
@@zproger А не подскажите, как называется плагин на такое форматирование? Очень понравилось, хотелось бы себе поставить
@elnurbda
@elnurbda Жыл бұрын
Большое спасибо за видеоролик!
@zproger
@zproger Жыл бұрын
Рад что понравилось
@user-eo7mv5yc2x
@user-eo7mv5yc2x 10 ай бұрын
это конечно здорово, но я видел две двойных рекламы и получил очевидный ответ в конце. короче, спасибо кэп, лай не ставил
@zproger
@zproger 10 ай бұрын
Я вообще не понимаю какую рекламу вы здесь увидели, если её тут нет
@luckytima2315
@luckytima2315 Жыл бұрын
Прикольно )) Как вы сидите на зорине, посидел 3 дня, меня убила дерганая анимация и это на версий за 39 долларов ;p
@zproger
@zproger Жыл бұрын
Не сижу, это чисто для видео)
@luckytima2315
@luckytima2315 Жыл бұрын
@@zproger а что у вас за система на основной машине? я стараюсь вам подражать и сидел на минте как вы, потом увидел zorin решил поставить, но эта анимация меня просто убила (
@zproger
@zproger Жыл бұрын
Мне Manjaro Gnome нравится =)
@luckytima2315
@luckytima2315 Жыл бұрын
@@zproger бегу ставить :p
@Ramzes200986
@Ramzes200986 Жыл бұрын
я вот не понял num вообще не имеет значения и тут получается хочешь присвоить ему 1?
@user-gt3lm9ny1e
@user-gt3lm9ny1e Жыл бұрын
Спасибо за видео!
@seregeyvladimirov7065
@seregeyvladimirov7065 2 ай бұрын
Часто использую этот оператор именно в if statement, больше нигде
@dotend7915
@dotend7915 Жыл бұрын
Дядь, как у тебя неравно записалось как перечеркнутое равно? Оно же как то так записывается: !=
@zproger
@zproger Жыл бұрын
Это так форматирует IDE для красоты =)
@maxdemon4778
@maxdemon4778 Жыл бұрын
Спасибо Автор) Не знал про это(
@zproger
@zproger Жыл бұрын
Рад что было полезно!
@asmrasmr327
@asmrasmr327 Жыл бұрын
как использовать такую запись ≠ вместо != ?
@zproger
@zproger Жыл бұрын
Никак, это редактор кода форматирует :)
@vdimitrioglo
@vdimitrioglo Жыл бұрын
material theme установи
@MrNagios
@MrNagios Жыл бұрын
отлично, спасибо за видео
@zproger
@zproger Жыл бұрын
Спасибо за поддержку!
@pro100denchik
@pro100denchik Жыл бұрын
Классно объяснил оператор моржа, но меня смутил знак неравенства ≠, интерпретатор пайтон это понимает? и что надо сделать, чтобы это работало? почему не стандартный знак != неравенства?
@fushibuzuka7463
@fushibuzuka7463 Жыл бұрын
сам глаза округлил..правда не ас в питоне.
@zproger
@zproger Жыл бұрын
Это так редактор кода форматирует) А на деле там обычный !=
@girfeo9338
@girfeo9338 Жыл бұрын
Спасибо, одни из лучших среди лучших
@zproger
@zproger Жыл бұрын
Спасибо
@lochinlochinov8975
@lochinlochinov8975 Жыл бұрын
А почему у тебя на 6:30 вместо != Поставлено ≠ ?
@zproger
@zproger Жыл бұрын
Это редактор кода так делает для красоты)
@lochinlochinov8975
@lochinlochinov8975 Жыл бұрын
@@zproger понятно
@waserdenser003
@waserdenser003 Жыл бұрын
Только узнал, что питон написан на C...
@zproger
@zproger Жыл бұрын
=)
@dzolud9338
@dzolud9338 Жыл бұрын
Спасибо большое, хорошее видео
@zproger
@zproger Жыл бұрын
Рад что понравилось!
@segeus
@segeus Жыл бұрын
Если бы в print() был аргумент **kwargs и метод работы с ним, то он прекрасно бы кушал print(x = 1).
@respise
@respise 10 ай бұрын
очень интересный акцент, никогда такого не слышал.
@zproger
@zproger 10 ай бұрын
;)
@vladimirkulakov6126
@vladimirkulakov6126 Жыл бұрын
Это в новой версии python добавили?
@zproger
@zproger Жыл бұрын
Да
@user-br5vb8kx5g
@user-br5vb8kx5g Жыл бұрын
это моржовый оператор, больше используется для написания кода в строчку
@nikitawhite4516
@nikitawhite4516 Жыл бұрын
Тема для пайшарма очень симпатичная. Как называется?
@zproger
@zproger Жыл бұрын
Github Dark
@nikitawhite4516
@nikitawhite4516 Жыл бұрын
@@zproger спасибо
@Samurai-vc3rl
@Samurai-vc3rl 11 ай бұрын
У тебя Линукс??
@user-gz4fx4sv6d
@user-gz4fx4sv6d Жыл бұрын
Спасибо большое
@zproger
@zproger Жыл бұрын
Рад что понравилось
@Dmytro-Tsymbaliuk
@Dmytro-Tsymbaliuk Жыл бұрын
Python дошел до стандарта С++11 с инициализацией переменных, получается
@zproger
@zproger Жыл бұрын
:D
@izergaer
@izergaer Жыл бұрын
Насколько я понял, это аналог оператора = из C
@zproger
@zproger Жыл бұрын
Можно сказать и так, но walrus operator более функциональный
@user-qd5od4fi5j
@user-qd5od4fi5j Жыл бұрын
Очень крутое видео! Хотелось бы больше видео по селениуму. Особенно разбор оператора if с driver.find_element
@zproger
@zproger Жыл бұрын
Постараюсь что-то придумать =)
@figaro2440
@figaro2440 Жыл бұрын
А что там вообще рассматривать, если заданный элемент нашелся if срабатывает, это обычный if, что вы от него еще хотите?
@user-gh2sq4ps4o
@user-gh2sq4ps4o Жыл бұрын
8:48 вроде python это оптимизирует для одинаковых значений
@Alcoholdehydrogenas
@Alcoholdehydrogenas 11 ай бұрын
А что за линух и с каким ДЕ?
@zproger
@zproger 11 ай бұрын
Arch + BSPWM
@SkveerBoy
@SkveerBoy Жыл бұрын
Годно Годно )
@zproger
@zproger Жыл бұрын
Благодарю =)
@user-qh8jy1cz6z
@user-qh8jy1cz6z 6 ай бұрын
спасибо очень полезно начинающему
@axil3910
@axil3910 Жыл бұрын
С := понятно, а как ты символ зачеркнутого равно написал? Что это такое вообще? != ?
@zproger
@zproger Жыл бұрын
Это IDE так форматирует =)
@gerz_og
@gerz_og Жыл бұрын
все хорошо и отлично... но 2.44 минуты ждать обяснения... это очень душно.
@user-gy9lb9ji5f
@user-gy9lb9ji5f Жыл бұрын
Аж на 12 мин ролик о том, что объясняется одним предложением . Моржовый (walrus) оператор, появившийся в Python 3.8, дает возможность решить сразу две задачи: присвоить значение переменной и вернуть это значение, поэтому порой можно написать код короче и сделать его более читаемым, и он может быть даже более эффективным с точки зрения вычислений.
@user-jo7ci2wy4j
@user-jo7ci2wy4j Жыл бұрын
а почему у вас неравно так записывается?
@zproger
@zproger Жыл бұрын
Так форматирует IDE
@mauzeroffc7394
@mauzeroffc7394 Жыл бұрын
а какая у тебя тема в PyCharm?
@zproger
@zproger Жыл бұрын
Material UI - Github Dark
@mauzeroffc7394
@mauzeroffc7394 Жыл бұрын
@@zproger спс
@FoxSlyme
@FoxSlyme Жыл бұрын
Очень затянуто.
@helish_88
@helish_88 Жыл бұрын
этому оператору уже два года python 3.8 Release Date: Oct. 14, 2019
@zproger
@zproger Жыл бұрын
Ну так никто и не говорил что он новый =) Мало кто снимает об этом операторе и хотелось что-то интересное рассказать
@helish_88
@helish_88 Жыл бұрын
@@zproger 6 секунда, вы говорите новый оператор. разрешите дое*** :)))
@zproger
@zproger Жыл бұрын
Упс, что-то не то сказал значит
@Shurik1236
@Shurik1236 Жыл бұрын
Классика Си: (c = getchar()) != EOF.
@zproger
@zproger Жыл бұрын
:D
@TheBogdanLisichenko
@TheBogdanLisichenko Жыл бұрын
Если много писать на питоне - можно заработать синтаксический диабет
@zproger
@zproger Жыл бұрын
100% xD
@Alcoholdehydrogenas
@Alcoholdehydrogenas 11 ай бұрын
Из какого Го?! Я узнал про этот оператор из Борланд Паскаль!
@arsenskavin130
@arsenskavin130 Жыл бұрын
Генераторы делаются в круглых скобках.
@zproger
@zproger Жыл бұрын
да, речь о других генераторах, не о технологии из языка
@arsenskavin130
@arsenskavin130 Жыл бұрын
@@zproger не знаю как там в русскоязычной терминологии, но впервые встречаю что лист компрехеншены называют генераторами, генераторы это принципиально другая вещь.
@Alcoholdehydrogenas
@Alcoholdehydrogenas 11 ай бұрын
а = б =1 - мы получим 2 ссылки на значение 1?
@kemal1910
@kemal1910 Жыл бұрын
Си'шники наныли, базарю =)
@zproger
@zproger Жыл бұрын
100%
Chips evolution !! 😔😔
00:23
Tibo InShape
Рет қаралды 19 МЛН
Зомби Апокалипсис  часть 1 🤯#shorts
00:29
INNA SERG
Рет қаралды 7 МЛН
The Big Tech Companies are killing the job market
13:23
10 признаков того, что вы новичок в Python
4:59
Python vs C++ Speed Comparison
1:04
The Builder
Рет қаралды 1,7 МЛН
Программистский сленг: как не запутаться в терминах
11:43
Александр Ильин про IT
Рет қаралды 56 М.
Chips evolution !! 😔😔
00:23
Tibo InShape
Рет қаралды 19 МЛН