УМННБJ, ЯХВ. Войти !bnw Сегодня Клубы
народ, подскажите как в питоне вычисляются выражения следующего вида: 5 < 100 % 2, например. Либо конец рабочего дня, либо я идиот, но последовательность не нахожу. Для наглядности: http://pastebin.com/TnAWFT3B
#5Q1GUU / @soko1 / 3240 дней назад

что с чем сравнивается и в какой последовательности?
#5Q1GUU/2IW / @soko1 / 3240 дней назад
% - возвращает циферку < - возвращает бул > Везде True или False Значит вначале %, потом <. Или тут какой-то особый питоноотсос и ета логика не работает?
#5Q1GUU/3BW / @kuzy000 / 3240 дней назад
предполагаю, что тебе просто не нравится как работает %
#5Q1GUU/ZG9 / @ruki / 3240 дней назад
>>> import dis >>> def foo(x,y,z): return x < y % z ... >>> dis.dis(foo) 1 0 LOAD_FAST 0 (x) 3 LOAD_FAST 1 (y) 6 LOAD_FAST 2 (z) 9 BINARY_MODULO 10 COMPARE_OP 0 (<) 13 RETURN_VALUE
#5Q1GUU/YZM / @anonymous / 3240 дней назад
> проверять логику функции случайными числами
#5Q1GUU/V01 / @mugiseyebrows / 3240 дней назад
@mugiseyebrows если это выглядит как утка и крякает как утка, то это утка
#5Q1GUU/JLR / @anonymous --> #5Q1GUU/V01 / 3240 дней назад
@anonymous если крякает как утка и выглядит как утка, то может ещё нарушает нап или угнетает мужчин вобщет
#5Q1GUU/TQN / @mugiseyebrows --> #5Q1GUU/JLR / 3240 дней назад
@kuzy000 мне не понятно почему в этом случае питон выполняет сначала % а потом сравнивает это с "<", ">", а в случае с "1 < 2 == False" (без скобок) он сначала сравнивает 2 с ложь, потом единицу с ложью, а потом два этих результата сравнивает между собой. Почему в случае с 5 < 100 % 2 выполняется сначала правая часть, а потом левая, хотя скобки не расставлены как и в случае с 1 < 2 == False...
#5Q1GUU/DF3 / @soko1 --> #5Q1GUU/3BW / 3240 дней назад
@ruki не, вот тут описал подробнее что не понятно #5Q1GUU/DF3
#5Q1GUU/1N9 / @soko1 --> #5Q1GUU/ZG9 / 3240 дней назад
#5Q1GUU/VN6 / @ruki --> #5Q1GUU/A14 / 3236 дней назад
@4077 если не расставлены скобки в выражении 1 < 2 == False, то сначала 2 сравнивается с false (это false), потом единица сравнивается с false, это тоже false и потом false < false это false. Почему точно такое же правило не действует в случае с 5 < 100 % 2. Скобки тоже не расставлены. Почему не выполняется снчала 100 % 2, потом 5 % 2 и потом результаты этих вычислений не сравниваются между собой знаком меньше
#5Q1GUU/WLB / @soko1 --> #5Q1GUU/A14 / 3236 дней назад
@4077 окей, почитаю, но я не несу хуйни. Единица в том выражении на самом деле сравнивается с FALSE. Потому как без скобок это троичное условие
#5Q1GUU/C9T / @soko1 --> #5Q1GUU/Y38 / 3235 дней назад
@4077 256 будет. Проверил - совпало.
#5Q1GUU/A5Y / @soko1 --> #5Q1GUU/Y38 / 3235 дней назад
@4077 в питоне если не расставлены скобки, то данное условие 1 > 2 == False будет троичным. То есть сначала проверяется 2 с нулём, потом 1 с нулём а потом оба результата между собой. Я уже который раз это повторил :)
#5Q1GUU/QHO / @soko1 --> #5Q1GUU/C1W / 3235 дней назад
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.