Python - 变量


什么是 Python 变量?

Python 变量是用于在 Python 程序中存储值的保留内存位置。这意味着当您创建变量时,您会在内存中保留一些空间。Python解释器根据变量的数据类型分配内存并决定保留内存中可以存储的内容。因此,通过为Python变量分配不同的数据类型,您可以在这些变量中存储整数、小数或字符。

了解内存地址

属于不同数据类型的数据项存储在计算机的存储器中。计算机的内存位置有一个数字或地址,内部以二进制形式表示。由于计算机按照二进制表示原理工作,因此数据也以二进制形式存储。在下图中,字符串May和数字18显示为存储在内存位置中。

记忆

如果你懂得汇编语言,你就会把这些数据项和内存地址隐藏起来,并给出机器语言指令。然而,这对每个人来说都不容易。Python 解释器等语言翻译器执行这种类型的转换。它将对象存储在随机选择的内存位置。Python 的内置id()函数返回存储对象的地址。

>>> "May"
May
>>> id("May")
2167264641264

>>> 18
18
>>> id(18)
140714055169352

数据一旦存储在内存中,就应该被重复访问以执行特定的过程。显然,从其ID中获取数据是很麻烦的。像 Python 这样的高级语言可以提供合适的别名或标签来引用内存位置。

在上面的示例中,让我们将 May 的位置标记为月份,将存储 18 的位置标记为年龄。Python 使用赋值运算符 (=) 将对象与标签绑定。

>>> month="May"
>>> age=18

数据对象(五月)及其名称(月份)具有相同的 id()。18 的 id() 和年龄也相同。

>>> id(month)
2167264641264
>>> id(age)
140714055169352

标签是一个标识符。它通常被称为变量。Python 变量是一个符号名称,是对象的引用或指针。

声明 Python 变量

Python变量不需要显式声明来保留内存空间,或者你可以说创建一个变量。当您为其赋值时,Python 变量会自动创建。等号 (=) 用于给变量赋值。

= 运算符左侧的操作数是变量的名称,= 运算符右侧的操作数是存储在变量中的值。例如 -

counter = 100          # Creates an integer variable
miles   = 1000.0       # Creates a floating point variable
name    = "Zara Ali"   # Creates a string variable

打印 Python 变量

一旦我们创建了一个 Python 变量并为其赋值,我们就可以使用print()函数打印它。以下是前面示例的扩展,展示了如何在 Python 中打印不同的变量:

counter = 100          # Creates an integer variable
miles   = 1000.0       # Creates a floating point variable
name    = "Zara Ali"   # Creates a string variable

print (counter)
print (miles)
print (name)

这里,100、1000.0 和“Zara Ali”分别是分配给countermilesname变量的值。运行上面的 Python 程序时,会产生以下结果 -

100
1000.0
Zara Ali

删除Python变量

您可以使用 del 语句删除对数字对象的引用。del 语句的语法是 -

del var1[,var2[,var3[....,varN]]]]

您可以使用 del 语句删除单个对象或多个对象。例如 -

del var
del var_a, var_b

例子

以下示例显示了如何删除变量,如果我们尝试使用已删除的变量,则 Python 解释器将抛出错误:

counter = 100
print (counter)

del counter
print (counter)

这将产生以下结果:

100
Traceback (most recent call last):
  File "main.py", line 7, in <module>
    print (counter)
NameError: name 'counter' is not defined

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

让我们在脚本模式下尝试几个例子: -

a = b = c = 100

print (a)
print (b)
print (c)

这会产生以下结果:

100
100
100

这里,创建了一个值为 1 的整数对象,并且所有三个变量都被分配到同一内存位置。您还可以将多个对象分配给多个变量。例如 -

a,b,c = 1,2,"Zara Ali"

print (a)
print (b)
print (c)

这会产生以下结果:

1
2
Zara Ali

这里,两个值为 1 和 2 的整型对象分别赋给变量 a 和 b,一个值为“Zara Ali”的字符串对象赋给变量 c。

Python 变量 - 命名约定

每个 Python 变量都应该有一个唯一的名称,如 a、b、c。变量名可以是有意义的,如颜色、年龄、名称等。命名 Python 变量时应注意以下一些规则:

  • 变量名必须以字母或下划线字符开头
  • 变量名不能以数字或任何特殊字符开头,例如 $、(、* % 等。
  • 变量名称只能包含字母数字字符和下划线(Az、0-9 和 _)
  • Python 变量名称区分大小写,这意味着 Name 和 NAME 是 Python 中两个不同的变量。
  • Python 保留关键字不能用于命名变量。

如果变量的名称包含多个单词,我们应该使用这些命名模式 -

  • Camel case - 第一个字母是小写,但每个后续单词的第一个字母是大写。例如:公里每小时、价格每升

  • 帕斯卡大小写- 每个单词的第一个字母都是大写的。例如:公里每小时、每升价格

  • 蛇形写法- 使用单下划线 (_) 字符分隔单词。例如:每小时公里数、每升价格

例子

以下是有效的 Python 变量名称:

counter = 100
_count  = 100
name1 = "Zara"
name2 = "Nuha"
Age  = 20
zara_salary = 100000

print (counter)
print (_count)
print (name1)
print (name2)
print (Age)
print (zara_salary)

这将产生以下结果:

100
100
Zara
Nuha
20
100000

例子

以下是无效的 Python 变量名称:

1counter = 100
$_count  = 100
zara-salary = 100000

print (1counter)
print ($count)
print (zara-salary)

这将产生以下结果:

File "main.py", line 3
    1counter = 100
           ^
SyntaxError: invalid syntax

例子

一旦使用变量来标识数据对象,就可以重复使用它而无需其 id() 值。在这里,我们有一个矩形的变量高度和宽度。我们可以用这些变量计算面积和周长。

>>> width=10
>>> height=20
>>> area=width*height
>>> area
200
>>> perimeter=2*(width+height)
>>> perimeter
60

在编写脚本或程序时,使用变量特别有利。以下脚本也使用上述变量。

#! /usr/bin/python3

width = 10
height = 20
area = width*height
perimeter = 2*(width+height)
print ("Area = ", area)
print ("Perimeter = ", perimeter)

使用 .py 扩展名保存上述脚本并从命令行执行。结果将是 -

Area = 200
Perimeter = 60

Python 中的常量

Python 没有任何正式定义的常量,但是您可以使用带下划线的全大写名称来指示将变量视为常量。例如,名称 PI_VALUE 表示您不希望以任何方式重新定义或更改该变量。

使用全大写的命名约定有时被称为尖叫蛇案例 - 其中全大写(尖叫)和下划线(蛇)。

Python 与 C/C++ 变量

变量的概念在 Python 中与在 C/C++ 中的工作方式不同。在 C/C++ 中,变量是命名的内存位置。如果a=10且b=10,则两者是两个不同的存储位置。我们假设它们的内存地址分别是100和200。

命名内存位置

如果为“a”分配不同的值(例如 50),则地址 100 中的 10 会被覆盖。

图 20

Python 变量指的是对象而不是内存位置。一个对象仅在内存中存储一​​次。多个变量实际上是同一对象的多个标签。

地址_100

语句 a=50在内存中的某个其他位置创建一个新的int对象 50,留下由“b”引用的对象 10。

地址_150

此外,如果您为 b 分配其他值,则对象 10 保持未引用状态。

地址_200

Python 的垃圾收集器机制会释放任何未引用对象占用的内存。

如果两个操作数具有相同的 id() 值,Python 的恒等运算符将返回 True。

>>> a=b=10
>>> a is b
True
>>> id(a), id(b)
(140731955278920, 140731955278920)