Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 9, 2011 15:59:28

XPb14
От:
Зарегистрирован: 2010-09-07
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по инкрементам

ходит шутка, что в разных языках выражение “i = ++i + ++i” будет равняться разным значениям(и это действительно так), можно ли это выражение записать в питоне?



Офлайн

#2 Фев. 9, 2011 16:23:47

Radomir
От:
Зарегистрирован: 2011-01-26
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по инкрементам

В си в зависимости от компилятора может меняться результат.



Офлайн

#3 Фев. 9, 2011 16:27:06

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по инкрементам

В Питоне, как такового, инкремента нет. Я лично делаю так:

>>>var = 0
>>>var += 1
>>>var
1



Отредактировано (Фев. 9, 2011 16:29:17)

Офлайн

#4 Фев. 9, 2011 16:34:11

XPb14
От:
Зарегистрирован: 2010-09-07
Сообщения: 31
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по инкрементам

в том то и дело, просто чето загорелся с си сравнить)))
тут бы с глобальными переменными, ченить тип этого:

def increment(i)
i += 1
return i

i = increment(i) + increment(i)
только это фигня, т.к. i не изменяется… Вобщем-то это баловство, но может есть у кого-нить какие-нибудь идеи?



Офлайн

#5 Фев. 9, 2011 17:12:22

Carzil
От:
Зарегистрирован: 2010-05-26
Сообщения: 106
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по инкрементам

Конечно, этот код и не будет работать. Читайте тут.



Офлайн

#6 Фев. 9, 2011 17:24:16

python4ik
От:
Зарегистрирован: 2010-01-05
Сообщения: 251
Репутация: +  0  -
Профиль   Отправить e-mail  

вопрос по инкрементам

class inc:
def __init__(s,p):
s.p = p
def __pos__(s):
s.p += 1
return s.p
def __add__(s,p):
s.p += 1
return s.p - 1
def __repr__(s):
return '%s' % s.p

i = inc(2)
q = ++i
q == 3; i == 3
q = i + 1
q == 3; i == 4



Отредактировано (Фев. 10, 2011 10:14:20)

Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version