python数据类型、类型检查与转换详解

本文讲解了Python中的变量概念,如何定义不同类型如整型、布尔值和字符串,以及对象的构成——id、type和value。讨论了对象与变量的关系,类型检查的方法,布尔值和None值的特性,以及类型转换的基本操作。
摘要由CSDN通过智能技术生成

变量和标识符

数据类型

数据类型指的就是变量的值得类型,也就是可以为变量赋哪些值 
数值
整型                            int
布尔值                          bool
浮点型                          float
复数
字符串                           str
空值

类型检查

对象(object)

- Python是一门面向对象的语言
- 一切皆对象!
- 程序运行当中,所有的数据都是存储到内存当中然后再运行的!
- 对象就是内存中专门用来存储指定数据的一块区域
- 对象实际上就是一个容器,专门用来存储数据
- 像我们之前学习的数值、字符串、布尔值、None都是对象
- 参考 图1

对象的结构

- 每个对象中都要保存三种数据
    - id(标识)
        > id用来标识对象的唯一性,每一个对象都有唯一的id
        > 对象的id就相当于人的身份证号一样
        > 可以通过id()函数来查看对象的id
        > id是由解析器生成的,在CPython中,id就是对象的内存地址
        > 对象一旦创建,则它的id永远不能再改变

    - type(类型)
        > 类型用来标识当前对象所属的类型
        > 比如:int str float bool 。。。
        > 类型决定了对象有哪些功能
        > 通过type()函数来查看对象的类型
        > Python是一门强类型的语言,对象一旦创建类型便不能修改


    - value(值)
        > 值就是对象中存储的具体的数据
        > 对于有些对象值是可以改变的
        > 对象分成两大类,可变对象 不可变对象
            可变对象的值可以改变
            不可变对象的值不能改变,之前学习的对象都是不可变对象
    - 参考 图2

练习:尝试自己画一下对象的内存结构。  

变量和对象

- 对象并没有直接存储到变量中,在Python中变量更像是给对象起了一个别名
- 变量中存储的不是对象的值,而是对象的id(内存地址),
    当我们使用变量时,实际上就是在通过对象id在查找对象
- 变量中保存的对象,只有在为变量重新赋值时才会改变
- 变量和变量之间是相互独立的,修改一个变量不会影响另一个变量

- 参考 图3

类型转换

- 所谓的类型转换,将一个类型的对象转换为其他对象
- 类型转换不是改变对象本身的类型,而是根据当前对象的值创建一个新对象

布尔值(bool)

布尔值主要用来做逻辑判断
布尔值一共有两个 True 和 False
True表示真 False表示假

a = True
a = False
# print('a =',a)

布尔值实际上也属于整型,True就相当于1,False就相当于0

print(1 + False)
None(空值)

None专门用来表示不存在

b = None
print(b)

类型检查

通过类型检查,可以检查只能值(变量)的类型

a = 123 # 数值
b = '123' # 字符串

# print('a =',a)
# print('b =',b)
type()用来检查值的类型

该函数会将检查的结果作为返回值返回,可以通过变量来接收函数的返回值

c = type('123')
c = type(a)
# print(type(b))
print(type(1)) # <class 'int'>
print(type(1.5)) # <class 'float'>
print(type(True)) # <class 'bool'>
print(type('hello'))  # <class 'str'>
print(type(None)) # <class 'NoneType'>

类型转换四个函数 int() float() str() bool()

int() 可以用来将其他的对象转换为整型

规则:
布尔值:True -> 1 False -> 0
浮点数:直接取整,省略小数点后的内容
字符串:合法的整数字符串,直接转换为对应的数字
如果不是一个合法的整数字符串,则报错 ValueError: invalid literal for int() with base 10: ‘11.5’
对于其他不可转换为整型的对象,直接抛出异常 ValueError

float() 和 int()基本一致,不同的是它会将对象转换为浮点数
str() 可以将对象转换为字符串
#  True -> 'True'
#  False -> 'False'
#  123 -> '123' 
#  。。。
bool() 可以将对象转换为布尔值,任何对象都可以转换为布尔值

规则:对于所有表示空性的对象都会转换为False,其余的转换为True
哪些表示的空性:0 、 None 、 ‘’ 。。。

a = True 
调用int()来将a转换为整型

int()函数不会对原来的变量产生影响,他是对象转换为指定的类型并将其作为返回值返回
如果希望修改原来的变量,则需要对变量进行重新赋值

a = int(a)

a = False
a = int(a)

a = '123'
a = int(a)

a = 11.6
a = int(a)

a = '11.5'
# a = int(a)

a = None
# a = int(a)

a = 1
a = float(a)

a = False
a = float(a)

a = 123
a = str(a)

a = None
a = bool(a)

print('a =',a)
print('a的类型是',type(a))
# b = 456
# print('hello'+str(b))

笔记为自己总结
来源为:尚硅谷李老师的课

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值