Python - 变量



Python 变量

Python 变量是在 Python 程序中用于存储值的保留内存位置。这意味着当您创建变量时,您会在内存中保留一些空间。

根据变量的数据类型,Python 解释器会分配内存并决定可以在保留的内存中存储什么。因此,通过为 Python 变量分配不同的数据类型,您可以在这些变量中存储整数、小数或字符。

内存地址

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

memory

如果您了解汇编语言,您可以转换这些数据项和内存地址,并提供机器语言指令。但是,这并非对每个人都容易。像 Python 解释器这样的语言翻译器执行此类型的转换。它将对象存储在随机选择的内存位置。Python 的内置id()函数返回对象存储的地址。

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

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

数据一旦存储在内存中,就应该反复访问以执行某个过程。显然,从其 ID 获取数据很麻烦。像 Python 这样的高级语言使得可以为内存位置提供合适的别名或标签。

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

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

数据对象 (May) 和其名称 (month) 具有相同的 id()。18 和 age 的 id() 也相同。

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

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

创建 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 中打印不同的变量

打印 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内置函数`type()`来获取Python变量的数据类型,方法如下。

示例:打印变量类型

x = "Zara"
y =  10
z =  10.10

print(type(x))
print(type(y))
print(type(z))

这将产生以下结果

<class 'str'>
<class 'int'>
<class 'float'>

Python变量类型转换

可以使用类型转换来指定变量的数据类型,方法如下。

示例

此示例演示了变量的区分大小写。

x = str(10)    # x will be '10'
y = int(10)    # y will be 10 
z = float(10)  # z will be 10.0

print( "x =", x )
print( "y =", y )
print( "z =", z )

这将产生以下结果

x = 10
y = 10
z = 10.0

Python变量的区分大小写

Python变量区分大小写,这意味着Ageage是两个不同的变量。

age = 20
Age = 30

print( "age =", age )
print( "Age =", Age )

这将产生以下结果

age = 20
Age = 30

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。变量名可以是有意义的,例如color、age、name等。在命名Python变量时,需要注意某些规则。

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

如果变量名包含多个单词,应该使用以下命名模式:

  • 驼峰式命名法 - 第一个字母是小写,但每个后续单词的第一个字母是大写。例如:kmPerHour、pricePerLitre

  • 帕斯卡命名法 - 每个单词的第一个字母都大写。例如:KmPerHour、PricePerLitre

  • 蛇形命名法 - 使用单个下划线(_)字符分隔单词。例如:km_per_hour、price_per_litre

示例

以下是有效的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局部变量是在函数内部定义的。不能在函数外部访问变量。

Python函数是一段可重用的代码,你将在Python - 函数教程中了解更多关于函数的信息。

示例

以下是一个演示局部变量用法的示例

def sum(x,y):
   sum = x + y
   return sum
print(sum(5, 10))

这将产生以下结果:

15

Python全局变量

在函数外部创建的任何变量都可以在任何函数内访问,因此它们具有全局作用域。

示例

以下是一个全局变量的示例:

x = 5
y = 10
def sum():
   sum = x + y
   return sum
print(sum())

这将产生以下结果:

15

Python中的常量

Python没有正式定义的常量,但是你可以使用全大写字母加下划线的方式来指示一个变量被视为常量。例如,名称PI_VALUE表示你不希望重新定义或更改该变量。

使用全大写字母的命名约定有时被称为“尖叫蛇形命名法”——全大写(尖叫)和下划线(蛇形)。

Python与C/C++变量

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

named memory location

如果将不同的值赋给“a”——例如50,则地址100中的10将被覆盖。

Image-20

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

address_100

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

address_150

此外,如果你将其他值赋给b,则对象10将保持未被引用。

address_200

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

Python的同一性运算符is如果两个操作数具有相同的`id()`值,则返回True。

>>> a=b=10
>>> a is b
True
>>> id(a), id(b)
(140731955278920, 140731955278920)
广告
© . All rights reserved.