4.1 变量赋值
变量赋值是将变量名和数据建立关联的过程。通过对变量进行赋值操作,变量名就可以指代具体的数值了。Python提供了内部赋值和外部赋值两种方式。本节详细讲解这两种方式。
4.1.1 内部赋值
内部赋值是通过等号运算符(=)为变量指定一个数据值。它可以为一个变量进行赋值,也可以同时为多个变量进行赋值。下面依次介绍这几种方式。
1. 单一赋值
单一赋值是指为一个变量名指定一个数据值,格式如图4.1所示。
图4.1 单一赋值
其中,数据值是为变量赋值的值。它可以是数值,也可以是表达式。在IDEL的交互模式中,成功赋值以后,只要直接执行变量名,即可查看变量的值,格式如下:
【实例4-1】下面演示为变量A进行单一赋值,并查看变量的值。
(1)为变量赋值一个整数,代码如下:
代码为变量A赋值了整数60,查看变量类型时,变量类型为整数类型。
(2)为变量赋值一个浮点数,代码如下:
代码为变量A赋值了浮点数60.8,查看变量类型时,变量类型为浮点数类型。
(3)为变量赋值一个字符串,代码如下:
代码为变量A赋值了字符串“60”,查看变量类型时,变量类型为字符串类型。
(4)为变量赋值一个布尔值,代码如下:
代码为变量A赋值了布尔值True,查看变量类型时,变量类型为布尔类型。
提示:为变量进行赋值时,变量的数据类型由赋值的数据类型决定。
2. 多重赋值
多重赋值是指将一个数据值同时赋给多个变量,格式如图4.2所示。其中,3个变量均被赋给同一个数据值。
图4.2 多重赋值
【实例4-2】下面演示为多个变量赋给相同值,并查看这些变量的值。
(1)为变量A、B、C同时赋值整数60,代码如下:
输出信息表示,此时变量A、B、C的值均为整数60,具有相同的数据类型——整数类型。
(2)为变量A、B、C同时赋值浮点数60.8,代码如下:
输出信息表示,此时变量A、B、C的值均为浮点数60.8,具有相同的数据类型——浮点数类型。
(3)为变量A、B、C同时赋值字符串“80”,代码如下:
输出信息表示,此时变量A、B、C的值均为字符串“80”,具有相同的数据类型——字符串类型。
(4)为变量A、B、C同时赋值布尔值False,代码如下:
输出信息表示,此时变量A、B、C的值均为布尔值False,具有相同的数据类型:布尔类型。
提示:同时为多个变量赋给同一个值时,这些变量具有相同的值,数据类型也相同。
3. 同步赋值
同步赋值是同时为多个变量进行赋值的,但每个变量都可以有不同的数值。这种形式等同于多个单一赋值的组合,格式如图4.3所示。其中,变量与变量之间、数据值与数据值之间使用逗号进行分隔。图中为3个变量分别赋给了数据值1、数据值2和数据值3。
图4.3 同步赋值
【实例4-3】下面演示为多个变量同时赋给不同的值,并查看这些变量的值。
(1)为变量A、B、C同时赋值,依次赋值为整数60、浮点数60.8和字符串“80.6”,代码如下:
输出信息表示,变量A的值为整数60,数据类型为整数类型;变量B的值为浮点数60.8,数据类型为浮点数类型;变量C的值为字符串“80.6”,数据类型为字符串类型。
(2)这里将要赋的值顺序进行颠倒,为变量A、B、C同时赋值,依次赋值为字符串“80.6”、整数60和浮点数60.8,代码如下:
输出信息表示,变量A的值为字符串“80.6”,数据类型为字符串类型;变量B的值为整数60,数据类型为整数类型;变量C的值为浮点数60.8,数据类型为浮点数类型。
提示:同时为多个变量赋给不同的值时,需要注意顺序关系。
4.1.2 外部赋值
有些变量需要根据用户的输入进行赋值。这样的赋值称为外部赋值。例如,某个程序需要处理用户输入的信息。当程序运行时,需要等待用户的输入,然后才能进行后续处理。在这种情况下,无论用户输入的信息是何种数据类型,程序获取的都是字符串。所以,为了便于后续处理,程序员需要对数据进行额外处理,以获取正确类型的数据。
1. 字符串类型赋值
字符串类型赋值是指将一个字符串类型的输入信息作为要赋的值,赋值给变量,那么这个变量类型就是字符串类型的变量。在前面讲到的输入函数input()就可以将用户的输入信息变为字符串类型。因此,可以通过input()为变量进行赋值。格式如图4.4所示。
图4.4 字符串类型赋值
【实例4-4】下面演示通过用户的输入信息给变量A进行赋值,使变量为字符串类型。
(1)假如,用户输入的信息为整数60。进行赋值,代码如下:
输出信息表示,变量A的值为字符串“60”,数据类型为字符串类型。
(2)假如,用户输入的信息为浮点数60.8。进行赋值,代码如下:
输出信息表示,变量A的值为字符串“60.8”,数据类型为字符串类型。
(3)假如,用户输入的信息为字符串“60”。进行赋值,代码如下:
输出信息表示,变量A的值为字符串“60”,数据类型为字符串类型。
(4)假如,用户输入的信息为布尔值True。进行赋值,代码如下:
输出信息表示,变量A的值为字符串“True”,数据类型为字符串类型。
提示:通过input()接收用户输入信息为变量进行赋值时,无论输入的数据为何种类型,复制后,变量始终是字符串类型。
2. 非字符串类型赋值
如果想使用用户的输入对变量赋值,并且赋值后变量的类型为非字符串类型,那么就需要借助eval()对input()的输入信息结果进行处理后再赋值。也就是将用户的输入转换为非字符串形式,然后再赋值给变量。格式如图4.5所示。
图4.5 非字符串类型赋值
【实例4-5】下面演示通过用户的输入信息为变量A进行赋值,使变量为非字符串类型。
(1)假如,用户输入的信息为整数60。进行赋值,代码如下:
输出信息表示,变量A的值为整数60,数据类型为整数类型。
(2)假如,用户输入的信息为浮点数60.8。进行赋值,代码如下:
输出信息表示,变量A的值为浮点数60.8,数据类型为浮点数类型。
(3)假如,用户输入的信息为布尔值False。进行赋值,代码如下:
输出信息表示,变量A的值为布尔值False,数据类型为布尔类型。
(4)假如,用户输入的信息为字符串“60”。进行赋值,代码如下:
输出信息表示,变量A的值为字符串“60”,数据类型为字符串类型。
提示:通过eval(input())接收用户输入信息为变量进行赋值时,只要用户输入的信息为非字符串类型,变量的类型就与输入信息的类型一致。例如,输入的信息为浮点数类型,赋值后变量的类型就为字符串类型。