Спасибо автору, что дал мне 250 IQ. Пускай я С++ разработчик и в Питон забегаю изредка...
@zproger2 жыл бұрын
😎
@lexxkrt2 жыл бұрын
во всех нормальных языках есть тернарный оператор, и даже больше, есть инкремент декремент, чего нет в питоне
@mrslashx2 жыл бұрын
возсожно можно написать модуль на С с инт функцией которая бкдет ссылку увеличевать и вот тебе инкремент почти
@ВасилийД-й2щ Жыл бұрын
коллега по уровню iq вы не одиноки
@artemxyi5 ай бұрын
@@lexxkrt нахуй надо?есть же number -= number или также с плюсом
@maksych86902 жыл бұрын
По поводу True or "Some". Можно использовать для установки дефолтного значения. Да, однозначно лучше проверять на None, но и этот вариант приемлемый. def func(data: dict[str, str] = None) -> None: data = data or {} ...
@ВиталийУдарцев-п2б2 жыл бұрын
однозначно лучше избегать опциональных аргументов вообще
@MaxusR2 жыл бұрын
Полезут косяки с Falsey значениями вроде нуля или пустой строки/списка.
@MaxusR2 жыл бұрын
@@ВиталийУдарцев-п2б Опциональные аргументы повышают гибкость. Порой вместо трёх похожих по содержанию функций лучше сделать одну с опциями.
@Блинчик-н4о2 жыл бұрын
@@ВиталийУдарцев-п2б например ты пишешь бота модератора для тг. Есть встроенная функция для изменения прав участника группы, где ты в параметрах должен выбрать что должен уметь пользователь, а прав различных 13, а поменять ты хочешь всего 1- возможность отправлять гифки(а то он задолбал спамить ими). В этой функции для каждого права должна быть выделена отдельная переменная. Так вот если бы не было keyword аргументов, то тебе бы каждый раз пришлось бы вводить во все остальные права значение, которое отвечает за то, чтобы это право не поменялось. Или пришлось бы дробить 1 функцию на 13 разных, что плохо если ты хочешь поменять сразу все, или только 10 из них например. Так что keyword аргументы очень полезная вещь и я привел пример из личной практики.
@victorstelmashchuk48402 жыл бұрын
Что-то я нихрена не понимаю, что сложного в строке print(a or "пусто"). Это вызывает сложности только при первом знакомстве. Зато когда становится привычным экономит много строчек кода
@alexandergrigorev45182 жыл бұрын
Просто ты ещё джун потом поймёшь 😁
@zproger2 жыл бұрын
Сложность в том, что оно выглядит не очевидно в больших проектах
@victorstelmashchuk48402 жыл бұрын
@@zproger Я же говорю дело привычки. :) А как вы короче напишете вывод какой-либо переменной когда вместо None или нуля требуется какая-то строка как у меня в примере. Я соглашусь, что лучше не загромождать это вложениями друг в друга, но советовать совсем не использовать подобные конструкции по-моему не правильно
@lexxkrt2 жыл бұрын
@@victorstelmashchuk4840 а например конструкция print(a.text if a else '') в данном случае проверяется само существование объекта, иначе вызов метода объекта вызовет ошибку. или например посложнее print(a.text if (a:=soup.select('div.someclass')) else 'No class')
@vlatterran2 жыл бұрын
Я считаю что как такое использование не логического типа данных в логических конструкция - идея плохая, ибо без контекста фиг его знает что автор имелл в виду. Если написать if a, то я сразу предпологаю что а - это булева переменная, а если написать if len(a) >0, то сразу понятно что а это некая коллекция, у которой есть длинна. И сравнивать с нулём я тоже считаю необходимым, ибо когда ты видишь что идёт прямое сравнение с нулём, тебе не надо вспоминать что 0 - это ложь.
@gbk_youtube54482 жыл бұрын
Момент 5:23 Попытался сам разобраться в коде: status = True #Присваиваем переменной status значение True или же 1 connect_label = ("1.0", "2.0")[status] #берём из кортежа значение с индексом status(1) в нашем случае "2.0" print(f"Server version: {connect_label}") #выводим на экран строку со значением которое присвоили на второй строке Я написал это ещё не досмотрел видео, так что я не говорю что это правильно
@n1kit12 жыл бұрын
касательно последнего, был у меня ещё опыт использования and в подобном примере, крч например, вы хотите проверить условие, и если оно верно то вызвать функцию, тут как раз это пригодится, к примеру: os.path.isfile("cache.dat") and not os.remove("cache.dat") and print("Кэш очищен.") удалит файл если он существует и если удалит то напечатает "кэш очищен" иначе ничего не напечатает. никто не запрещает продолжать эту цепочку, стоит помнить что not имеет самый высокий приоритет, and - средний, а or - низший, то есть сначала выполнятся все not, потом проверятся все and и только потом пойдут or.
@brawlerx12402 жыл бұрын
а подскажите пожалуйста как читать эти ошибки __main__.class object at ........
@indlborm2 жыл бұрын
В копилку стоит добавить неопределенность типов данных. Пример: x=2 y = x/2 if x//2 == 0 else (x//2 + 1) При четных x будет int. При нечетных -- float.
@frand21582 жыл бұрын
А разве не наоборот?
@AntiCureshow2 жыл бұрын
не пизди сука
@sadandpathetic Жыл бұрын
В твоём примере и при чётных, и при нечётных будет тип int (за исключением чисел 0, 1 и с плавающей точкой). Если в этом примере целочисленное деление заменить на остаток от деления, то при нечётных будет int, а при чётных float, что довольно очевидно из-за наличия целочисленного деления только в одном из блоков if-else
@metasy_2 жыл бұрын
насчет True or "Some", это можно использовать если первое значение может вернуть None и нужно его заменить на другое более подходящее
@NotxctQ6 ай бұрын
Поддерживаю, например в answer = input("Enter text: ") or "default" удобно для подстановки дефолтного ответа 7:26
@jurissiberian75682 жыл бұрын
Тернарные операторы не обязательно использовать для получения вычисленного значения. К примеру: func1() if else func2().
@n1kit12 жыл бұрын
В этом случае лучше будет использовать обычные условия, так как они не сохранят значения выражения, что будет работать быстрее, проверял лично.
@Rejgan3182 жыл бұрын
func1 и func2 здесь со скобками. То есть вызов этих функций, которые что-то возвращают, то есть вычисляемое выражение. Пример неудачный. И вообще с точки зрения питона - везде объекты. Так что нет большой разницы между func1 (без скобок, без вызова) и, например 5 или "Hello"
@winder-krons2 жыл бұрын
Хм, спасибо за видео. Данными конструкциями я пользуюсь часто, когда упрощаю обычный if/else, с подводным камнем все просто, не использую данную конструкцию :) 5:22 почему только люди с высоким IQ?) Я думаю, что это очевидно, сразу понятно, что True и False это 1 и 0, если некоторые, конечно, знают/не забыли 7:00 Интересно, но да, в большом коде будет трудно понять, либо легко допустить ошибку, если такого много
@wasd13382 жыл бұрын
По вопросу на 5.25. если булевые значения проверить на принадлежность к классу int - isinstance(True, int) вернёт так же True как и если проверить isinstance(True, bool), потому что bool является дочерним классом от класса int, поэтому не удивительно что они могут работать как int) я хочу сказать что обозначение булевых за 0 и 1 это в данном случае не просто условность из области логики, это в том числе реализовано в кишках языка
@ЙенФенФыр2 жыл бұрын
04:30 - в чём заключается подводность того, что случится ошибка, если поток дойдёт до кода, выдающего ошибку?
@robeenx2 жыл бұрын
2:34 если первое условие False, второе условие через and даже не будет проверяться. Пример: assert 0 if 0 and 1 / 0 else 1 # 1
@TrueSentiago Жыл бұрын
7:25 Любое непустое значение == True
@CrossBend Жыл бұрын
5:24 = а! дак это обращение к картежу по индексу. на сколько я понимаю, коллекции в памяти хранятся +/- одинаково, а их особенность как раз доступ по индексу (не считая множества)
@dmpn7427 Жыл бұрын
5:25 - проверяю айкью: возвращает первое значение, если в квадратных скобках True... пошёл смотреть дальше
@elastvd75032 жыл бұрын
Супер, спасибо!!
@harlok132 жыл бұрын
в исходном коде джанго встречаются такие конструкции True or "Some". например, reverse() из django.urls
@alexandrkononenko78722 жыл бұрын
как ты пишешь вместо >= и != то что ты пишешь. как ты заменил операторы?
@СергейШирнин-е1р2 жыл бұрын
7:15 нужно очень много времени? Чтобы понять что and это false seeker и при отсутствии false он вернет последний true, а or это true seeker и при отсутствии true он вернет последний false? Честно совсем не понял в чем конкретно для python сложность такой записи.
@qwertymangames1800 Жыл бұрын
На "or" не гони. В lua это единственный способ задать параметр по умолчанию в начале функции, например так: x = x or 1 Или использовать тернарный оператор: x = x or 1 and 0 - что гораздо понятнее того "тернарного оператора" через if что приводится в python. Ведь эта конструкция гораздо более читаемая и имеет тот же порядок как и например тернарная операция в C#
@TheNikita2 жыл бұрын
Давно не писал комментариев в поддержку канала, видео очень классное и информативное! Но есть вопрос как ты сделал >= одним символом?
@zproger2 жыл бұрын
Это не я, это IDE форматирует так =)
@TheNikita2 жыл бұрын
@@zproger Понял, надо будет обновить pycharm :)
@live-superdulia9097 Жыл бұрын
Добрый день! Очень интересное видео) Не знаете, есть ли подобные способы написания конструкции try except в одну строчку?
@artembagachkov9332 жыл бұрын
3:33 вам даже не нужна будет обфускация 😂
@zproger2 жыл бұрын
=)
@evgeniyevgeniy83522 жыл бұрын
2:23 Это просто неправда. Он не проверяет условие 1>2 и если оно верно, то возвращает 1. Он работает так: 1) Проверяет условие "1>2 and 1>3". Оно False, поэтому вычисляется значение справа он первого else. 2) Проверяет условие "2>3". Оно False, поэтому возвращается значение после второго else, которое равно 3.
@eugene_na_tytrube2 жыл бұрын
В данном случае лишь ошибка у автора в том, что у него оператор and, а с ним, если бы 1>2 было бы истинным, действительно сначала бы вторая часть условия проверялась бы, т.к. and, по сути, останавливает свое выполнение после первого ложного значения, если таковое есть, или вычисляет все, если ложных значений нет. А вот если бы был оператор or, то единица была бы выведена сразу после вычисления 1 > 2 (при условии, что считаем его истинным), без вычисления всех остальных выражений, как и говорится в видео. Тут хорошо моржовый оператор подойдет для экспериментов: (a := 1) if ((b := 1 + 2) or (c := 3 + 5)) else (d := 2) после вычисления данного выражения, будут существовать только переменные а и b, т.к. будут выполнены только выражения с ними. Если поменять or на and, то и переменная с появится, т.к. и ее выражение будет вычислено.
@vrabosh2 жыл бұрын
True and "истина" or "иначе" Мне такой вариант больше нравиться, чем if else
@Omskiy_vinokur2 жыл бұрын
Прохожу курс по питону там такого много так что всё легко
@zproger2 жыл бұрын
=)
@rokot2 жыл бұрын
У меня вопрос. Есть ли альтернатива Try Except. У меня модуль для пользователя. Внутри много функций. Пользователь, обращаясь к функции может указывать какие-то параметры, а может не указывать. Это сокращает код для пользователя. То есть какие-то параметры не являются обязательными. Чтобы так получилось, внутри функции идёт обращение к функциям, где прописан try except, если пользователь указал параметр, то срабатывает try, если нет, то except назначает свой по умолчанию. Всё хорошо, всё работает, но визуально огромная простыня из этих функций try except. Match case попробовал, чего-то не получилось, не работает.
@eugene_na_tytrube2 жыл бұрын
Так для этого же существует возможность задать параметры со значением по умолчанию. Там есть только тонкость, если значением является изменяемый тип, то по умолчанию задают None и уже в теле функции задают дефолтное значение. Но там никаких try-except не нужно, обычным if сразу вначала тела функции проверяется все и назначается. Ну и еще, для имитации switch-case из других языков, кроме констркций if-elif-else, так же используют словари. Try-except тут зачем? Эта конструкция нужна для отлова и обработки ошибок.
@n1kit12 жыл бұрын
А вот ещё для разбора, постарался помудрить для искушённого зрителя: FR = [72, 101, 108, 108, 111], try: FR[0] += 0o40, except TypeError: FR += [lambda s: FR'%c'%s, 87, 111, 114, 108, 100, 33], finally: FR = iter(FR) [(*O, s), (I, *l)], = FR, print(*(I(s) for s in O), I(s), *(I(s) for s in l), sep='')
@holodina2 жыл бұрын
# создание кортежа с вложенным списком в котором коды символов из таблицы ascii FR = [72, 101, 108, 108, 111], # 72(H), 101(e), 108(l), 111(o) try: # добавление символа пробела, в конец вложенного списка кортежа FR[0] += 0o40, # 0o40 == 32 коду символа из таблицы ascii except TypeError: # добавляем в кортеж второй вложенный список и в этот список мы добавляем # функцию для форматирования char символов и коды символов из таблицы ascii # FR на печать не выводится, оно не часть строки, а задаёт ей поведение # F Форматная строка(хотя используется старый способ форматирования через знак процента) # R Сырая строка(подавление экранирования), используется обычно для регулярных выражений FR += [lambda s: FR'%c' % s, 87, 111, 114, 108, 100, 33], # 87(W), 111(o), 114(r), 108(l), 100(d), 33(!) finally: FR = iter(FR) # преобразование кортежа в объект итератора [(*O, s), (I, *l)], = FR, # распаковка через listcomp. # В "O" распаковываем первый список без последнего элемента, последний элемент распаковывается в "s" # В "I" распаковывается функция форматирования из второго списка, а в "l" оставшаяся часть его часть # Задаем sep(separator - разделитель) равный ""(пустой строке), по дефолту sep=" " # Используя генераторное включение(gencomp) создаем объект генератора # *(I(s) for s in O) Итерируемся по списку "O" и значения списка прогоняем через функцию форматирования "I" # Получившийся генератор распаковываем и получаем первое слово Hello # I(s) Вызываем функцию форматирования "I", которой передаем код символа пробела (32 или же 0o40) из "s" # И получается после Hello у нас пробел, который используется в качестве разделителя # И снова используем gencomp и получаем объект генератора # *(I(s) for s in l) Снова итерируемся по списку "l" и значения списка прогоняем через функцию форматирования "I" # И вновь распаковываем этот генератор и получаем слово World! print(*(I(s) for s in O), I(s), *(I(s) for s in l), sep='') # напечатать слово Hello World! Ну как?
@n1kit12 жыл бұрын
Ну идеально конечно.
@DERJNDZE2 жыл бұрын
Прикол, а мы в мгу про ленивость and и or изучили довольно рано, в особенностях языка еще. По сути, помогает в основном только в процессе создания проклятых однострочечных амальгаций на 400 колонок, но иногда бывает полезным и в более обыденных вещах
@fedorrasputin37822 жыл бұрын
Какая ОС используется в видео ?
@zproger2 жыл бұрын
Zorin OS
@fedorrasputin37822 жыл бұрын
Довольно удобна ОС. Было бы интересно послушать Ваш вариант ее настройки для комфортной работы.
@metasy_2 жыл бұрын
сразу не понял, но понял до объяснения фичи с ("1.0", "2.0")[True]
@zproger2 жыл бұрын
Круто =)
@fidgerrr2 жыл бұрын
Привет, что за тема для PyCharm?
@zproger2 жыл бұрын
Github Dark
@fidgerrr2 жыл бұрын
@@zproger спасибо
@luispakvard56812 жыл бұрын
True приводиться к 1 поэтому ("1.0","2.0")[True] выбирает 2.0 по индексу 1 -> Server version:2.0 Правильно?
@МаксимМеснянкин-л6и14 күн бұрын
Насчёт нечитаемых вложенных тернарников - в университете ИТМО нас заставляют за пол минуты отвечать, что выведет такой код. Вот так вот учат разработке в "одном из лучших" ВУЗов
@luispakvard56812 жыл бұрын
А с True or "Some" и False or "Some" то оба если одно из 2х имеет значение True то и результат будет True а print выводит 1е трушное встреченое значение в 2м варианте трушное встреченое значение "Some" в 1м True правильно ?
@alexandermartin56942 жыл бұрын
Код нужно комментировать, тогда все практики приемлемы. Сложный код, там где одно действие имеет множество последствий, без комментариев в любом виде будет сложно понять.
@zproger2 жыл бұрын
Комментарии важны, это да
@vasiliynet3425 Жыл бұрын
Неявное приведение типов, не только "плохое решение питониста") а вообще штука с подводными камнями, особенно в языках с нестрогой типизацией, JS уже прославился своими шутка типа 1 + '1' = 11; 1 * '1' = 1 )
@jackmoral91272 жыл бұрын
вот тут тоже интересно какая комбинация клавишь нужна чтобы >= в один символ вписать, походу клаву перенастроить нужно раз такой синтаксис работает, ща прогуглю)
@eugene_na_tytrube2 жыл бұрын
Шрифт нужно искать, с поддержкой подобных лигатур, а не клавиатуру настраивать.))
@super_man-ArtOfWar32 жыл бұрын
5:25 ОООООО У МЕНЯ ОКАЗЫВАЕТСЯ IQ ВЫШЕ 250
@zproger2 жыл бұрын
Да, это официальная статистика
@Tiwula2 жыл бұрын
В Lua частенько использую true and "a" or "b", не считаю это чем то сложным и не обычным)
@qwertymangames1800 Жыл бұрын
В lua это единственный доступный тернарный оператор. По работе очень похож на тернарный оператор из C#. И к счастью в lua нет этого кривого оператора из python через if который непонятно для кого вообще придумали. Где ответы размазаны слева и справа. Это странно. Вопрос ориентации python разработчиков всё ещё открыт.
@lexxkrt2 жыл бұрын
что за символ такой больше равно?
@zproger2 жыл бұрын
Так IDE форматирует
@KVAatHome2 жыл бұрын
При работе с БД в Odoo достаточно часто в возврате стоит: a and a.a or None или нечто похожее. Обычная практика.
@cnhfgjy2 жыл бұрын
Ничего не понял, но буду разбираться...
@zproger2 жыл бұрын
=)
@gta_KaskaD2 жыл бұрын
1:29 как зделать такой >=
@zproger2 жыл бұрын
Это IDE так делает =)
@gta_KaskaD2 жыл бұрын
@@zproger это не pyCharm?
@zproger2 жыл бұрын
Это Pycharm. Возможно цветовая тема так делает. Это Github Dark если что
@metasy_2 жыл бұрын
@@zproger это Pycharm автоматом делает на любой теме, и я думаю это фишка JetBrains потому что не только в Pycharm такая штука
@holodina2 жыл бұрын
@@metasy_ в пайчарм комьюнити эдишене нет такого
@Hloredea Жыл бұрын
5:56 ниче се такого я даже не догодался использовать в коде
@Hloredea Жыл бұрын
Стоп че за херня там чё первое значение из условия выводится всегда?
@nakidai2 жыл бұрын
1:28 Ага, а еще вместо объявлении функции приписать abs = lambda number: то вообще в 0 строк решение!
@grriimx2 жыл бұрын
Как тема называется?)
@zproger2 жыл бұрын
github dark
@luckytima23152 жыл бұрын
Вы меня обманули, вы пользуетесь зорином на постояной основе)))
@zproger2 жыл бұрын
Ну для видео да, это виртуалка для записи =)
@northersan66698 ай бұрын
print("Bob" * True + "Pope" * False or "Miss") а так? :D
@godlunt2 жыл бұрын
3.10 тоже не понимаю в чем сложность понять, там же в первом идем по пунктам ==легко, во втором пользуемся банальными математическими правилами. Вероятнее всего такой подход сложнее понять при большом опыте программирования, однако школьникам и студентам вероятнее всего также пользоваться данными методами будет проще
@godlunt2 жыл бұрын
Огромный респект за видос, ты крут, спасибо за все что делаешь!
@nemofosix5015 Жыл бұрын
Трудночитаемо
@lexxkrt2 жыл бұрын
есть же замечательная конструкция ?: но питон идет по своему пути. пусть будет свой путь но почему бы не использовать конструкцию из других языков тоже. ну и по поводу этого оператора когда 2 недели назад начал изучать питон это первый оператор который меня интересовал и эту конструкцию сразу же нашел, как можно ей не пользоваться, только если ты из бейсика пришел
@zproger2 жыл бұрын
Ну не во всех языках же есть такая конструкция, иногда делают свою реализацию, а так конечно было бы круто если бы во всех япах оно работало одинаково
@lexxkrt2 жыл бұрын
@@zproger ну в питоне много конструкций и их следует использовать, а бейсик стиль следует выбросить из головы как дурной пример программирования
@Karaku2282 жыл бұрын
Учу питон около двух месяцев и обо всем этом знаю. Это что получается, я уже профи и могу устраиваться на работу?
@zproger2 жыл бұрын
Думаю пора бы уже написать свою ОС с нуля 🙃
@Hloredea Жыл бұрын
5:20 наверно 2.0 потому что True == (1 and "a"); False == (0 and "")
@Hloredea Жыл бұрын
Найс...
@SrLju2 жыл бұрын
Я себя, конечно, гением не считаю, но я все эти примеры легко понимаю и сомневаюсь, что код, запутанный этими конструкциями, вообще никто не поймёт. Я думаю достаточно просто знать о таких конструкциях, чтобы такой код понять.
@ТимонЯблоков2 жыл бұрын
Да только вот обычный if с правильной вложенностью и отступами быстрее читается, а на том же рефакторинге чем быстрее читается код тем лучше. Лучше уж потратить в два раза больше места коде, чем потом в два раза больше времени читая код в одну строку.
@QwDragon2 жыл бұрын
@@ТимонЯблоков ничего не лучше.
@eugene_na_tytrube2 жыл бұрын
Чаще всего трудность с ними возникает у тех, у кого с английским не очень все хорошо. Тернарник (если конечно в него не запихали кучу условий, но это и для просто предложения на человеческом языке имеет место), читается как простая фраза на английском. Плюс, если брать пример из видео, где в тернарном операторе еще и логические выражения внутри - то и он легко бы читался, если бы эти выражения просто в скобки заключили, обозначив приоритет операций. Почему-то это часто стесняются делать. 1 if (1 > 2 and 1 > 3) else 2 if (2 > 3) else 3 заметно легче мозгу обработать, чем 1 if 1 > 2 and 1 > 3 else 2 if 2 > 3 else 3, т.к. во втором случае, ему еще приходится дополнительно приоритеты операций обрабатывать. Хотя вложенные тернарники лучше не использовать, тут if-elif будут наглядней.
@jdjsjsbd Жыл бұрын
понять то все поймут, дело во времени
@MaxusR2 жыл бұрын
Ура! Мой IQ больше 250!
@zproger2 жыл бұрын
ура
@01011968Desgner2 жыл бұрын
Автор точно программист? Многое из показанного просто упирается в понимание работы тех или иных операторов. С заявки про мой высокий IQ - реально орнул!)))) А если еще *args и **kwargs применить, то вообще капец программированию?))))
@zproger2 жыл бұрын
Сказал первое что в голову пришло)) Просто часто видел комментарии к этим выражениям, что многие не могли их понять, это говорит о том, что большинству оно трудно дается =)
@MaxusR2 жыл бұрын
Ну даже если разобраться можно, то всё равно количество усилий для понимания этого кода не стоит той пользы, которую это уменьшение размера кода даёт. Я про особо извращённые конструкции конечно же.
@vladhanov1530 Жыл бұрын
Тот случай когда видео очень растянуто
@kotenok69192 жыл бұрын
or выше гор. Да я люблю сидеть в отладчике 10 дней, и что?
@zproger2 жыл бұрын
Бывает =)
@donfedor0072 жыл бұрын
Версия сервера 2.0
@Hloredea Жыл бұрын
7:00 ну как бы (1 == 1 or 2 == 2) == True; (1 == 0 or 1 == 1) == True тоже. Логика лол..
@Hloredea Жыл бұрын
Про вывод истинного значения из условия я не знал
@Hloredea Жыл бұрын
А я думал все могут нормально прочитать это однострочное условие..
@n1kit12 жыл бұрын
К слову, по аналогии с or - and вернёт первое ложное значение или последнее истинное если условие истинно. Например: '' and 0 and True == '' -1 and 0 and "Ф_Ф" is 0 1 and 2 and 3 is 3
@stupiddudelive18932 жыл бұрын
Ля, мой iq 249. Абидна...
@zproger2 жыл бұрын
=(
@shuvimoro48692 жыл бұрын
Аааааааааааа Я понял пример с "Server version" X = True print("iq > 250") if X else print("iq
@yinyang15292 жыл бұрын
у меня IQ 200 😎😎😎
@zproger2 жыл бұрын
Да 😎
@mammadalimammadaliyev61052 жыл бұрын
Тернарный оператор можно еще усложнить и циклом. [x for x in (1,2,3) if x % 2 == 0 else None]. еще более нечитабельный код)
@ЙенФенФыр2 жыл бұрын
хм... это сарказм?
@zproger2 жыл бұрын
Это уже немного другое
@eugene_na_tytrube2 жыл бұрын
Судя по записи неработающего list comprehension, нечитаем но для Вас по причине, что Вы ни с тем, как работают камприхеншены не разобрались, не с сутью того, чем является тернарный оператор. Рабочий вариант выглядит так [x if x % 2 == 0 else None for x in (1, 2, 3)] - выражение, результат которого попадает в итоговый список (коим в данном случае является выражение с тернарником), должно стоять на первом месте в камприхеншене. И читаются камприхеншены, если в них не запихивать несколько уровней сложности, гораздо лучше аналогичного простого цикла.
@СпециальныйагентСтивенс-ФБР Жыл бұрын
Я как специалист эксель на питон написал программу.... нах мне нуже твой нейм фо немн? Объясни мне пожалуйста? Она та программа прекрасно работает.. ты как старый дед
@ЙенФенФыр2 жыл бұрын
половина ролика вообще не про тернарный оператор...
@yuzu-dev2 жыл бұрын
Первый!
@zproger2 жыл бұрын
=)
@frand21582 жыл бұрын
Ну про ошибки это дичь. Это интерпретируемый язык блин, чего вы ожидали
@Anonymous007547 ай бұрын
у меня айку больше 150 ))))))))))))
@damirasanov89932 жыл бұрын
Первый
@zproger2 жыл бұрын
=)
@fliksudnone47602 жыл бұрын
Внимание вопрос: для кого это видео?
@zproger2 жыл бұрын
Для кого-то =)
@fliksudnone47602 жыл бұрын
@@zproger Ну вообще я могу сильно раскритиковать это видео, но не буду, т.к слишком долго =)
@eagold2 жыл бұрын
так аналог ?: в c#
@Strqwerty2 жыл бұрын
Спасибо за 250 индекс iq. Я оценил себя по другому и теперь отписываюсь.