170 похожих чатов

Так разве нельзя использовать тернарочку?

68 ответов

35 просмотров

Нет

Сергей-Васильев Автор вопроса
Yaro
Нет

значит только так? Хотел чтоб поменьше кода было

else reward ==

Вообще на PEP8 смотри

Не работает из-за +=

Не будет. Ты селф.ро ничего не присваиваешь

Представь что ты индус и платят за строчки

Сергей-Васильев Автор вопроса
Оцелотег
Не будет. Ты селф.ро ничего не присваиваешь

не могу понять, имеешь ввиду, что присвоения не произойдет из за того, что это тернарка? Я просто переписал оператор += без синтаксического сахара. Тернарка вроде бы такой вид имеет [if_true] if [expression] else [if_false]

Сергей Васильев
не могу понять, имеешь ввиду, что присвоения не пр...

Ты пишешь селф.ро присвоить что-то, если выполняется условие. А если не выполняется ты селф.ро пытаешься присвоить выражение где присваиваешь другой переменной значение. И получается при невыполнении условия: селф.ро = рефард = -1 Питон не знает что делать с двумя равно в строке

NKT
a = b = c = 1 Получается знает

Почему не работает тогда?

Оцелотег
Почему не работает тогда?

Потому что что делает тернарка?

Сергей-Васильев Автор вопроса
Оцелотег
Ты пишешь селф.ро присвоить что-то, если выполняе...

кажется до меня дошло. Получается в елс можно писать только значение для присвоения, а не другие команды, как это можно сделать в обычном if-else

Типо того

Сергей-Васильев Автор вопроса
Оцелотег
Типо того

хотя в таком виде работает

Сергей Васильев
хотя в таком виде работает

Надеюсь ты нигде не работаешь программистом

Сергей Васильев
хотя в таком виде работает

Ну да. Потому что функция прини чото делает. А присвоение ничего не возвращает

Сергей Васильев
хотя в таком виде работает

почему бы не написать обычный иф?

Сергей-Васильев Автор вопроса
Tishka17
почему бы не написать обычный иф?

да так, спортивный интерес

NKT
А нон для тебя какая то шутка?

Почему тогда нон не присваетваится его селф.ро?

Сергей Васильев
хотя в таком виде работает

a = int(input()) print('a == 10' if a == 10 else 'a != 10')

Оцелотег
Почему тогда нон не присваетваится его селф.ро?

у тебя написано self.ro = выражение = -1, так нельзя

Сергей Васильев
значит только так? Хотел чтоб поменьше кода было

вот тут бы ещё после else: новую строку начать и норм будет

Tishka17
у тебя написано self.ro = выражение = -1, так нел...

Почему вырадение если там тлже переменная? Если без += переписать

Tishka17
вот тут бы ещё после else: новую строку начать и н...

Ты не понимаешь.. Ему просто убавляют зарплату за каждую новую строку

Сергей-Васильев Автор вопроса
EXTRANESUS
Что это за проверка вообще?

проверка на то что сумма двух переменных будет по итогу находится в заданном диапазоне. Да, я неудачно выбрал имя переменной range

Оцелотег
Почему вырадение если там тлже переменная? Если бе...

где переменная? там вполне себе тернарное выражение и ещё куча всего

Оцелотег
Почему вырадение если там тлже переменная? Если бе...

у тебя там посередине написано (self.ro + ro_delta) if (...) else reward

Сергей-Васильев Автор вопроса

там всего 2 элемента, начало диапазона и его конец

ну типо тернарное выражение не преобразуется в его результат в зависимости от условия?

Оцелотег
ну типо тернарное выражение не преобразуется в его...

питона работает так x = y = выражение. Считается правое выражение и присваивается в то, что указано левее. Если выражение для вычисления не српава - ничего работать не будет

Сергей Васильев
там всего 2 элемента, начало диапазона и его конец

А ты вообще уверен, что тебе нужно это в отдельную функцию выносить?

Сергей-Васильев Автор вопроса
NKT
Смотри

И да, я не против чтобы надо мной стебались, но только в том случае, если мой вопрос будет решен

Сергей-Васильев Автор вопроса
EXTRANESUS
А ты вообще уверен, что тебе нужно это в отдельную...

нет, я для теста ее написал, чтоб понять как это работает

Оцелотег
ну типо тернарное выражение не преобразуется в его...

Тернарка a = 1 if True else 0 Это тоже самое что if True: a = 1 else: a = 0 И вот теперь что ты можешь подставить вместо 1 и 0?

NKT
Тернарка a = 1 if True else 0 Это тоже самое что ...

я бы сказал a = 1 if True else 0 это как if True: tmp = 1 else: tmp = 0 a = tmp

Tishka17
не совсем

Как считаешь, спортивное программирование помогает в промышленном программировании, или это скорее негативный опыт?

Vladislav
Как считаешь, спортивное программирование помогает...

спортивное программирование на первых этапах помогает, потом - нет

Есть один способ, но он является примером того, как делать никогда не нужно self.ro = ro_delta if (...) else (reward := reward - 1)

NKT
Тернарка a = 1 if True else 0 Это тоже самое что ...

ну я так и сказал, но оказалось что это не совсем так

Оцелотег
ну я так и сказал, но оказалось что это не совсем ...

Вот та же тернарка. Что ты можешь передать в left, right?

Оператор присваивания. if x := some_func(): print(x) Вместо x = some_func() if x: print(x) Но мне он не нравится, не самая очевидная вещь при чтении кода

EXTRANESUS
Оператор присваивания. if x := some_func(): p...

глянул уже да def foo(a, b): print (a, b) foo (1, x:=5)

Зачем так писать?

Оцелотег
глянул уже да def foo(a, b): print (a, b) foo...

Ну вот это работает, конечно, но не читается. Я не знаю, в какой ситуации это может пригодиться

Yaro
Зачем так писать?

Мы просто смотрим

Tishka17
ужасное

ну так-то a = b =1 и a, b = b, a тоже не то чтобы верх эстетичности)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта