2.1 Python常用内置对象

 

第2章 运算符、表达式与内置对象

对象

Python 是一种面向对象的编程语言,在 Python 中一切都是对象。除了常见的整数、实数、复数、字符串、列表、元组、字典、集合外,还有 zip、map、enumerate、filter 等对象。函数和类也是对象。以下是 Python 中一些常用的内置对象类型。

2.1 Python 常用内置对象

数字对象

数字类型在 Python 中非常基础,支持整数、浮点数、复数等。示例如下:

  • 整数:1234
  • 浮点数:3.14
  • 复数:3+4j
字符串对象

字符串可以使用单引号、双引号、三引号作为定界符。例如:

  • 单引号:'swfu'
  • 双引号:"I'm a student"
  • 三引号:'''Python'''
  • 原始字符串:r'abc'
字节串对象

字节串用字母 b 引导,可以使用单引号、双引号、三引号作为定界符:

  • b'hello world'
列表对象

列表中的元素可以是任意类型,用方括号 [] 包含,元素之间用逗号分隔:

  • [1, 2, 3]
  • ['a', 'b', ['c', 2]]
字典对象

字典中的元素以键值对形式出现,用大括号 {} 包含,键和值之间用冒号分隔:

  • {1: 'food', 2: 'taste', 3: 'import'}
元组对象

元组中的元素用圆括号 () 包含,元素之间用逗号分隔:

  • (2, -5, 6)
  • (3,)
集合对象

集合中的元素用大括号 {} 包含,元素之间用逗号分隔,不允许重复:

  • {'a', 'b', 'c'}
布尔型和空类型
  • 布尔型:True, False
  • 空类型:None

表 2-1 常用的 Python 内置对象

对象类型类型名称示例
数字int, float, complex1234, 3.14, 1.3e5, 3+4j
字符串str'swfu', "I'm a student", r'abc'
字节串bytesb'hello world'
列表list[1, 2, 3], ['a', 'b', ['c', 2]]
字典dict{1: 'food', 2: 'taste', 3: 'import'}
元组tuple(2, -5, 6), (3,)
集合set, frozenset{'a', 'b', 'c'}
布尔型boolTrue, False
空类型NoneTypeNone

2.1.1 常量与变量

在 Python 中,常量和变量的概念有所不同。常量指的是不需要改变也不能改变的值,如一个数字 3 或一个元组 (1, 2, 3)。变量的值是可以变化的,且在 Python 中不需要事先声明变量名及其类型,直接赋值即可创建任意类型的变量。例如:

# 创建整型变量
x = 3
print(type(x))  # <class 'int'>

# 修改变量类型和值
x = 'Hello world.'
print(type(x))  # <class 'str'>

# 再次修改变量类型和值
x = [1, 2, 3]
print(type(x))  # <class 'list'>

Python 采用基于值的内存管理模式。赋值语句执行时,首先计算表达式的值,然后在内存中找到一个位置存放该值,最后创建变量并指向这个内存地址。

2.1.2 数字

Python 内置的数字类型包括整数、实数和复数。Python 支持任意大的数字,具体取决于内存大小。实数运算可能会有误差,因此在进行相等性测试时,应使用两者之差的绝对值是否足够小来判断。例如:

# 实数相减结果稍有偏差
print(0.4 - 0.1)  # 0.30000000000000004

# 判断两个实数是否相等
print(abs(0.4 - 0.1 - 0.3) < 1e-6)  # True

Python 内置支持复数类型及其运算,并且形式与数学上的复数完全一致。例如:

x = 3 + 4j
y = 5 + 6j
print(x + y)  # (8+10j)
print(x * y)  # (-9+38j)
print(abs(x))  # 5.0

Python 3.6.x 支持在数字中间位置使用单个下画线作为分隔来提高数字的可读性,例如:

print(1_000_000)  # 1000000
print(1_2_3_4)  # 1234

2.1.3 字符串与字节串

在 Python 中,没有字符常量和变量的概念,只有字符串类型。字符串可以用单引号、双引号、三引号作为定界符,并且支持嵌套。例如:

x = 'Hello world.'
y = "Python is a great language."
z = '''Tom said, "Let's go."'''
print(z)  # Tom said, "Let's go."

Python 3.x 支持 Unicode 编码的 str 类型字符串,同时也支持字节串类型 bytes。可以对 str 类型的字符串调用 encode() 方法进行编码得到 bytes 字节串,反之亦然。例如:

# 字符串类型
print(type('Hello world'))  # <class 'str'>

# 字节串类型
print(type(b'Hello world'))  # <class 'bytes'>

# 编码和解码
encoded_str = 'Hello world'.encode('utf-8')
print(encoded_str)  # b'Hello world'
decoded_str = encoded_str.decode('utf-8')
print(decoded_str)  # Hello world

2.1.4 列表、元组、字典、集合

列表、元组、字典和集合是 Python 中常用的序列类型。以下表格比较了这几种数据结构的区别。

比较项列表(list)元组(tuple)字典(dict)集合(set)
定界符方括号 []圆括号 ()大括号 {}大括号 {}
是否可变
是否有序
是否支持下标是(键作为下标)
元素分隔符逗号逗号逗号逗号
对元素形式的要求键:值
对元素值的要求键必须可哈希必须可哈希
元素是否可重复键不可重复,值可重复
元素查找速度非常快非常快
新增和删除元素速度尾部操作快,其他位置慢不允许

以下是创建和使用这些对象的示例:

# 创建列表对象
x_list = [1, 2, 3]

# 创建元组对象
x_tuple = (1, 2, 3)

# 创建字典对象
x_dict = {'a': 97, 'b': 98, 'c': 99}

# 创建集合对象
x_set = {1, 2, 3}

# 访问列表和元组元素
print(x_list[1])  # 2
print(x_tuple[1])  # 2

# 访问字典元素
print(x_dict['a'])  # 97

# 检查集合元素
print(3 in x_set)  # True

除了这些数据结构,Python 还提供了 mapzipfilterenumeratereversed 等大量迭代器对象。这些迭代器对象大多具有与 Python 序列相似的操作方法,不同之处在于迭代器对象具有惰性求值的特点,仅在需要时才给出新的元素,减少了对内存的占用。

以上是 Python 常用内置对象的概述。理解这些基本对象及其操作是学习 Python 的基础,熟练掌握后可以更高效地编写 Python 程序。

 

 

 

 

 

 

 

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏驰和徐策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值