|NO.Z.00008|——————————|BigDataEnd|——|Hadoop&Python.v08|——|Arithmetic.v08|语法:核心语法&数据类型转换.V2|
一、数据类型转换
### --- 布尔值转换
~~~ 要想把其他值转换为布尔值,需要使用一个内置函数bool(),
~~~ 我们在控制台按顺序输入以下的代码:关于函数的概念我们在后面的课程中会学习,
~~~ Python的内置函数有很多,我们也会一一学习。
~~~ # 以下值都为True
bool(1)
bool(-1)
bool(255)
bool(0.0000001)
bool(-99.99)
~~~ # 下面的值为False
bool(0)
bool(0.0)
~~~ # 通过上面的代码,不难总结出:对于数值类型,所有的非零值转换为True, 只有零值才转换为False.字符串也可以转换为布尔值
~~~ # 这是一个空字符串,转换结果为False
bool("")
~~~ # 转换结果为True
bool("abc")
~~~ # 这是一个只包含一个空格的字符串,转换结果为为True
bool(" ")
~~~ # 对于任何非空的字符串,转换为布尔值都是True。注意第一行代码和第三行代码空值转换为布尔值永远都是False(敲黑板)
~~~ # 结果为False
bool(None)
### --- 字符串转换
~~~ 首先介绍一下我们可以使用str() 将其他类型转换为字符串,
~~~ True, False, None 这三个值转换为字符串就是它们的单词本身,
~~~ 实际上在实际编程中,我们很少需要把它们转换成字符串来使用。
~~~ # 对于数值类型,我们也可以用str()将它们转换为字符串,
str(True) # 结果是'True'
str(False) # 结果是'False'
str(None) # 结果是'None'
print("My age is", str(18))
~~~ # 在上面的例子中,我们使用str()将18转换为"18",然后再输出。实际上,在这个例子中,如果不进行强制转换的话,也不会出错,那是因为,print函数会自动将数值先转换成字符串再输出。
### --- 数值转换
~~~ 数值转换是我们在数据分析过程中经常用到的,
~~~ 因为我们从任何文件中读到的数字一开始都是字符串,需要将它们转换为数值才能进行运算。
~~~ # 如果想要把一个整数字符串转换为int类型,使用int();
num = "1"
int(num) + 1
~~~ # 如果将int()去掉,这段代码则会报错,因为num是个字符串,不能将字符串和数值进行相加。
~~~ # 数值的前后带有空格也可以成功转换
int(" 100 ") # 结果为100
~~~ # 带有符号的数字也可以成功转换
int("-1") # 结果为-1
int("+1") # 结果为1
~~~ # 如果想要把一个带小数点的字符串转换为float类型,使用float()
pi = "3.1415926"
float(pi)
~~~ # int类型和float类型之间也可以相互转换
int(3.14) # 结果为3
int(9.9) # 结果为9
float(100) # 结果为100.0
~~~ # 注意第二行中,9.9并没有转换为10,虽然这样更符合我们的常识,四舍五入嘛,但float在被转换为int的过程中,它的小数部分精度将被丢弃,只取整数部分。所以在将float转换为int的过程中,永远要小心。
~~~ # 那如果想要四舍五入的来转换呢,毕竟这样更符合我们的需求。Python给我们提供了一个内置函数:
round
round(9.9) # 结果为10
round(9.5) # 结果为10
round(9.49) # 结果为9
~~~ # 甚至,round函数让我们可以指定要保留小数点后几位:
~~~ # 保留小数点后两位,由于第三位是1,所以结果是3.14
round(3.1415926, 2)
~~~ # 保留小数点后三位,由于第四位是5,所以结果是3.142
round(3.1415926, 3)
~~~ # 布尔值也可以转换为int或者float
int(True) # 结果是1
int(False) # 结果是0
float(True) # 结果是1.0
float(False)# 结果是0.0
~~~ # 观察一下,恰好是数值类型转换为布尔类型的相反过程。
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
分类:
bdv027-python
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了