在上一节中讲的元组和元组操作中,经常看到 tup = (1, 2, 3) 这样的代码,这里面其实涉及了编程语言中一个重要的概念就是变量,前面的等式中tup是变量,(1, 2, 3) 是赋与变量的值。前面的一些文章的代码中也都有用到变量,下面我们就一起来学习一下变量,有了这个基础,后面的学习将更顺畅。
在Python中,变量是用来存储数据的容器。可以将变量看作是一个标签或者一个引用,用来引用存储在内存中的数据。
创建一个变量需要两个步骤:命名和赋值。
命名是给变量起一个唯一的名称。变量的名称可以由字母、数字和下划线组成,但不能以数字开头。同时,变量的命名应该具有描述性,以便于理解和维护代码。
赋值是将数据存储在变量中。在Python中,使用等号(=)进行赋值操作。例如,可以将一个整数赋值给一个变量:
x = 5
这样,变量x就存储了整数值5。
变量的值可以随时修改。例如,可以将一个字符串赋值给变量x:
x = "Hello, World!"
现在,变量x存储了字符串"Hello, World!"。
在使用变量之前,需要先进行赋值操作。如果使用未赋值的变量,则会抛出NameError异常。
下面是一些示例,以便更好地理解变量的概念:
# 创建一个整数变量,并赋值为10
x = 10# 创建一个浮点数变量,并赋值为3.14
y = 3.14# 创建一个字符串变量,并赋值为"Hello"
z = "Hello"# 修改变量的值
x = 15
y = y + 1.86
z = z + ", World!"# 打印变量的值
print(x) # 输出:15
print(y) # 输出:5.0
print(z) # 输出:Hello, World!
通过这些示例,可以看到变量的使用非常灵活。可以用来存储不同类型的数据,也可以随时修改变量的值。变量使得编程更加方便和可读性更高。
理解变量在计算机内存中的表示也非常重要。当我们输入如下:
>>> a='ABC'
这时,Python解释器做了两件事情:
(1)在内存中创建了一个'ABC'字符串。
(2)在内存中创建了一个名为a的变量,并把它指向'ABC'。
也可以把一个变量a赋值给另一个变量b,这个操作实际上是把变量b指向变量a所指向的数据,例如下面的代码:
>>> a='ABC'
>>> b=a
>>> a='XYZ'
>>> print(b)
最后一行输出变量b的内容到底是'ABC'还是'XYZ'呢?如果从数学意义上理解,就会错误地得出b和a相同,应该是'XYZ'。实际上,b的值是'ABC'。我们一行一行执行代码,就可以看到到底发生了什么事。
执行a='ABC',解释器创建了字符串'ABC'和变量a,并把a指向'ABC',如图所示。
a指向'ABC'
执行b=a,解释器创建了变量b,并把b指向a指向的字符串'ABC',如图所示。
a、b指向'ABC'
执行a='XYZ,解释器创建了字符串'XYZ',并把a的指向改为'XYZ',但b没有更改,如图所示:
a指向"XYZ",b不变
最后输出变量b的结果自然是'ABC'了。
2.变量名称:
程序常常选择有意义的名称作为变量名,以此标记变量的用途。
变量名是由数字或字符组成的任意长度的字符串,必须以字母开头。使用大写字母是合法的,但变量名建议使用小写字母开头。Python是区分大小写的。举个例子来说,Name和name是两个不同的变量名。交互模式中输入如下:
>>> name='study python is happy'
>>> Name='I aggree with you'
>>> print(name)
study python is happy
>>> print(Name)
I aggree with you
下划线“”可以出现在变量名中,经常用于连接多个词组,如happy_study, do_it_with more_practice。交互模式输入如下:
>>> happy_study='stay hungry stay foolish'
>>> print(happy_study)
stay hungry stay foolish
如果给变量取非法的名称,解释器就会显示语法错误。请看下面的示例:
>>> 2wrongtest='just for error test'
SyntaxError: invalid syntax
该示例提示语法错误,错误信息为无效的语法,原因为不是以字母开头的。
>>> var@me='surprised'
SyntaxError: can't assign to operator
该示例提示语法错误,错误信息为不能做指定操作,原因是包含一个非法字符@。
Python不允许使用关键字作为变量名,请看下面的例子:
>>> from='from'
SyntaxError: invalid syntax
from是Python的一个关键字,因此出现错误。