Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 23, 2013 19:53:45

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

Тут фишка в том, что люди испорченные всякими сями ждут, что результатом логического выражения будет логическое значение - то есть если мы используем логический оператор между “значениями” - то результат должен быть булевый.
Нечто & Нечто должно дать True или False.
Да нифига. Синие & Белое возвращает или Синее или Белое.
А если Белое & Синее & Красное & Пурпуное
То одно из них, но не True или False



Отредактировано FishHook (Ноя. 23, 2013 19:56:14)

Офлайн

#2 Ноя. 23, 2013 20:23:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9878
Репутация: +  853  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

FishHook
А если Белое & Синее & Красное & Пурпуное
То одно из них, но не True или False
int n;

n = 0;
n += a || b || (c && d);

в принципе, неплохо иметь обратную связь (знать, до какой сработало или не сработало), но и в качестве целых чисел в C это свойство часто используется



Отредактировано py.user.next (Ноя. 23, 2013 20:28:12)

Офлайн

#3 Ноя. 23, 2013 22:00:07

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Рубрика "Чудеса"

FishHook, я ответил правильно, но решил проверить старой доброй копипастой…

>>> print 1 and [1,2,3] and dict() and False
File "<stdin>", line 1
print 1 and [1,2,3] and dict() and False
^
SyntaxError: invalid syntax

Внимание! Ещё один вопрос новичкам! Какая фигня тут стряслась и почему?
И второй вопрос ко всем: когда уже?!! Блин…



Офлайн

#4 Ноя. 23, 2013 22:03:39

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

пффффф



Отредактировано FishHook (Ноя. 23, 2013 22:09:14)

Офлайн

#5 Ноя. 23, 2013 22:04:25

Singularity
Зарегистрирован: 2011-07-28
Сообщения: 1387
Репутация: +  75  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

ZZZ
третий питон ?

Офлайн

#6 Ноя. 23, 2013 22:08:10

ZZZ
От: Москва
Зарегистрирован: 2008-04-03
Сообщения: 2161
Репутация: +  26  -
Профиль   Адрес электронной почты  

Рубрика "Чудеса"

Singularity, это был вопрос новичкам… А вот FishHook с ответом не справился, с чем мы его торжественно и поздравляем! :-)



Офлайн

#7 Ноя. 23, 2013 22:10:35

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

ZZZ
Singularity, это был вопрос новичкам… А вот FishHook с ответом не справился, с чем мы его торжественно и поздравляем! :-)
Да я не понял юмора сразу то, уже исправился, подумал опять я не в тему сказанул



Офлайн

#8 Дек. 4, 2013 06:14:32

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

не то что бы чудо, да и наверняка найдется объяснение, но меня с толку сбило:

import struct
struct.calcsize('si')
8
struct.calcsize('<si')
5
struct.calcsize('>si')
5



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#9 Дек. 4, 2013 08:45:26

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

Рубрика "Чудеса"

В общем то в доках написано что по умолчанию используется префикс @, и насколько я понял, размер данных всегда дополняется до машинного слова т.е. в случае выше до кратных 4 байт, определяемых архитектурой



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#10 Дек. 4, 2013 13:42:43

bw
От:
Зарегистрирован: 2007-09-26
Сообщения: 938
Репутация: +  20  -
Профиль   Адрес электронной почты  

Рубрика "Чудеса"

Занятно. Как-то не думал и не обращал внимание, что в `struct` ещё и выравнивание применяется.
Опасная вещь.

>>> struct.pack('bi', 1, 2)
'\x01\x00\x00\x00\x02\x00\x00\x00'
>>> struct.pack('<bi', 1, 2)
'\x01\x02\x00\x00\x00'

..bw



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version