初识python02
类型转换
在python中,类型的转换,其实不是转换这个对象的本身,转换的是它的值的类型,实际上没有动这个对象的类型,实际上就是根据这个对象的值创建一个新的对象【应证了python是强类型,不可转变类型的说法】
a = True
print("a=",a)
print(type(a)) # <class 'bool'>
print("======================")
# 调用int函数来转换a的值的类型,注意:不会转换a的类型
int(a)
print(type(int(a))) # <class 'int'>
int()函数
该函数可以用来将其他对象转换类型,规则如下:
- 布尔值
值为True的布尔值转换为int类型后,该布尔值的值类型变成1
值为False的布尔值转换为int类型后,该布尔值的值类型变更成0 - 浮点数
浮点数的值转换成int之后,值直接被取整
f = 11.5
print(int(f)) # 11
- 字符串
如果是合法的整数字符串,则直接转换成对应的数值
str1 = "12"
print(int(str1)) # 12
如果是非法的整数字符串,则报错
str2 = "11.7"
print(int(str2)) # ValueError: invalid literal for int() with base 10: '11.7',哪怕你这里写的是11.0还是一样报错!
- none也不可以转换,不然也会报错
b = None
print(int(b)) # TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
float()函数
- 布尔值
值为True的转换后变成1.0,值为False的转换后变成0.0 - 整数
转换后在原本的值加上.0
d = 9
print(float(d)) # 9.0
- 字符串
允许字符串带着小数去转换成浮点数,这一点是与int()函数不同的
bool()
若是表示空性的【类似"",None,0】,则转为False,否则全部转为True
c = 5
print(bool(c)) #True