函数 | 说明 |
---|---|
int(x) | 将x转换为一个整数 |
float(x) | 将x转换为一个浮点数 |
str(x) | 将x转换为字符串 |
bool(x) | 将x转换为布尔值 |
强制类型转换为谁,就写什么方法
一、转换为整型
- str - - - > int
a = '123'
print(type(a)) # <class 'str'>
b = int(a)
print(b) # 123
print(type(b)) # <class 'int'>
- float - - - > int
将float转换为整型,返回的是小数点前的数据
a = 1.63
print(type(a)) # <class 'float'>
b = int(a)
print(b) # 1
print(type(b)) # <class 'int'>
- bool - - - > int
True ---> 1 False ---> 0
a = True
print(type(a)) # <class 'bool'>
b = int(a)
print(b) # 1
print(type(b)) # <class 'int'>
- 注意:
# 以下两种情况会转换失败
a = '123.456'
print(type(a)) # <class 'str'>
b = int(a)
print(type(b))
a = '12ab'
print(type(a)) # <class 'str'>
b = int(a)
print(type(b))
# 123.456 和 12ab 字符串,都包含非法字符,不能被转换成整数,会报错!!!
二、转换为浮点数
当我们在爬虫的时候大部分获取的都是字符串数据类型
- str - - - > float
a = '12.34'
print(type(a)) # <class 'str'>
b = float(a)
print(b) # 12.34
print(type(b)) # <class 'float'>
- int - - - > float
a = 666
print(type(a)) # <class 'int'>
b = float(a)
print(b) # 666.0
print(type(b)) # <class 'float'>
三、转换为字符串
强制类型转换为字符串的方法是:str()
- int - - - > str
a = 80
print(type(a)) # <class 'int'>
b = str(a)
print(b) # 80
print(type(b)) # <class 'str'>
- float - - - > str
a = 1.2
print(type(a)) # <class 'float'>
b = str(a)
print(b) # 1.2
print(type(b)) # <class 'str'>
- bool - - - > str
a = True
print(type(a)) # <class 'bool'>
b = str(a)
print(b) # True
print(type(b)) # <class 'str'>
四、转换为布尔型
- int - - - > bool
如果对非0的整数(int 包含整数和负数)进行bool类型转换,那么就全都是True
a = 1
print(type(a)) # <class 'int'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
a = 2
print(type(a)) # <class 'int'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
a = -1
print(type(a)) # <class 'int'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
在整数的范围内,0强制类型转换为bool类型的结果是False
a = 0
print(type(a)) # <class 'int'>
b = bool(a)
print(b) # False
print(type(b)) # <class 'bool'>
- float - - - > bool
将浮点数转换为bool类型的数据的时候,正的浮点数和负的浮点数的结果是True
a = 1.0
print(type(a)) # <class 'float'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
a = -1.0
print(type(a)) # <class 'float'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
如果是0.0,那么结果是False
a = 0.0
print(type(a)) # <class 'float'>
b = bool(a)
print(b) # False
print(type(b)) # <class 'bool'>
- str - - - > bool
只要字符串中有内容,那么在强制类型转换为bool的时候,那么就返回True
a = '网红截聊天的图'
print(type(a)) # <class 'str'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
a = ' '
print(type(a)) # <class 'str'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
如果字符串中什么都没有的情况下,那么返回的就是False
a = ''
print(type(a)) # <class 'str'>
b = bool(a)
print(b) # False
print(type(b)) # <class 'bool'>
- list - - - > bool
只要列表中有数据,那么强制类型转换为bool的时候,就返回True
a = ['吴亦凡', '鹿晗', '张艺兴', '黄子韬']
print(type(a)) # <class 'list'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
如果列表中什么数据都没有的情况下,那么返回的就是False
a = []
print(type(a)) # <class 'list'>
b = bool(a)
print(b) # False
print(type(b)) # <class 'bool'>
- tuple - - - > bool
只要元组中有数据,那么强制类型转换为bool的时候,就会返回True
a = ('李逵', '林冲', '卢俊义', '武松', '潘金莲')
print(type(a)) # <class 'tuple'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
如果元组中没有数据的话,那么就返回False
a = ()
print(type(a)) # <class 'tuple'>
b = bool(a)
print(b) # False
print(type(b)) # <class 'bool'>
- dict - - - > bool
只要字典中有内容,那么在强制类型转换为bool的时候,就会返回True
a = {'name': '武大郎'}
print(type(a)) # <class 'dict'>
b = bool(a)
print(b) # True
print(type(b)) # <class 'bool'>
如果在字典中没有数据的话,那么返回的就是False
a = {}
print(type(a)) # <class 'dict'>
b = bool(a)
print(b) # False
print(type(b)) # <class 'bool'>
- 什么情况是False???
print(bool(0)) # False
print(bool(0.0)) # False
print(bool('')) # False
print(bool("")) # False
print(bool([])) # False
print(bool(())) # False
print(bool({})) # False
网友评论