学习内容
数字
长整型(Long Integer): 在Python中,整数没有大小限制,但是可以用大写或小写的
L
来表示长整型,尽管这不是Python 3推荐的做法。复数(Complex Numbers):
- 由实数部分和虚数部分组成,形如
real+imagj
。 - 虚数部分必须有
j
或J
作为后缀。
- 由实数部分和虚数部分组成,形如
复数属性:
num.real
: 返回复数的实数部分。num.imag
: 返回复数的虚数部分。num.conjugate()
: 返回复数的共轭。
混合模式优先级: 当不同类型的数值进行运算时,Python会根据这个优先级进行类型转换,从
int
到long
到float
再到complex
。幂运算(Exponentiation):
- 使用
**
运算符进行幂运算。 - 优先级介于一元运算符和二元运算符之间。
- 使用
位操作符(Bitwise Operators):
- 只适用于整数类型。
- 包括取反
~
,与&
,或|
,异或^
,左移<<
,右移>>
。
负数的位操作: 负数在位操作中被视为其正数的二进制补码。
位移操作:
num << N
相当于num * (2 ** N)
,而num >> N
相当于num / (2 ** N)
。进制转换:
int(obj, base)
: 将obj
从base
进制转换为整数。
数值运算内建函数:
abs(num)
: 返回num
的绝对值。coerce(num1, num2)
: 将num1
和num2
转换为同一类型,返回一个元组。divmod(num1, num2)
: 返回两个数相除的商和余数的元组。pow(num1, num2, mod=1)
: 返回num1
的num2
次方,如果提供了mod
,则再对结果取模。round(flt, ndig=1)
: 对浮点数flt
四舍五入到ndig
位小数。
仅适用于整型的内建函数:
hex(num)
: 将num
转换为十六进制字符串。oct(num)
: 将num
转换为八进制字符串。chr(num)
: 返回num
对应的ASCII字符。
布尔值:
True
和False
在Python中是大小写敏感的,分别对应数值1
和0
。
这些概念是Python编程中数值操作的基础,涵盖了从基本的算术运算到更复杂的数值类型和函数。
字符串、列表和元组
字符串(String):
- 字符串是不可变的,意味着一旦创建就不能更改。要“改变”字符串,需要创建一个新的字符串。
- 可以使用三引号(
'''
或"""
)定义多行字符串,包含换行符和制表符等特殊字符。
ASCII码:
- ASCII码使用7位二进制数表示英文字符,范围是32到126。
Unicode:
- Unicode使用一个或多个字节表示字符,可以表示超过90000个字符,突破了ASCII的限制。
字符串类型:
- ASCII字符串:
StringType
类型。 - Unicode字符串:
UnicodeType
类型。
- ASCII字符串:
默认编码:
- Python 3默认所有字符串字面量都是Unicode编码,不需要
u
前缀。
- Python 3默认所有字符串字面量都是Unicode编码,不需要
编码和解码:
codec
是编解码器的缩写。- Unicode编码规则:在程序中使用字符串时,如果需要使用Unicode,前面加上
u
。 - 使用
unicode()
而不是str()
函数。 - 避免使用过时的
string
模块。 - 只在写入或读取文件、数据库或网络时进行编码和解码。
Python标准库:
- 大部分模块兼容Unicode,除了
pickle
模块只支持ASCII。
- 大部分模块兼容Unicode,除了
字符串的特性:
- Python字符串不是以NUL或
'\0'
结束的,它们只包含定义的字符。
- Python字符串不是以NUL或
方法和返回值:
- 有些方法可以改变对象的值,但它们没有返回值,例如
sort()
和extend()
。
- 有些方法可以改变对象的值,但它们没有返回值,例如
列表(List)和元组(Tuple):
- 列表和元组是相似的序列类型,但它们在某些情况下各有优势。
- 列表是可变的,可以修改;元组是不可变的,一旦创建就不能更改。
list()
和tuple()
函数可以用来在列表和元组之间进行转换。
映射和集合类型
字典(Dictionary):
- 字典是Python中唯一的映射类型,使用键值对存储数据。
- 键必须是不可变类型,如整数、浮点数、字符串或元组,因为它们必须是可哈希的。
- 可以使用大括号
{}
或dict()
创建字典。 - 示例:
dict1 = {'name': 'earth', 'port': 80}
。
字典的内建方法:
dict.clear()
: 删除字典中的所有元素。dict.fromkeys(seq, val=None)
: 返回一个新字典,seq
中的元素作为键,val
作为所有键的初始值。dict.get(key, default=None)
: 返回字典中key
对应的值,如果key
不存在则返回default
。dict.has_key(key)
: 检查字典中是否存在key
,这是Python 2的写法,在Python 3中应使用key in dict
。dict.items()
: 返回一个包含所有键值对的视图。dict.keys()
: 返回字典中所有键的视图。dict.values()
: 返回字典中所有值的视图。dict.update(dict2)
: 将dict2
中的键值对更新到字典中。
集合类型:
- 集合用于存储无序的唯一元素。
- 有两种类型的集合:可变集合(
set
)和不可变集合(frozenset
)。
创建集合:
- 使用
set()
创建可变集合。 - 使用
frozenset()
创建不可变集合。
- 使用
适用于所有集合类型的内建方法:
s.issubset(t)
: 判断s
是否是t
的子集。s.issuperset(t)
: 判断s
是否是t
的超集。s.union(t)
: 返回s
和t
的并集。s.intersection(t)
: 返回s
和t
的交集。s.difference(t)
: 返回s
中存在而t
中不存在的元素组成的集合。
集合操作符:
- Python 3.3+ 引入了集合的并集、交集、差集等操作符,如
|
(并集)、&
(交集)、-
(差集)。
- Python 3.3+ 引入了集合的并集、交集、差集等操作符,如
集合的应用:
- 集合非常适合用于成员资格测试和去除重复项。
注意:
- 字典和集合都是基于哈希表实现的,因此它们的元素都是唯一的。
- 字典的键必须是可哈希的,而集合的元素也必须是可哈希的。
这些类型在Python中非常灵活和强大,常用于各种编程任务,包括数据存储、查找、去重等。
了解差不多后,最好要实践才可以哦,拜拜了大家