【python学习】python对象类型和核心数据类型
中国史之【仓颉造字】:
相传为黄帝时期造字的左史官,见鸟兽的足迹受启发,分类别异,加以搜集、整理和使用,在汉字创造的过程中起了重要作用,被尊为“造字圣人”。
-来源:全历史APP
今天讲python的对象类型以及核心数据。有需要的也可以直接去我的github查看全部笔记。

俗话说:“好记性不如烂笔头”,多写写多记记,总不会错。多一些不为什么的坚持,少一些功利主义的追求。
对于环境的配置,可以参考:手把手实战配置深度学习环境(win10版)以及手把手实战配置深度学习环境(Ubuntu20.04版)。
1、前言
python当中一切皆对象(数据也是对象),所有都是由对象来展开,而对象就是由类的实例化而来。而有的类是内置的类,如整数、浮点数、字符串都是由内置类实例化而来。
另外,用户可以自己定义类,就是所谓的面向对象编程(一般都是使用内置类型,因为性能更优)。
类就是数据+方法。类的实例化只是数据不同,而使用的方法是一致的。比如3+5,其中3就是一个整型类的实例化,调用3.__add__(5)这个方法。
补充一下获取帮助的函数:
- 获取对象支持使用的属性和方法:dir(list)
- 某方法的具体使用帮助:help(list.pop)
- 获取对象的文档字符串:print(obj.__doc__)
2、python对象相关术语
- 程序中存储的所有数据都是对象
- 每个对象都有一个身份(id,即对象在内存中的地址)、一个类型(type)和一个值
- 对象的类型也叫类别,用于决定对象的内部表示及支持的方法和操作(如整数可以加减乘除运算,而字符串的加法是相连,所以python是强类型语言,相同类型才能操作)
- 创建特定类型的对象时,有时也将该对象称为该类型的实例(也就是内置函数的实例化),所以class是自定义类型,type是内置类型
- 实例被创建后,其身份和类型就不可改变。若对象值可修改,则称为可变对象(如列表、字典),反之为不可变对象(如数值、字符串、元组)
- 如果某个对象包含对其他对象的引用,则将其称为容器(如列表)
- 大多数对象都拥有大量特有的数据属性和方法。所有的对象都是由类实例化而来的,在类实例化成对象时,可以为内部的某些变量赋值。那么,这个对象内部可用的变量名称就叫做对象的属性。使用“.”来访问属性和方法
num = 5 # 这就是一个整型类的实例化成对象
print(num.real) # 使用“.”来访问对象的属性和方法
>>> 5
3、两个对象比较
- 值比较:对象中的数据是否相同
- 身份比较:两个变量名引用的是否为同一对象
- 类型比较:两个对象的类型是否相同
num1 = 5
num2 = 5
print(num1 == num2) # 但未必证明是同一对象
>>> True
print(num1 is num2) # 这才是同一对象
>>> True
print(type(num1) is type(num2))
>>> True
print(id(num1) == id(num2))
>>> True
4、python核心数据类型
- 数字:int, long, float, complex, bool
- 字符串:str, bytes
- 列表:list
- 字典:dict
- 元组:tuple
- 文件:file
- 其他类型:集合(set), frozenset, 类类型, None
- 其他文件类工具:pipes, fifos, sockets
5、显式/强制类型转换
- str(), repr()(精确值)或format():将非字符型数据转换为字符串
- int():转为整数
- float():转为浮点数
- list(s):将字符串s转为列表
- tuple(s):将字符串s转换为元组
- set(s):将字符串s转换为集合
- frozenset(s):将字符串s转换为不可变集合
- dict(d):创建字典,其中d必须是(key, value)的元组序列
- chr(x):将整数转为对应的ASCII码
- ord(x):将ASCII码转换为整数
- hex(x):将整数转为十六进制字符串
- bin(x):将整数转为二进制字符串
- oct(x): 将整数转为八进制字符串
num1 = 5.61
print(type(num1))
>>> <class 'float'>num1 = str(num1)
print(type(num1))
>>> <class 'str'>num2 = 3.14
print(type(num2))
>>> <class 'float'>num2 = repr(num2)
print(type(num2))
>>> <class 'str'>str1 = '45'
print(type(str1))
>>> <class 'str'>num3 = int(str1)
print(type(num3))
>>> <class 'int'>num4 = float(str1)
print(type(num4))
>>> <class 'float'>
str2 = "hello world"
l1 = list(str2)
print(l1)
>>> ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']str3 = str(l1) # 把整个列表当做一个串来用
print(str3)
>>> ['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']print(type(str3))
>>> <class 'str'>t1 = tuple(str2)
print(t1)
>>> ('h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd')s1 = set(str2)
print(s1)
>>> {'e', 'h', 'l', 'o', 'd', 'w', 'r', ' '}l3 = [('a', 1), ('b', 11), ('c', 45)]
d1 = dict(l3)
print(d1)
>>> {'a': 1, 'b': 11, 'c': 45}num5 = 49
c1 = chr(num5)
print(type(c1))
>>> <class 'str'>print(c1) # 因为49对应的ASCII码就是1
>>> 1s1 = '3'
asc1 = ord(s1)
print(asc1) # 因为ASCII码是3的对应整数是51
>>> 51num6 = 12
a = hex(num6)
b = bin(num6)
c = oct(num6)
print(a, b, c)
>>> 0xc 0b1100 0o14
注:>>>表示output。
【声明】:学习笔记基于互联网上各种学习资源的个人整理。
以上是本期内容,下期介绍python的数字类型和字符串类型。
我叫小保,一名计算机视觉爱好者、学习者、追随者,欢迎关注我一起学习。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
