大数据 爬虫Python AI SqlPython中文社区编程语言爱好者

Python_0基础:4.类型转换

2022-05-23  本文已影响0人  liang_820
函数 说明
int(x) 将x转换为一个整数
float(x) 将x转换为一个浮点数
str(x) 将x转换为字符串
bool(x) 将x转换为布尔值

强制类型转换为谁,就写什么方法


一、转换为整型

a = '123'
print(type(a))  # <class 'str'>
b = int(a)
print(b)    # 123
print(type(b))  # <class 'int'>

将float转换为整型,返回的是小数点前的数据

 a = 1.63  
 print(type(a))  # <class 'float'>  
 b = int(a)    
 print(b)    # 1  
 print(type(b))  # <class '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 字符串,都包含非法字符,不能被转换成整数,会报错!!!

二、转换为浮点数

当我们在爬虫的时候大部分获取的都是字符串数据类型

a = '12.34'  
print(type(a))  # <class 'str'>  
b = float(a)  
print(b)    # 12.34  
print(type(b))  # <class 'float'>  
a = 666  
print(type(a))  # <class 'int'>  
b = float(a)  
print(b)    # 666.0  
print(type(b))  # <class 'float'>

三、转换为字符串

强制类型转换为字符串的方法是:str()

a = 80
print(type(a))  # <class 'int'>
b = str(a)
print(b)    # 80
print(type(b))  # <class 'str'>
a = 1.2
print(type(a))  # <class 'float'>
b = str(a)
print(b)    # 1.2
print(type(b))  # <class 'str'>
a = True
print(type(a))  # <class 'bool'>
b = str(a)
print(b)    # True
print(type(b))  # <class 'str'>

四、转换为布尔型

如果对非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'>

将浮点数转换为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'>

只要字符串中有内容,那么在强制类型转换为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'>

只要列表中有数据,那么强制类型转换为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'>

只要元组中有数据,那么强制类型转换为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'>

只要字典中有内容,那么在强制类型转换为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'>
print(bool(0))      # False
print(bool(0.0))    # False
print(bool(''))     # False
print(bool(""))     # False
print(bool([]))     # False
print(bool(()))     # False
print(bool({}))     # False
上一篇 下一篇

猜你喜欢

热点阅读