Нет
значит только так? Хотел чтоб поменьше кода было
else reward ==
Вообще на PEP8 смотри
Нет ты чо
🤷🏻♂️
Не работает из-за +=
обидно(
Не будет. Ты селф.ро ничего не присваиваешь
Представь что ты индус и платят за строчки
Но только уникальные
За символ вообще-то
не могу понять, имеешь ввиду, что присвоения не произойдет из за того, что это тернарка? Я просто переписал оператор += без синтаксического сахара. Тернарка вроде бы такой вид имеет [if_true] if [expression] else [if_false]
Ты пишешь селф.ро присвоить что-то, если выполняется условие. А если не выполняется ты селф.ро пытаешься присвоить выражение где присваиваешь другой переменной значение. И получается при невыполнении условия: селф.ро = рефард = -1 Питон не знает что делать с двумя равно в строке
Присвоение это уже не выражение
a = int(input()) b = 1 b += a if a == 10 else a + 55 print(b)
a = b = c = 1 Получается знает
Почему не работает тогда?
Потому что что делает тернарка?
кажется до меня дошло. Получается в елс можно писать только значение для присвоения, а не другие команды, как это можно сделать в обычном if-else
Типо того
хотя в таком виде работает
жесть какая
не надо так делать
Надеюсь ты нигде не работаешь программистом
Ну да. Потому что функция прини чото делает. А присвоение ничего не возвращает
почему бы не написать обычный иф?
Строчки экономит.
А нон для тебя какая то шутка?
да так, спортивный интерес
Почему тогда нон не присваетваится его селф.ро?
https://t.me/ru_python_beginners/1721219
https://t.me/ru_python_beginners/1721163
a = int(input()) print('a == 10' if a == 10 else 'a != 10')
у тебя написано self.ro = выражение = -1, так нельзя
А где там нон
вот тут бы ещё после else: новую строку начать и норм будет
Что это за проверка вообще?
Почему вырадение если там тлже переменная? Если без += переписать
Ты не понимаешь.. Ему просто убавляют зарплату за каждую новую строку
проверка на то что сумма двух переменных будет по итогу находится в заданном диапазоне. Да, я неудачно выбрал имя переменной range
где переменная? там вполне себе тернарное выражение и ещё куча всего
у тебя там посередине написано (self.ro + ro_delta) if (...) else reward
там всего 2 элемента, начало диапазона и его конец
ну типо тернарное выражение не преобразуется в его результат в зависимости от условия?
питона работает так x = y = выражение. Считается правое выражение и присваивается в то, что указано левее. Если выражение для вычисления не српава - ничего работать не будет
А ты вообще уверен, что тебе нужно это в отдельную функцию выносить?
И да, я не против чтобы надо мной стебались, но только в том случае, если мой вопрос будет решен
нет, я для теста ее написал, чтоб понять как это работает
Тернарка a = 1 if True else 0 Это тоже самое что if True: a = 1 else: a = 0 И вот теперь что ты можешь подставить вместо 1 и 0?
я бы сказал a = 1 if True else 0 это как if True: tmp = 1 else: tmp = 0 a = tmp
Как считаешь, спортивное программирование помогает в промышленном программировании, или это скорее негативный опыт?
спортивное программирование на первых этапах помогает, потом - нет
Есть один способ, но он является примером того, как делать никогда не нужно self.ro = ro_delta if (...) else (reward := reward - 1)
ну я так и сказал, но оказалось что это не совсем так
Вот та же тернарка. Что ты можешь передать в left, right?
Оператор присваивания. if x := some_func(): print(x) Вместо x = some_func() if x: print(x) Но мне он не нравится, не самая очевидная вещь при чтении кода
глянул уже да def foo(a, b): print (a, b) foo (1, x:=5)
Зачем так писать?
Ну вот это работает, конечно, но не читается. Я не знаю, в какой ситуации это может пригодиться
Мы просто смотрим
ужасное
ну так-то a = b =1 и a, b = b, a тоже не то чтобы верх эстетичности)
Обсуждают сегодня