一、类型检测
1、基本介绍
编号 | 函数 | 说明 |
---|
1 | type() | 返回检测对象的类型 |
2 | isinstance() | 判断一个检测对象是否是一个已知的类型 |
2、演示
- type 函数
x = 5print(type(x))y = "Hello"print(type(y))
# 输出结果<class 'int'>
<class 'str'>
- isinstance 函数
x = 5print(isinstance(x, int))
print(isinstance(x, str))y = "Hello"print(isinstance(y, int))
print(isinstance(y, str))
# 输出结果True
False
False
True
二、类型转换
1、基本介绍
- 不同的类型之间,在特定的情况下可以相互转换,例如,字符串转数字、数字转字符串等,Python 提供了内置函数来实现这种转换
编号 | 函数 | 说明 |
---|
1 | str() | 将任何类型转换为字符串 |
2 | int() | 将字符串或浮点数转换为整数 |
3 | float() | 将字符串或整数转换为浮点数 |
4 | bool() | 将任何类型转换为布尔值 |
2、演示
str()
,将任何类型转换为字符串
str1 = str(123)print(type(str1), str1)str2 = str(123.456)print(type(str2), str2)str3 = str(True)print(type(str3), str3)
# 输出结果<class 'int'> 10
<class 'float'> 1.23
<class 'str'> 123
<class 'str'> 123.456
<class 'str'> True
int()
,将字符串或浮点数转换为整数
int_num1 = int("10")print(type(int_num1), int_num1)int_num2 = int(1.23)print(type(int_num2), int_num2)
# 输出结果<class 'int'> 10
<class 'int'> 1
float()
,将字符串或整数转换为浮点数
float_num1 = float("10")print(type(float_num1), float_num1)float_num2 = float("10.5")print(type(float_num2), float_num2)float_num3 = float(1)print(type(float_num3), float_num3)
# 输出结果<class 'float'> 10.0
<class 'float'> 10.5
<class 'float'> 1.0
bool()
,将任何类型转换为布尔值
b1 = bool(1)print(type(b1), b1)b2 = bool(0)print(type(b2), b2)b3 = bool(1.0)print(type(b3), b3)b4 = bool(0.0)print(type(b4), b4)b5 = bool("Hello World")print(type(b5), b5)b6 = bool("")print(type(b6), b6)
# 输出结果<class 'bool'> True
<class 'bool'> False
<class 'bool'> True
<class 'bool'> False
<class 'bool'> True
<class 'bool'> False
3、类型转换排雷
- 字符串必须是纯数字字符串才可以转换成数字(整数、浮点数)
num = int("10a")
# 输出结果ValueError: invalid literal for int() with base 10: '10a'
num = float("10.a")
# 输出结果ValueError: could not convert string to float: '10.a'
int()
不能将浮点数字符串转换成整数
num = int("10.1")
# 输出结果ValueError: invalid literal for int() with base 10: '10.1'