【Python入门与进阶】类型转换与类型转换函数的本质

【转自】【Python入门与进阶】类型转换与类型转换函数的本质

0: 导语

》》a:字符串可以转数字吗?使用类型转换函数
》》b:类型转换函数本质上在做什么?

1:类型转换

比如,一个字符串 ‘1234’ 转在 数字 1234

定义:类型转换,将一个类型的对象转换为另一个其他类型的对象

2:类型转换四个函数

int() float() str() bool()

》》 int()

可以用来将其他的对象转换为整型
规则:
布尔值:True -> 1 False -> 0
浮点数:直接取整,省略小数点后的内容
字符串:合法的整数字符串,直接转换为对应的数字

只有一点需要大家注意 比如 ‘hello’ 转 数字 ,应该是哪个?

【Python入门与进阶】类型转换与类型转换函数的本质

如果不是一个合法的整数字符串,则报错 ValueError: invalid literal for int() with base 10: ‘11.5’
对于其他不可转换为整型的对象,直接抛出异常 ValueError

(咱们学东西,以点带面,举一反三,所以以下自学)

》》float()

和 int()基本一致,不同的是它会将对象转换为浮点数

【Python入门与进阶】类型转换与类型转换函数的本质

》》 str()

可以将对象转换为字符串

【Python入门与进阶】类型转换与类型转换函数的本质

(看出来没有,加引号)

》》 bool()

可以将对象转换为布尔值,任何对象都可以转换为布尔值

规则:对于所有表示空的对象都会转换为False,其余的转换为True

( 哪些表示的空:0 、 None 、 。。。)

3:类型转换的本质

转换函数做了什么事?

比如:float()函数

【Python入门与进阶】类型转换与类型转换函数的本质

两个红框的id是一样的。所以10本身没有任何改变。
a在 1,2两次的id不同。说明a里面前后存的是不同对象的 id

所以。

类型转换函数只是拿原对象的值得到一个新类型的新对象,然后返回。