Python 变量
在本教程中,您将了解Python中的变量是什么以及如何使用它们。
属于不同数据类型的数据项存储在计算机的内存中。计算机的内存位置具有一个数字或地址,在内部以二进制形式表示。数据也以二进制形式存储,因为计算机工作的原则是二进制表示。在下面的图表中,字符串 May 和数字 18 显示为存储在内存位置中的内容。
如果您了解汇编语言,您将会将这些数据项和内存地址转换为机器语言指令。然而,这对每个人来说都不容易。诸如Python解释器之类的语言翻译器执行这种类型的转换。它将对象存储在随机选择的内存位置中。Python的内置 id() 函数返回对象存储的地址。
>>> "May"
>>> id("May")
2167264641264
>>> 18
18
>>> id(18)
140714055169352
一旦数据存储在内存中,就应该重复访问以执行某个过程。显然,根据其ID提取数据是繁琐的。像Python这样的高级语言使得可以给予适当的别名或标签来引用内存位置。
在上述示例中,让我们将五月的位置标记为month,将存储18的位置标记为age。Python使用赋值运算符(=)将对象与标签绑定。
>>> month="May"
>>> age=18
数据对象(May)和它的名字(月份)具有相同的id()。18和年龄的id()也是相同的。
>>> id(month)
2167264641264
>>> id(age)
140714055169352
标签是一个标识符。通常被称为变量。Python变量是一个符号名称,是一个引用或指向一个对象的指针。
Python变量 – 命名规则
变量的名称是用户指定的,并且遵循标识符形成规则。
- Python变量的名称应以字母(小写或大写)或下划线(
_
)开头。可以跟随一个以上的字母数字字符或下划线。 -
不允许使用任何关键字作为Python变量,因为关键字具有预定义的含义。
-
在Python中,变量的名称是大小写敏感的。所以,age和Age不能互换使用。
-
应选择具有助记作用的变量名称,以表示其目的。它不应该太短,但也不应该太长。
如果变量的名称包含多个单词,我们应该使用以下命名模式 –
- 驼峰式命名法 - 第一个字母小写,但后续每个单词的第一个字母大写。例如:kmPerHour,pricePerLitre
-
帕斯卡命名法 - 每个单词的第一个字母大写。例如:KmPerHour,PricePerLitre
-
蛇形命名法 - 使用单个下划线(_)字符来分隔单词。例如:km_per_hour,price_per_litre
一旦使用变量来标识数据对象,就可以重复使用它而不需要其id()值。在这里,我们有一个矩形的高度和宽度的变量。我们可以使用这些变量计算面积和周长。
>>> width=10
>>> height=20
>>> area=width*height
>>> area
200
>>> perimeter=2*(width+height)
>>> perimeter
60
使用变量在编写脚本或程序时特别有优势。以下脚本也使用了上述变量。
#! /usr/bin/python3.11
width = 10
height = 20
area = width*height
perimeter = 2*(width+height)
print ("Area = ", area)
print ("Perimeter = ", perimeter)
将上面的脚本保存为.py扩展名,并在命令行中执行。结果将如下:
Area = 200
Perimeter = 60
Python变量 – 赋值语句
在像C/C++和Java这样的语言中,需要在赋值之前声明变量和变量类型。在Python中,不需要提前声明变量。
Python使用=符号作为赋值运算符。变量标识符的名称出现在=符号的左侧。对其右侧的表达式进行评估,并将值赋给变量。以下是赋值语句的示例:
>>> counter = 10
>>> counter = 10 # integer assignment
>>> price = 25.50 # float assignment
>>> city = "Hyderabad" # String assignment
>>> subjects = ["Physics", "Maths", "English"] # List assignment
>>> mark_list = {"Rohit":50, "Kiran":60, "Lata":70} # dictionary
assignment
Python的内建 print() 函数会显示一个或多个变量的值。
>>> print (counter, price, city)
10 25.5 Hyderabad
>>> print (subjects)
['Physics', 'Maths', 'English']
>>> print (mark_list)
{'Rohit': 50, 'Kiran': 60, 'Lata': 70}
等号右边的任何表达式的值都会赋给等号左边的变量。
>>> x = 5
>>> y = 10
>>> z = x+y
然而,=运算符的左侧表达式和右侧变量是不允许的。
>>> x = 5
>>> y = 10
>>> x+y=z
File "<stdin>", line 1
x+y=z
^^^
SyntaxError: cannot assign to expression here. Maybe you meant '=='
instead of '='?
虽然在数学中z=x+y和x+y=z是等价的,但在这里不是这样的。这是因为=是一个方程符号,而在Python中它是一个赋值操作符。
Python变量 – 多重赋值
在Python中,你可以在同一语句中初始化多个变量。在下面的情况中,三个变量有相同的值。
>>> a=10
>>> b=10
>>> c=10
而不是分开的任务,你可以在一个单一的任务语句中完成,如下所示 –
>>> a=b=c=10
>>> print (a,b,c)
10 10 10
在以下案例中,我们有三个具有不同值的变量。
>>> a=10
>>> b=20
>>> c=30
这些单独的赋值语句可以合并在一起。在等号操作符的左侧给出逗号分隔的变量名称,并在等号操作符的右侧给出逗号分隔的值。
>>> a,b,c = 10,20,30
>>> print (a,b,c)
10 20 30
在Python中,变量的概念与C/C++中有所不同。
在C/C++中,一个变量是一个命名的内存位置。如果a=10且b=10,那么它们是两个不同的内存位置。假设它们的内存地址分别是100和200。
如果将不同的值赋给“a”-比如50,10,地址为100的值将被覆盖。
Python变量指的是对象,而不是内存位置。一个对象只在内存中存储一次。多个变量实际上是对同一个对象的多个标签。
语句a=50在内存的其他位置上创建一个新的 int 对象50,仍然保留了由“b”引用的对象10。
此外,如果你将b赋予其他值,对象10将保持未被引用。
Python的垃圾回收机制释放了任何未引用对象占用的内存。
Python的身份运算符 is 在两个操作数具有相同的id()值时返回True。
>>> a=b=10
>>> a is b
True
>>> id(a), id(b)
(140731955278920, 140731955278920)