- 1
print 1 < 2 == 2 > 1 in [1,2,3] < [2,3,4,5] != 1
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
−115
print 1 < 2 == 2 > 1 in [1,2,3] < [2,3,4,5] != 1
Данный кусочек кода ( взял на одном из сайтов с тестами) навел меня на мысль - а может быть люди говнокодят потому, что языки программирования позволяют это делать? Взглянув на него первая моя мысль была - что это за хрень, она не будет работать. Оказалось я был не прав.
xyilka 08.04.2015 20:52 # +14
Zuzik 08.04.2015 21:24 # −10
Talbin 13.04.2015 16:36 # 0
gzhegow 13.04.2015 16:36 # −1
marixyan 13.04.2015 16:36 # 0
maldyn003 13.04.2015 16:36 # 0
krokodildoh 13.04.2015 16:36 # 0
hinter 13.04.2015 16:36 # 0
vavizh 13.04.2015 16:36 # 0
patah 13.04.2015 16:36 # 0
xavij 13.04.2015 16:36 # 0
jjjgirteo 13.04.2015 16:36 # −1
xyja4it 13.04.2015 16:36 # 0
Parazit 13.04.2015 16:36 # 0
Bubby 13.04.2015 16:36 # 0
Germanik 13.04.2015 16:36 # 0
treoie 13.04.2015 16:36 # 0
zabydligah 13.04.2015 16:36 # −1
youloh 13.04.2015 16:36 # 0
eblankah 13.04.2015 16:36 # 0
Gromov 13.04.2015 16:36 # 0
vadim 13.04.2015 16:36 # 0
onnanon 13.04.2015 16:36 # 0
kargoudn 13.04.2015 16:36 # −1
blandermein 13.04.2015 16:36 # 0
Kaffier 13.04.2015 16:36 # 0
Germanik 13.04.2015 16:46 # 0
wvxvw 08.04.2015 21:19 # −13
kegdan 08.04.2015 21:21 # −14
NigerFromGabbanah 13.04.2015 16:36 # 0
kegdan 08.04.2015 21:40 # −13
Zuzik 08.04.2015 21:53 # −14
wvxvw 09.04.2015 00:16 # −10
Оу щи... Вот это неожидано. А есть какие-то причины почему так?
Вообще фантастика:
Zuzik 09.04.2015 00:27 # −14
wvxvw 09.04.2015 00:51 # −11
Zuzik 09.04.2015 00:57 # −14
Приоритет операторов - !=, == выше всех
>,< - чуть чуть ниже
in - еще ниже.
wvxvw 09.04.2015 01:01 # −14
Zuzik 09.04.2015 01:05 # −14
Saehrimnir 28.10.2020 20:27 # 0
Zuzik 09.04.2015 01:47 # −12
3.14159265 09.04.2015 14:28 # −12
wvxvw 09.04.2015 14:42 # −13
3.14159265 09.04.2015 14:46 # −9
Любители "сраные параноики, ололо, я помню наизусть приоритеты и пишу код без лишних скобок, скобки для лисперов" в очередной раз получают граблями по лбу.
1024-- 09.04.2015 15:39 # −12
Что? Наоборот же, получают ожидаемый результат.
Dummy00001: люди которые годами с чем то работают, последние кого надо спрашивать относительно того как близок их любимый язык к правилу наименьшего удивления.
Нормальные люди, когда начинают изучать сишку, долго рыдают из-за того, что 3 < x < 8 - не то, о чём они подумали. И потом долго ржут над тем, что упоротые сишники сделали такие упоротые операторы. Только чуть позже уже не ржут и уже ругают питон за то, что он выдаёт математически верный результат. Приехали.
3.14159265 09.04.2015 16:23 # −13
> что он выдаёт математически верный результат
С этого момента поподробнее.
PS> И перечитайте комменты wvxvw прежде чем отвечать.
roman-kashitsyn 09.04.2015 16:29 # −14
Хех, скобки надо ставить так:
(1 > [2) == True] ==> 1 > 2 and 2 == True
>>> True <= 1 <= True
True
3.14159265 09.04.2015 19:11 # −14
А вы, друзья, как ни садитесь, в приоритеты не годитесь.
wvxvw спрашивал как ставить скобки чтоб получить False
>>> 1 > 2 == False
False
roman-kashitsyn 09.04.2015 19:15 # −14
Так это для другого выражения, которое я для демонстрации идеи выдумал.
> как ставить скобки
Я же говорю, скобки перекрывающиеся, их никак не поставишь, только разбить на два выражения:
>>> 1 > 2 and 2 == True
False
3.14159265 09.04.2015 19:44 # −13
>>> 1 > 2 and 2 == True
Прочитал как
>>> 1 > 2 and 2
True
molasessia 10.04.2015 14:52 # −17
eblankah 13.04.2015 16:37 # 0
hhhh5 13.04.2015 16:37 # 0
Miwkarik 10.04.2015 14:52 # −15
Zuruck 13.04.2015 16:37 # 0
vavizh 13.04.2015 16:37 # 0
1024-- 09.04.2015 16:51 # −14
> И перечитайте комменты wvxvw
Там про обычные бинарные операторы.
Просто в реальной жизни пишут 3 < x < 8 и не пишут (3 < x) < 8. Кстати, что это значит в математике?
Что такое (3 < x)? Результат сравнения 3 и x. Булева питушня. (3 < x) < 8 - кастуем и радуемся тому, что получилось.
Что такое (3 < x < 8)? Принадлежность промежутку.
Вроде бы логично. Для пущей логичности и симметричности бинарных операторов стоило бы сделать как в сишке. Для математической точности можно было бы запретить (3 < x) < 8.
kegdan 09.04.2015 18:01 # −12
в тру мат языках типа хаски такое и не прокатит - как минимум типы не совпадают. А математика не понимает, когда типы не совпадают
wvxvw 09.04.2015 18:26 # −12
И т.д. Меня колбасит, когда я такое вижу, но, как оказалось, есть куча математиков, которые не умеют, и никогда даже не пытались программировать, и для них тут все выглядит в порядке вещей.
kegdan 09.04.2015 18:48 # −13
gzhegow 13.04.2015 16:37 # −1
jjjgirteo 13.04.2015 16:37 # −1
zabydligah 13.04.2015 16:37 # −1
bayanist 13.04.2015 16:37 # −1
maldyn003 13.04.2015 16:37 # 0
isivgr 13.04.2015 16:37 # −1
hinter 13.04.2015 16:37 # 0
xyja4it 13.04.2015 16:37 # 0
3.14159265 09.04.2015 19:16 # −14
Для математической точности нужно запретить сравнивать буль с интом.
>Просто в реальной жизни пишут 3 < x < 8 и не пишут (3 < x) < 8. Кстати, что это значит в математике?
А что больше 5 килограмм или 2 метра? Что меньше 8 или true?
Кегдан об этом написал, только другими словами.
И всё же вернитесь к изначальному примеру:
1 > 2 == False
1024-- 09.04.2015 23:01 # −14
> 1 > 2 == False
Да, питушня какая-то, смотрится странно. 2 с False сравнивать не стоит.
Вот когда a < b < c или a == b == False, логично или хотя бы терпимо.
Хотя,
> Кегдан об этом написал, только другими словами.
Кстати, кому-нибудь помогли/помешали разные приоритеты у "<" и "==" в сишке? Это имеет какой-то смысл?
3.14159265 10.04.2015 14:36 # −14
>странно
Буква т лишняя.
>Нормальные люди, когда начинают изучать сишку, долго рыдают из-за того, что 3 < x < 8 - не то, о чём они подумали.
Обратите внимание, когда возник оный wtf никто (даже питонисты, привыкшие к вкусу своего говна) не поняли почему оно так работает и выдаёт "математически верный результат". До тех пор пока не был привёден байт-код, никто не мог понять ШОЭТАЗАНАХ.
>Кстати, кому-нибудь помогли/помешали разные приоритеты у "<" и "==" в сишке?
Меня проблемы приоритетов не особо волнуют, поскольку повторюсь: я обычно расставляю скобки в неоднозначных местах.
hinter 10.04.2015 14:52 # −14
Qwertiy 12.04.2015 15:05 # −11
Я не питонист, но про цепочки сразу вспомнил. А вот что дальше (начиная с in) просто не знал.
3.14159265 13.04.2015 15:08 # −14
Поцчему наш гуру пейсона по кличке сёма, вместо того чтобы писать сотни комментов в хохлосрачах, не пояснил нам всего 1 (одним!) ловким и уместным комментом?
Но всё что он смог выперднуть, очередной дибильный вопрос:
> xyilka 3 дня назад # >>271756
>>Как это гавно читать?
xyilka 13.04.2015 16:06 # +11
kegdan 13.04.2015 16:17 # −12
xyilka 13.04.2015 16:18 # +14
kegdan 13.04.2015 16:21 # +1
А ты продолжай плюсовать себя и спамить говнокод, взрослый человек
xyilka 13.04.2015 16:24 # 0
Germanik 13.04.2015 16:44 # 0
Germanik 13.04.2015 16:35 # 0
Germanik 13.04.2015 16:44 # 0
3.14159265 16.04.2015 14:59 # 0
Ну я бы не стал так смело говорить. Тусуясь на погромистких сайтах и обезьяна рано или поздно чему-то научится.
Но не уметь читать байт-код языка который постоянно восхваляешь, эээ мягко говоря странно.
3_14dar 16.04.2015 18:42 # 0
kegdan 16.04.2015 19:30 # 0
Germanik 13.04.2015 16:36 # 0
Germanik 13.04.2015 16:45 # 0
xavij 13.04.2015 16:19 # 0
youloh 13.04.2015 16:37 # 0
krokodildoh 13.04.2015 16:37 # 0
vavizh 13.04.2015 16:37 # 0
xavij 13.04.2015 16:37 # 0
Parazit 13.04.2015 16:37 # 0
marixyan 13.04.2015 16:37 # 0
Bubby 13.04.2015 16:37 # 0
molasessia 13.04.2015 16:37 # −1
Talbin 13.04.2015 16:37 # 0
Miwkarik 13.04.2015 16:37 # 0
treoie 13.04.2015 16:37 # 0
kalximik 13.04.2015 16:37 # 0
botbatbotbatbot 13.04.2015 16:37 # 0
Iydywka 09.04.2015 18:27 # −17
xyilka 09.04.2015 18:26 # +12
kegdan 09.04.2015 18:56 # −11
ибо нет детерминированности. Вот когда все четко и нет возможностей лавировать - тогда заебись,четко
3.14159265 09.04.2015 19:48 # −12
Как читает это нормальный человек (не динамическая питоноблядь):
1 > 2 == False
(1 > 2) == False //исходя из соображений типобезопасности
Как прочитает человек это:
False == 1 > 2
False == (1 > 2) //опять таки исходя из соображений типобезопасности, т.к. абсурдно сравнивать число с булом
xyilka 09.04.2015 20:22 # +11
Germanik 13.04.2015 16:33 # 0
Germanik 13.04.2015 16:43 # 0
mauntin 10.04.2015 14:52 # −15
Germanik 13.04.2015 16:34 # 0
Germanik 13.04.2015 16:43 # 0
patah 13.04.2015 16:37 # 0
Miwkarik 13.04.2015 16:37 # 0
Parazit 13.04.2015 16:37 # 0
Gromov 13.04.2015 16:37 # 0
blandermein 13.04.2015 16:37 # 0
NigerFromGabbanah 13.04.2015 16:37 # 0
StackBlower 09.04.2015 18:27 # −17
treoie 13.04.2015 16:37 # 0
youloh 13.04.2015 16:37 # 0
kargoudn 13.04.2015 16:37 # −1
maldyn003 13.04.2015 16:37 # 0
NigerFromGabbanah 09.04.2015 18:27 # −18
xyilka 10.04.2015 14:52 # +13
Germanik 13.04.2015 16:42 # 0
Talbin 13.04.2015 16:37 # 0
jjjgirteo 13.04.2015 16:37 # −1
xyilka 13.04.2015 16:37 # 0
Germanik 13.04.2015 16:41 # 0
botbatbotbatbot 13.04.2015 16:37 # 0
xyja4it 13.04.2015 16:37 # 0
Her 09.04.2015 02:28 # −13
http://ideone.com/VN5tGg
http://ideone.com/nsdN2I
isivgr 13.04.2015 16:37 # −1
onnanon 13.04.2015 16:37 # 0
3.14159265 09.04.2015 14:13 # −13
Почему же? А если так поставить?
jjjgirteo 09.04.2015 18:27 # −19
Pikyn 13.04.2015 16:37 # 0
gost 09.04.2015 10:18 # −14
https://i.imgur.com/z6kwr9G.jpg
Xalyazij 13.04.2015 16:37 # 0
Qwertiy 09.04.2015 23:39 # −13
Питон же поддеривает цепочки? Или я что-то путаю?
1 < 2 == 2 > 1
1 < 2 && 2 == 2 && 2 > 1
Update: Ну вот, написал, отправил.. и страница проскроллилась к коменту, в котором говорится то же самое...
hhhh5 13.04.2015 16:36 # 0
Zuzik 09.04.2015 11:55 # −12
kegdan 09.04.2015 19:40 # −13
xyilka 12.04.2015 21:06 # +13
bormand 12.04.2015 21:07 # −13
xyilka 12.04.2015 21:30 # +13
Germanik 13.04.2015 16:40 # 0
Germanik 13.04.2015 16:41 # 0
ebal3_14 15.04.2015 00:36 # 0
vi_vse_pidarasi 15.04.2015 00:48 # 0