Форум сайта python.su
47
bot1net
Никаких 10005000 == True быть не должно, поскольку 10005000 не принадлежит множеству, над которым введена булева алгебра, всего то
>>>True+1
2
Офлайн
0
Товарищи, я ни в коем случае не критикую язык, и вообще, как вы уже успели догадаться делаю первые, вероятно не очень правильные шаги, посему и пишу в ветке “Для новичков”
Для чего может понадобиться?
(1 and 3 and 2) == 3
Это действительно можно успешно заменить>>>1 == 2 == 3 False
>>> if 1 or 0 or 3 == 0: ... print 'ok' ... ok

Офлайн
0
bismigalis, напротив, это выглядит вполне естественно
>>> True + 10 11
Офлайн
47
bot1netа ну это хорошо что питон не расходится с теорией, а то мне показалось это неестественным :)
напротив, это выглядит вполне естественно. Ведь True это элемент булева кольца биективный 1
bot1net
(1 and 3 and 2) == 3
Да, собственно, черт его знает Это действительно можно успешно заменить
>>>1 == 2 == 3
False
Отредактировано bismigalis (Апрель 28, 2013 13:56:38)
Офлайн
0
bismigalis, если рассуждать следующим образом. Выражение
(1 and 3 and 2) == 3
if 1 == 3: if 3 == 3: if 2 == 3: print 'Lol'
Офлайн
173
bot1net
Не эквивалентно.
http://docs.python.org/2/library/stdtypes.html#boolean-operations-and-or-not
Грубо говоря, несколько and работают так:
def my_and(*args): for arg in args: if not arg: return arg return args[-1] print my_and(1, 3, 2) # 2 print my_and(1, 3) # 3 print my_and(0, 3) # 0
Отредактировано reclosedev (Апрель 28, 2013 12:21:22)
Офлайн
47
если ты оперируешь множествами, то в питоне тоже есть множества, называются они set
>>>s1 = set([1]) >>>s2 = set([1,2,3]) >>>s1 & s2 set([1]) #результат пересечения >>>bool(s1 & s2) True #пересекаются
Отредактировано bismigalis (Апрель 28, 2013 13:20:47)
Офлайн
47
bot1net
Для получения булевой 1 необходимо и достаточно, чтобы каждый элемент множества А был в точности равен элементу множества В.Например, мы получим булеву единицу, если напишем “1 и 1 и 1 = 1”.
#python3 >>>s1 = {1, 1, 1} >>>s2 = {1} >>>s1 == s2 True # множества равны >>>bool(s1 and s2) True # оба множества истинны (не пусты)
Офлайн
0
reclosedev, bismigalis благодарю!
Офлайн
0
С наступающим Первомаем, товарищи!
from numpy import loadtxt import scipy.stats as ss x, y = loadtxt('data.txt', delimiter = ',', unpack = True) reg = ss.linregress(x,y) string = '''slope %.4f ; intercept %.4f ; r-value %.4f ; p-value %.4f ; stderr %.4f .''' %(reg[0],reg[1],reg[2],reg[3],reg[4]) out = open('out.txt','w') out.write(string) out.close()
>>> a=[1,2,3,4.44444444444] >>> "a={0:2d} b={1} c={2} d={3:10.3g}".format(*a) 'a= 1 b=2 c=3 d= 4.44'
>>> "a={0:2d} b={1} c={2} d={3:10.3g}".format(*a)
Офлайн