![零基础学Python程序设计](https://wfqqreader-1252317822.image.myqcloud.com/cover/24/43738024/b_43738024.jpg)
3.7 类型判断与类型间转换
通过上面的学习,大概了解了Python的基本数据类型。在Python中,还提供了相关内置函数,对不同类型进行相互转换。下面详细介绍各种类型之间的转换方式。
3.7.1 数据类型的判断
在对数据转换之前,需要学会判断数据的类型。Python提供了内置函数type(),可以对任何数据的类型进行判断。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-73-1.jpg?sign=1739692369-ZpXyNud2jIJQwajc9WYtDWluRfZNUmwT-0-44880e75456537ae4a104947f409e958)
其中,x表示数据或对象。
【实例3-17】对不同类型的数据进行判断,并查看判断结果。
(1)判断整数数据的类型,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-73-2.jpg?sign=1739692369-9xwQ5B33kufpAV1XLpzmCpUgnjaEz7vA-0-2164c0c26c4bc5a852c1d221b9832a08)
输出结果表示,整数类型判断结果为“int”。
(2)判断浮点数数据的类型,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-73-3.jpg?sign=1739692369-Rm6d19UDzuJui2yMOt4lQUrxA9xJPW5P-0-929205faefe30b09f211632ae30b1357)
输出结果表示,浮点数数据类型判断结果为“float”。
(3)判断字符串数据的类型,代码如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-73-4.jpg?sign=1739692369-dAWPv6myICw7LK9byocIR3plPOJVSA8u-0-7fe0295e882d020c15edde0c283190e7)
输出结果表示,字符串数据类型判断结果为“str”。
3.7.2 整数类型转换为二进制字符串
Python提供了内置函数bin(),它可以将整数类型转换为二进制整数的字符串形式。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-74-1.jpg?sign=1739692369-zKu4ipZGkpLTFOYtqIAC090QfX5hkpJ6-0-662c336225a0407c065cd78b859d3034)
其中,x为整数类型。
助记:bin()中的bin取自二进制对应的英文单词binary中的前3个字母。
【实例3-18】下面依次将几种不同进制类型的整数转换为二进制字符串。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-74-2.jpg?sign=1739692369-RYlTK147aVjnOsxkhvtrWVglR6wrdgMs-0-57921e333b3c2ea5fd111152eb84a5e0)
3.7.3 整数类型转换为八进制字符串
Python提供了内置函数oct(),它可以将整数类型转换为八进制整数的字符串形式。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-74-3.jpg?sign=1739692369-Mkc5FpKDI0ZOwkOTqQYN6lUMCXhcQYtx-0-4e413359d8b76bef60ca2a41eab8d836)
其中,x为整数类型。
助记:oct()中的oct取自单词octal中的前3个字母。
【实例3-19】下面依次将几种不同进制类型的整数转换为八进制字符串。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-74-4.jpg?sign=1739692369-IskJYLcUeOpVm0m6dxM6Y1PVhHtLpA6G-0-0c5e55097c214b7be7f6e6fe77579236)
3.7.4 整数类型转换为十六进制字符串
Python提供了内置函数hex(),它可以将整数类型转换为十六进制整数的字符串形式。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-74-5.jpg?sign=1739692369-8pYRWgIR0C9ox9KYLDkZYgozVcj99dCD-0-84227627f4ea3a3fdcbfd8dba3029d0e)
其中,x为整数类型。
助记:hex()中的hex取自单词hexadecimal中的前3个字母。
【实例3-20】下面依次将几种不同进制类型的整数转换为十六进制字符串。
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-75-1.jpg?sign=1739692369-yMvBsm6Khamp1KpmOgIQM9RFyrMpZxgO-0-b83853f85575275411bb84790df210f5)
3.7.5 其他类型转换为整数类型
为了方便转换,Python提供了内置函数int(),它可以将数字类型、字符串类型转换为整数类型。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-75-2.jpg?sign=1739692369-nmeEtvtuSOLf4cajJpx7dKT9xTmmoWrw-0-3c59184143ae30e02cef6ea307b51799)
其中,x表示数字或字符串,base表示进制数,默认为十进制整数。
助记:int()中的int取自单词integer中的前3个字母。
下面介绍该函数的使用。
1. 不使用任何参数的情况
不使用任何参数时,得到的结果为0。
【实例3-21】将空类型值转换为整数类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-75-3.jpg?sign=1739692369-073FinVlMDs2Bxsswk0AAZRogsSW22Au-0-df1a4c1130a848886c86b4cce584984a)
2. 参数x为整数、浮点数类型的情况
该情况不需要使用base参数。其作用是对参数x取整。
【实例3-22】将整数、浮点数转换为整数类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-75-4.jpg?sign=1739692369-0YKi8N31pyu8hA7tT0uVVnE220MfGUv2-0-3ec801ec32202e6ac0e1a7cb2c7a7c9d)
3. 参数x为进制整数的情况
该情况也不需要使用base参数。其作用是将进制整数转换为十进制整数。
【实例3-23】将不同进制的整数转换为十进制整数,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-75-5.jpg?sign=1739692369-TwKh3kGi6qNICXoSYDpwuw6mmPV5kA0k-0-097d164208fa22e0e1d83053f1beb035)
4. 参数x为字符串的情况
该情况下,参数base可有可无,下面介绍这两种情况。
(1)无参数base
所谓的无参数base,其实不是没有,而是使用了默认的参数值base=10。在这种情况下,参数x必须是十进制整数的字符串,否则会报错。
【实例3-24】对无参数base的字符串转换为整数类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-76-1.jpg?sign=1739692369-AfZXueHaYnEj9iuhhRAC4d0wCZUwLvQH-0-c651aa62410e3a9fa950eee142428ad8)
(2)有参数base
有参数base时,参数x的类型要与参数base表示的进制保持一致,否则会报错。
【实例3-25】对既有参数x,又有参数base的不同情况的整数转换,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-76-2.jpg?sign=1739692369-pLyS5Mp1araZCwKUB1HLOTZ0gQgitgaM-0-dea3a1a449b51752dfd6591664b5e401)
3.7.6 其他类型转换为字符串类型
Python提供了内置函数str(),它可以将其他类型转换为字符串类型。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-76-3.jpg?sign=1739692369-RVffLrNagu1qjbg1ygyAKP4LTXYV89m1-0-8a5439c507c4844231d59a53b10d68fb)
其中,x可以为字符串、整数类型等。下面介绍该函数的使用。
助记:str()中的str取自单词string中的前3个字母。
1. x为字符串情况
该情况不进行转换,直接输入x本身。
【实例3-26】将不同类型的字符串转换为字符串类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-77-1.jpg?sign=1739692369-u93cw8i1vRg1S4Fun21ITekuaT2bvWVc-0-8dccc53ce6b31fd9b08c4fec986ad3f3)
2. x为整数类型情况
该情况下会将整数类型转换为十进制整数字符串类型。
【实例3-27】将不同整数类型转换为字符串类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-77-2.jpg?sign=1739692369-PsXM2XNarefAKCTODAswbUgY9g7wXnAI-0-8c0b998170bd5586c54708d580f6d1cd)
3.7.7 其他类型转换为浮点数类型
Python提供了内置函数float(),它可以将数字和字符串转换为字符串类型。其语法格式如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-77-3.jpg?sign=1739692369-aFgxkNX9MmCNqy8eGIphlx8axNseQWEh-0-d34b73e85283c392762ce1b8759082fe)
其中,x可以为浮点数、整数、字符串。下面介绍该函数的使用。
1. x为浮点数情况
该情况不进行转换,直接输入x本身。
【实例3-28】将浮点数类型转换为浮点数类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-77-4.jpg?sign=1739692369-VIVjDPXmkxRHJkneZXekB797z4znk5OP-0-f2441362a9a1c4a488ac95e90786189b)
2. x为整数情况
该情况下会将整数类型转换为浮点数类型。
【实例3-29】将不同类型的整数转换为浮点数类型,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-78-1.jpg?sign=1739692369-7nD3SuiJQmCHLTFvrkvfYlGEcWmkSp6Q-0-b236d32f54a9ec6efa9bb55046d7ea59)
3. x为字符串情况
该情况下会将字符串类型转换为浮点数类型。
【实例3-30】将不同类型的字符串转换为浮点数,代码及执行结果如下:
![](https://epubservercos.yuewen.com/8FCE01/23020638509734206/epubprivate/OEBPS/Images/42185-00-78-2.jpg?sign=1739692369-cQbnmb1Ei4mIiGwXoX0s7xdYuzI2yFFY-0-a8a0b06c5c86ed141957d49c69cd7050)