|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

 

 

posted on   yanqi_vip  阅读(23)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示