Начало работы с Python: переменные Python и присваивание

Python
Начало работы с Python: переменные Python и присваивание

Общественный номер: You Er Hut
Автор: Питер
Редактор: Питер

Всем привет, меня зовут Питер~

Сегодня я предлагаю вам статью оПеременные Python и присваиваниестатья.

На самом деле, в предыдущем процессе обучения мы коснулись многих операторов присваивания в Python, например, a=1, что означает присвоение значения 1 переменной a.

Прежде чем официально представить оператор присваивания, давайте сначала разберемся с проблемой переменных в Python.

окрестности

Некоторые читатели размышляли об окружающей среде, которая побудила Питера написать статью, так что вот:

  • Система: Mac OS
  • Инструмент: блокнот jupyter
  • Версия Python: 3.7.5
  • Редактор документации: Typora

Переменная

Глубокое понимание адреса памяти переменных

Можно сказать, что переменная является контейнером для хранения данных. При определении переменных в Python нет необходимости объявлять переменные. Когда мы присваиваем значение переменной в первый раз, переменная создается автоматически и указывается ее тип.

Сама переменная не имеет типа, только объект (присваиваемые данные) имеет тип

a = 66
a
66
b = 66
b
66
type(a)  # 查看数值类型为整型int
int
type(b)  # 字符串类型
int

Мы определяем две переменные a и b, обе из которых являются числом 66. Хотя названия разные, они представляют один и тот же элемент в компьютере, посмотрите на их адреса в памяти.

Например: Чжу Бацзе (значение 66), мы можем назвать его «Второй старший брат» (в переменной а) или «Маршал Тяньпэн» (в переменной b), но по сути они оба Относится к Чжу Бацзе, просто изменил псевдоним,По сути то же самое

id(a)  # a和b的内存地址相同
4387310752
id(b)
4387310752

Давайте определим другое назначение переменной, чтобы увидеть:

a = 77
a
77
id(a)
4387311104

Мы видим, что до того, как мы присвоили переменной a значение 66, адрес памяти был 4430785696, а потом мы присвоили переменной a значение 77, и адрес памяти стал 4430786048.

Почему?На самом деле, два значения 66 и 77 по сути являются двумя объектами в компьютере, просто у них одно и то же имя. Например, в «Путешествии на Запад» есть сюжет:настоящий и поддельный король обезьян

Настоящего Короля обезьян (значение 66) и поддельного Короля обезьян (значение 77) называют обезьянами (метка a), но на самом деле это две разные обезьяны (назначенные с разными адресами)~ Фальшивая не последняя. покорен Татхагатой!

создать переменную

Создание переменных с операторами присваивания

x = 99  # 数值型
language = "python"  # 字符串型
number = [1,3,5,7,9]  # 列表型

print(x)
print(language)
print(number)
99
python
[1, 3, 5, 7, 9]

Правила именования имен переменных

Именование переменных в python может использовать короткие имена, такие как приведенные выше x, y, z, a, b и т. д., или вы можете использовать имена с определенными описательными функциями, такими как возраст, имя, пол, другие могут знать переменная, когда они это видят. Обычно правила именования переменных в Python:

  • Имена переменных должны начинаться с буквы или символа подчеркивания, а не с цифры.
  • Имена переменных могут содержать только буквенно-цифровые символы и символы подчеркивания (A–z, 0–9 и _).
  • Имена переменных чувствительны к регистру (name, Name и NAME — это три разные переменные).
  • Имя переменной не может конфликтовать (то же самое) с ключевым словом в Python, иначе оно недопустимо.

Давайте посмотрим на распространенные методы присваивания в Python.

оператор присваивания

регулярное назначение

Назначение: вставьте объект данных в Python в переменную, как если бы вы прикрепили к объекту метку. Python использует знак равенства = в качестве оператора присваивания в следующем формате:

name = value

# 变量 = 某个值
list1 = ["python","java"]  # 列表赋值给变量b
list1
['python', 'java']
list2 = [1,2,["python","html"],(1,4,7)]  # 嵌套列表
list2
[1, 2, ['python', 'html'], (1, 4, 7)]
age = 28  # 数值
age
28
information = "xiaoming is a boy"  # 字符串
information
'xiaoming is a boy'
# 定义一个变量dic,字典类型

dic = {"name":"xiaoming","age":20,"sex":"fale"}
dic
{'name': 'xiaoming', 'age': 20, 'sex': 'fale'}

присвоение нескольких переменных

Назначить 3 переменные одновременно

m, n, o= 22, "xiaoming","男"  # 同时赋值3个变量
m
22
n
'xiaoming'
o
'男'

Приведенный выше пример означает, что 22 присваивается m, строковый объект «xiaoming» присваивается n, а «мужской» присваивается переменной o.

name, age = ("Peter",20)  # 通过元组形式赋值
name
'Peter'
age
20

В приведенном выше примере выполняются связанные присваивания в виде кортежей Python.

связанное назначение

x1 = y1 = 33
x1
33
y1
33

В приведенном выше примере мы определили две переменные x1 и y1 одновременно путем объединения присваиваний. На самом деле это один и тот же объект в памяти, проверяем адрес памяти по id:

id(x1)
4387309696
id(y1)
4387309696

На самом деле один и тот же объект python маркируется разными метками, но суть одна и та же

своп переменной

k, j = 9, 5

Присвоение переменной выше эквивалентно:

k=9
j=5
print("k =",k)
print("j =",j)
k = 9
j = 5
print("id(k): ", id(k))
print("id(j): ", id(j))
id(k):  4387308928
id(j):  4387308800

Далее меняем местами значения двух переменных kj:

k, j = j, k  # 变量值的交换

Смысл приведенного выше утверждения: присвоить значение переменной j (уже присвоено 5) переменной k, присвоить значение переменной (уже присвоено 9) переменной j;

print("k =",k)
print("j =",j)
k = 5
j = 9

print("id(k): ", id(k))
print("id(j): ", id(j))
id(k):  4387308800
id(j):  4387308928

Сравнив адреса памяти двух переменных до и после обмена, мы находим, что адреса памяти поменялись местами, то есть переменные обменялись

Операции, которые реализуют обмен значениями переменных в других языках программирования (при условии, что были определены две переменные a и b):

temp = a  # a赋值中间变量temp
a = b     # b的值赋给变量a
b = temp  # temp的值赋给变量b

Равенство и одинаковость переменных

Прежде всего, необходимо объявить, что равенство и одинаковость переменных в Python — это два разных понятия.

number1 = 88
number2 = 88
id(number1)
4387311456
id(number2)
4387311456

Проверьте, равны ли две переменные:использовать ==

number1 == number2
True

Проверьте, совпадают ли две переменные:использование

number1 is number2
True

Все результаты равны True, что указывает на то, что две переменные number1 и number2 являются одним и тем же объектом.

list1 = "hello python" 
list2 = "hello python"
list1 == list2  # 相等
True
list1 is list2  # 不相同
False

Приведенные выше результаты показывают, что: list1 и list2 равны, но не одинаковы.

id(list1)
4444494000
id(list2)
4444495024

Глядя на адреса памяти двух, обнаруживается, что их адреса действительно разные, поэтому это должно бытьне то же самоеиз двух объектов.

Рассмотрим последний случай:

number3 = 1000
number4 = 1000
number3 == number4  # 相等
True
number3 is number4  # 居然不相等啦!
False

Мы проверяем адреса памяти двух и обнаруживаем, что их адреса действительно разные, так что это определенно не один и тот же объект~

id(number3)
4444408880
id(number4)
4444409104

Это, в конце концов, почему? Будет раскрыто позже~