python数据类型的转换_详解Python3中的数据类型转换:显式类型转换,隐式类型转换...

教程引言:系统地讲解计算机基础知识,Python的基础知识, 高级知识。关注微信公众号[薯条编程],领取该教程的PDF电子书:《Python零基础入门指南》。

8.3.1 理解数据类型转换

数据类型转换,顾名思义,是从一种数据类型转换为另一种数据类型。常说的“取整”,就暗含类型转换的意思,即,将浮点小数转换为整数。

202004301588232533400377.png

我们在日常生活中,也常于各类角色之间进行转换,在企业中是老板或职员,在家中是丈夫或妻子,对陌生人彬彬有礼,对相熟的人则暴露各种坏脾气,这也是一种类型转换。 类型转换可谓无时不存,无处不在。需要对生活抱持美好的期待,虽然它充满着波折和磨难,勿需遗忘你本来的样子,要成为你想变成的样子

8.3.2 显式类型转换

从字面意思来进行理解,显式类型转换,是显式地从一种数据类型转换为另一种数据类型。在Python中通过类型名+()的语法来实现显式类型转换。

代码实例-将小数取整:

# 据说单身狗荷包里会有11块1毛1分钱, 还经常舍不得花

money = 11.11

money = int(money)

# 据说有对象的人,从相识到结婚,平均会花费¥201314元

money = -201314

money = float(money)

代码讲解:(1) 在代码实例中定义了一个浮点类型的变量money,然后通过int(money)的形式将浮点类型显式地转换为整型。

(1) 将整型转换为浮点类型时,数字后面会多了一个小数点。例如将201314转换为浮点类型,则转换后的值为201314.0

代码实例-字符串类型与数值类型之间的转换:

# 1.字符串类型转换为数值类型

number = " 201314"

# 转换为十进制整数,base表示转换的基数

number = int(number, base=10)

number = " 1010"

# 转换为十进制整数,base表示转换的基数

number = int(number, base=2)

# 转换为浮点类型

number = " 201314"

number = float(number)

# 2.数值类型转换为字符串类型

number = str(number)

代码讲解:(1) 将字符串类型转换为数值类型时,直接通过int()或float()将字符串类型显式转换为数值类型

(2) 对于整数,可以在int()的显式转换中,通过参数base来指定转换的基数,字符串中的数字表示十进制时,传递的参数为10。

字符串中的数字表示二进制时,传递的参数为2。字符串中的数字表示十六进制时,传递的参数为16。

(3) 通过str()将数值类型转换为字符串类型

将字符串类型转换为数值类型时,字符串中的内容必须是连续的合法的数(十进制数,二进制数,十六进制数等),可以存在空格字符和正负号,不可以出现其它的非数字字符。

代码实例-字符串非法转换:

number = " -20.1314 "

# 类型转换成功

number = int(number)

number = " -ABC "

# 类型转换成功

number = int(number, base=16)

number = "20.1314 748"

# 转换为数值类型时抛出异常

number = int(number)

number = "20.1314 \n"

# 转换为数值类型时抛出异常

number = float(number)

代码讲解:(1) 字符串"20.1314 748"不是连续的数字

(2) 字符串"20.1314 \n"包含非法的字符

8.3.3 隐式类型转换

在使用数值类型进行数值运算时,范围小的数据类型会自动转换为范围大的数据类型。Python中的数值类型:布尔类型,整型,浮点类型

将其按表示的 范围大小进行排序为:布尔类型 < 整型 < 浮点类型

代码实例-数值类型的隐式转换:

# 布尔类型自动转换为范围更大的整型

# True转换后的整型值为1,False转换后的整型值为0

value = 1+ True

# value的值为2

# 布尔类型自动转换为范围更大的浮点类型

# True转换后的浮点值为1.0,False转换后的浮点值为0.0

value = 1.0+ True

# value的值为2.0

# 范围小的数据类型自动转换为范围更大的数据类型

value = 1+1.0+ True

# value的值为3.0

代码讲解:(1) 范围小的数据类型自动转换为范围大的数据类型

(2) 在表达式1+1.0+True中,按左结合性先计算1+1.0,1是整型,1.0是浮点类型,整型1自动转换为浮点类型1.0,1+1.0的结果为2.0。

同理2.0+True等价于2.0+1.0,值为3.0

202004301588232548346710.png

8.3.4 其它类型与布尔类型的转换

每一种数据类型都有其对应的假值,凡是表示假值的转换后的布尔类型都为False。整型中的假值是0,浮点类型的假值是0.0,字符串的假值是空字符串,None类型表示空类型,空类型转换后的布尔类型为False。在条件控制结构和循环控制结构中,会将表达式的值转换为逻辑值,如果为真值就执行相应的代码。

8.3.5 本节知识要点(1) 数据类型转换是指将一种数据类型转换为另一种数据类型

(2) Python中的数据类型转换有显式类型转换和隐式类型转换

(3) 整型和浮点类型的0值,空字符串,None类型等转换后的布尔类型为False

8.3.6 课后习题(1) 以生活中的例子来谈谈你对数据类型转换的理解

(2) 请将字符串"1011"分别转换为十进制整数,二进制整数,十六进制整数

(3) 将整型,浮点类型,布尔类型,按表示的范围大小进行降序排序

(4) 如何让表达式1+2.0+True的值输出为整型?

(5) 以类型转换的角度来描述表达式False+1+2.0+True的计算过程

关注微信公众号:薯条编程,公众号后台回复"Python资料",免费领取Python电子书,以及学习Python视频课程。

202004121586677416783738.jpg

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值