我现在情况的大致介绍,现在是大二结束的暑假,我学的是计算机科学与技术专业,已经学了C、C++(对象学得不是很好)、python、数据结构(C++)、数据库等课程,准备在暑假用python再学一遍数据结构,所以简单的python基础就不会再学一遍,主要是查缺补漏、在python中实现数据结构及简单算法。
一、学习工具的简单介绍
- 代码工具:PyCharm 2021.1.3 (Community Edition)
- 参考书籍:数据结构与算法(python语言实现)
二、开始学习(复习)
2.1 python对象
python的内置类,整数类int,浮点类float,字符串类str,布尔类bool,列表类list,元组类tuple,字典类dict,集合色set。(以前不知道在python里面的数据类型大多数是类。)
2.2 python常用的内置函数
这里只是简单列举,以后用的时候详细说明
abs() :返回数字的绝对值
ord()/chr():字符及其数字编码
slice() :实现切片对象
range():返回一个可迭代对象(类型是对象),常与list连用,生成列表
sorted() :对所有可迭代的对象进行排序操作
format :用来格式化字符串
eval() :用来执行一个字符串表达式,并返回表达式的值
map():根据提供的函数对指定序列做映射
type() :返回对象的类型
enumerate() :用于将一个可遍历的数据对象(如列表)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中
round():返回浮点数 x 的四舍五入值,准确的说保留值将保留到离上一位更近的一端(四舍六入),精度不高
zip():用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存。
不是很常见
help():用于查看函数或模块用途的详细说明
next() :返回迭代器的下一个项目
id() :用于获取对象的内存地址
exec :执行储存在字符串或文件中的 Python 语句,相比于 eval,exec可以执行更复杂的 Python 代码。
用map和zip函数举个例子(常见的要求从输入得到两个数字用空格隔开):
n, m = map(int, input().split())
a = [1, 2, 3]
b = [4, 5, 6]
c = [4, 5, 6, 7, 8]
zipped = zip(a, b) # 返回一个对象
print(zipped) # <zip object at 0x0000023F9859A180>
print(list(zipped)) # [(1, 4), (2, 5), (3, 6)]
print(list(zip(a, c))) # 元素个数与最短的列表一致[(1, 4), (2, 5), (3, 6)]
a1, a2 = zip(*zip(a, b)) # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
print(list(a1))
print(list(a2))
2.3 迭代器和生成器
2.3.1 迭代是是访问集合元素的一种方式。 **迭代器只能往前不会后退。**迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束。迭代器有两个基本的方法:iter() —— 创建迭代器和 next() —— 使用迭代器。
创建迭代器:
import sys # 引入 sys 模块
list1 = [1, 2, 3, 4]
it = iter(list1) # 创建迭代器对象
while True:
try:
print(next(it))
except StopIteration: #StopIteration 异常用于标识迭代的完成,防止出现无限循环的情况
sys.exit()
2.3.2生成器
在 Python 中,使用了 yield 的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只能用于迭代操作,简单理解生成器就是一个迭代器。在调用生成器运行的过程中,每次遇到 yield 时函数会暂停并保存当前所有的运行信息,返回 yield 的值, 并在下一次执行 next() 方法时从当前位置继续运行。调用一个生成器函数,返回的是一个迭代器对象。
import sys
def fibonacci(n): # 生成器函数 - 斐波那契
a, b, counter = 0, 1, 0
while True:
if counter > n:
return
yield a
a, b = b, a + b
counter += 1
f = fibonacci(10) # f 是一个迭代器,由生成器返回生成
while True:
try:
print(next(f), end=" ")
except StopIteration:
sys.exit()
2.4 文件读写
2.4.1 打开并读入文件,如
f = open('sample.txt', 'r',encoding='utf-8')
f1 = f.read()
print(f1)
2.4.2 打开并写文件,如
f2 = open('sample.txt', 'w', encoding='utf-8')
f2.write('zhn love gcd')
2.5 部分截图