Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 28, 2014 21:49:42

Mixeyka
Зарегистрирован: 2014-09-19
Сообщения: 32
Репутация: +  1  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

Ещё один вопрос по переменным:

>>> sp1=0
>>> sp2=0
>>> список = (sp1, sp2)
>>> sp1 += 4
>>> список[0]
0
>>> sp1
4

То есть с одной стороны интерпретатор воспринимает значения в кортеже как переменные, с другой стороны, работая с переменной из последовательности, мы фактически порождаем новую, с таким же названием.
Со списками, аналогично.
Вопрос: почему?

Офлайн

#2 Сен. 28, 2014 21:54:14

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

FishHook
много видели примеров программ на кириллице?
Почти все древние системы программирования в СССР имели варианты операторов в кириллическом исполнении.

Лучше не поминать всуе. А то еще вернутся операторы ПИШИП, ЗАП … Может путаю я это уже не застал.



Отредактировано doza_and (Сен. 28, 2014 21:57:17)

Офлайн

#3 Сен. 28, 2014 21:56:13

Mixeyka
Зарегистрирован: 2014-09-19
Сообщения: 32
Репутация: +  1  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

doza_and

>>> b+=[4,5,6]

Это если использовать именно этот оператор.
Если же:

>>> b = b + [4,5,6]

То получим новый список.

Отредактировано Mixeyka (Сен. 28, 2014 22:01:00)

Офлайн

#4 Сен. 28, 2014 21:59:09

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

Mixeyka
То получим новый список.
Абсолютно согласен. Это логично, просите создать сумму и обозначить ее b :)



Офлайн

#5 Сен. 28, 2014 22:03:03

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

Mixeyka
с другой стороны, работая с переменной из последовательности
Поясните. примером кода. Так непонятно что вы имеете ввиду.



Офлайн

#6 Сен. 28, 2014 22:05:23

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

Mixeyka
То есть с одной стороны интерпретатор воспринимает значения в кортеже как переменные

Это не так. Кортеж неизменяем.

>>> a=2
>>> b=3
>>> cc=(a,b)
>>> cc
(2, 3)
>>> b+=3
>>> cc
(2, 3)
>>> b
6



Офлайн

#7 Сен. 28, 2014 22:09:07

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

Если хотите кидайте в личку скайп или аналогичные свои координаты. Так будет лучше чем форум загромождать.



Офлайн

#8 Сен. 28, 2014 22:09:35

Mixeyka
Зарегистрирован: 2014-09-19
Сообщения: 32
Репутация: +  1  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

doza_and
Да, кортеж неизменяем, но со списком тоже самое.

>>> a=2
>>> b=3
>>> cc=[a,b]
>>> cc
[2, 3]
>>> b+=3
>>> cc
[2, 3]
>>> b
6

Отредактировано Mixeyka (Сен. 28, 2014 22:11:57)

Офлайн

#9 Сен. 28, 2014 22:18:18

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

Переменная - это ведь ссылка?

>>> a=[2]
>>> b=[3]
>>> c=[a,b]
>>> a+=[2]
>>> c
[[2, 2], [3]]
Для того чтобы работало как указатель то что внутри должно быть изменяемым



Отредактировано doza_and (Сен. 28, 2014 22:19:23)

Офлайн

#10 Сен. 28, 2014 23:34:26

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

Переменная - это ведь ссылка?

doza_and
Неплохо указать в начала файла его кодировку а то потом чудеса начнутся.
В третьем питоне - utf-8

doza_and
Для меню наверное лучше использовать Tk или Qt.
Тогда программа неконсольная получится. Бывает такое, что X не загружается и остаётся только консоль. Вот тогда и узнаёшь все прелести линукс.

Mixeyka
Ещё один вопрос по переменным:
>>> список = (sp1, sp2)

Когда так делаешь, он берёт эти имена, получает через них доступ к объектам и уже эти объекты добавляет в кортеж. То есть имена нужны только для того, чтобы получить доступ к объектам.

>>> i = 1
>>> 
>>> import sys
>>> 
>>> i
1
>>> 
>>> i = sys
>>> 
>>> i.version
'3.3.2 (default, Feb 11 2014, 10:35:02) \n[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)]'
>>>
>>> i = (i, i)
>>> i
(<module 'sys' (built-in)>, <module 'sys' (built-in)>)
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version