![零基础学Python程序设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/24/43738024/b_43738024.jpg)
4.1 变量赋值
变量赋值是将变量名和数据建立关联的过程。通过对变量进行赋值操作,变量名就可以指代具体的数值了。Python提供了内部赋值和外部赋值两种方式。本节详细讲解这两种方式。
4.1.1 内部赋值
内部赋值是通过等号运算符(=)为变量指定一个数据值。它可以为一个变量进行赋值,也可以同时为多个变量进行赋值。下面依次介绍这几种方式。
1. 单一赋值
单一赋值是指为一个变量名指定一个数据值,格式如图4.1所示。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-80-1.jpg?sign=1739412782-Vu47HJiKPMTRmG1Qu75XdYH0AJdFoAVq-0-1de7b5d3d7614418f68230240c2e34c3)
图4.1 单一赋值
其中,数据值是为变量赋值的值。它可以是数值,也可以是表达式。在IDEL的交互模式中,成功赋值以后,只要直接执行变量名,即可查看变量的值,格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-80-2.jpg?sign=1739412782-8vmR7207UuzECn2wkbWicuJnsnvjjPGD-0-789a17496e0fb1fabfddcb91b0c15049)
【实例4-1】下面演示为变量A进行单一赋值,并查看变量的值。
(1)为变量赋值一个整数,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-80-3.jpg?sign=1739412782-cFhCoQsqDDZ0WpXcgzwExkSUwceO9YKq-0-b0c8464339bfdbdcb39b050536a1ab13)
代码为变量A赋值了整数60,查看变量类型时,变量类型为整数类型。
(2)为变量赋值一个浮点数,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-81-1.jpg?sign=1739412782-vMK3kWJjEsZhTJiCyehTs8QzgtzZNUtg-0-7e0de73d08a7ea6f5c29e4ad6993819a)
代码为变量A赋值了浮点数60.8,查看变量类型时,变量类型为浮点数类型。
(3)为变量赋值一个字符串,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-81-2.jpg?sign=1739412782-bhALFLpV2kkDgYgN29jyIbmUuX5JCANN-0-5bfeb91aa0cb67bbbedbd34f417e06c9)
代码为变量A赋值了字符串“60”,查看变量类型时,变量类型为字符串类型。
(4)为变量赋值一个布尔值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-81-3.jpg?sign=1739412782-DNpGna956gNTxB6U0BApla1VdIpSphgN-0-a59c828386f75d87c809823eda649a16)
代码为变量A赋值了布尔值True,查看变量类型时,变量类型为布尔类型。
提示:为变量进行赋值时,变量的数据类型由赋值的数据类型决定。
2. 多重赋值
多重赋值是指将一个数据值同时赋给多个变量,格式如图4.2所示。其中,3个变量均被赋给同一个数据值。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-81-4.jpg?sign=1739412782-6jAVKMpnDAVammkOdsVavA5e3jspjmvN-0-405f7c03c81907ad308e873be7516bf4)
图4.2 多重赋值
【实例4-2】下面演示为多个变量赋给相同值,并查看这些变量的值。
(1)为变量A、B、C同时赋值整数60,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-81-5.jpg?sign=1739412782-TxWIKeAunHaossdaoclv7uTC72l2d43Q-0-d6d30e18d92c7f3f231820bfc62dd4f6)
输出信息表示,此时变量A、B、C的值均为整数60,具有相同的数据类型——整数类型。
(2)为变量A、B、C同时赋值浮点数60.8,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-82-1.jpg?sign=1739412782-Jdj48DH9gN9qmwS9qhDE6L8VWwn3QgIw-0-1b80d3ea77ee73093281195e10725989)
输出信息表示,此时变量A、B、C的值均为浮点数60.8,具有相同的数据类型——浮点数类型。
(3)为变量A、B、C同时赋值字符串“80”,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-82-2.jpg?sign=1739412782-vwVudoXxLazFBQvmcX1gAvqulK8LoSGq-0-ff2e98da273b137e765a22f754802a34)
输出信息表示,此时变量A、B、C的值均为字符串“80”,具有相同的数据类型——字符串类型。
(4)为变量A、B、C同时赋值布尔值False,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-82-3.jpg?sign=1739412782-mu976TU7MlghV9wyI7sQHsD5MqL3qJgR-0-af8a08fd135091892f7e40716372303c)
输出信息表示,此时变量A、B、C的值均为布尔值False,具有相同的数据类型:布尔类型。
提示:同时为多个变量赋给同一个值时,这些变量具有相同的值,数据类型也相同。
3. 同步赋值
同步赋值是同时为多个变量进行赋值的,但每个变量都可以有不同的数值。这种形式等同于多个单一赋值的组合,格式如图4.3所示。其中,变量与变量之间、数据值与数据值之间使用逗号进行分隔。图中为3个变量分别赋给了数据值1、数据值2和数据值3。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-83-1.jpg?sign=1739412782-KdxxD77iWR5CEnEpY7qxNvvN66WxQsCk-0-50ab12102fc0af6976d433595f7f9438)
图4.3 同步赋值
【实例4-3】下面演示为多个变量同时赋给不同的值,并查看这些变量的值。
(1)为变量A、B、C同时赋值,依次赋值为整数60、浮点数60.8和字符串“80.6”,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-83-2.jpg?sign=1739412782-rgosogzrv7X6eAyl86Fb1RCLDf6qS5aB-0-465a8e41ff67d1d47280003a390af016)
输出信息表示,变量A的值为整数60,数据类型为整数类型;变量B的值为浮点数60.8,数据类型为浮点数类型;变量C的值为字符串“80.6”,数据类型为字符串类型。
(2)这里将要赋的值顺序进行颠倒,为变量A、B、C同时赋值,依次赋值为字符串“80.6”、整数60和浮点数60.8,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-83-3.jpg?sign=1739412782-sf0rfAZvBS4srytPXfYkgXVOOofyfiTh-0-f9c180f6700704ea2b00eebceea4b026)
输出信息表示,变量A的值为字符串“80.6”,数据类型为字符串类型;变量B的值为整数60,数据类型为整数类型;变量C的值为浮点数60.8,数据类型为浮点数类型。
提示:同时为多个变量赋给不同的值时,需要注意顺序关系。
4.1.2 外部赋值
有些变量需要根据用户的输入进行赋值。这样的赋值称为外部赋值。例如,某个程序需要处理用户输入的信息。当程序运行时,需要等待用户的输入,然后才能进行后续处理。在这种情况下,无论用户输入的信息是何种数据类型,程序获取的都是字符串。所以,为了便于后续处理,程序员需要对数据进行额外处理,以获取正确类型的数据。
1. 字符串类型赋值
字符串类型赋值是指将一个字符串类型的输入信息作为要赋的值,赋值给变量,那么这个变量类型就是字符串类型的变量。在前面讲到的输入函数input()就可以将用户的输入信息变为字符串类型。因此,可以通过input()为变量进行赋值。格式如图4.4所示。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-84-1.jpg?sign=1739412782-IDXIOLYkvGnynyO8gq2z3r4m61JILm4g-0-bd31c59a76ec66dbf7fb577affda99f3)
图4.4 字符串类型赋值
【实例4-4】下面演示通过用户的输入信息给变量A进行赋值,使变量为字符串类型。
(1)假如,用户输入的信息为整数60。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-84-2.jpg?sign=1739412782-honQsAfMcIEHQnZ6WE60L8oHFNBfnfqU-0-520726d8ee1e7447315942c2a3085358)
输出信息表示,变量A的值为字符串“60”,数据类型为字符串类型。
(2)假如,用户输入的信息为浮点数60.8。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-84-3.jpg?sign=1739412782-rgFeYrOiLGclav3LckXEeMe0FQ34d2PF-0-4369a0c6eb41ab4eed2aa357a14360e8)
输出信息表示,变量A的值为字符串“60.8”,数据类型为字符串类型。
(3)假如,用户输入的信息为字符串“60”。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-84-4.jpg?sign=1739412782-q1hzYLtNIIWv9G5PJcA4w5vBNAxHHEeY-0-0dc63405892ada856ce4653553381abf)
输出信息表示,变量A的值为字符串“60”,数据类型为字符串类型。
(4)假如,用户输入的信息为布尔值True。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-85-1.jpg?sign=1739412782-OqvVlgWOYQbrJlHk5zCoCab2KiNnhr6t-0-b92419d919b6904ce5416e94b40adae0)
输出信息表示,变量A的值为字符串“True”,数据类型为字符串类型。
提示:通过input()接收用户输入信息为变量进行赋值时,无论输入的数据为何种类型,复制后,变量始终是字符串类型。
2. 非字符串类型赋值
如果想使用用户的输入对变量赋值,并且赋值后变量的类型为非字符串类型,那么就需要借助eval()对input()的输入信息结果进行处理后再赋值。也就是将用户的输入转换为非字符串形式,然后再赋值给变量。格式如图4.5所示。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-85-2.jpg?sign=1739412782-wucfnGmsN2W6Nr4zLtrjEo3OOQwg7Vpd-0-a34a8d29dec8f7db345c64a63b29c2bc)
图4.5 非字符串类型赋值
【实例4-5】下面演示通过用户的输入信息为变量A进行赋值,使变量为非字符串类型。
(1)假如,用户输入的信息为整数60。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-85-3.jpg?sign=1739412782-Xp2hMkKtpaUehJGcXtnrX24Q0XFSCgV0-0-d2c7002372df0b33db9e085cbb881b26)
输出信息表示,变量A的值为整数60,数据类型为整数类型。
(2)假如,用户输入的信息为浮点数60.8。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-85-4.jpg?sign=1739412782-12XUFD7lq3zJnlTDJwteCWh6FrS3yFUG-0-833c6ee0ef50db1bfd3b9b23d561b6d7)
输出信息表示,变量A的值为浮点数60.8,数据类型为浮点数类型。
(3)假如,用户输入的信息为布尔值False。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-85-5.jpg?sign=1739412782-fpVMzA1UR9pVcSiBhF2tTuOpMv89b2DQ-0-513e502a0b3e0a35c56540d6fbdfc418)
输出信息表示,变量A的值为布尔值False,数据类型为布尔类型。
(4)假如,用户输入的信息为字符串“60”。进行赋值,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-86-1.jpg?sign=1739412782-hbUTSdcGaJLUfHaec6G5gM3W2zvfXb7S-0-151cb2e932e40f43fea3e134d30d2040)
输出信息表示,变量A的值为字符串“60”,数据类型为字符串类型。
提示:通过eval(input())接收用户输入信息为变量进行赋值时,只要用户输入的信息为非字符串类型,变量的类型就与输入信息的类型一致。例如,输入的信息为浮点数类型,赋值后变量的类型就为字符串类型。