快速回顾前一次内容,我们学习了以下内容:
- 创建并登陆了百度飞桨Paddle&Paddle Baidu AI Studio个人账号,该云计算代码测试与托管平台是免费的,24小时访问的。我们测试了“hello world”,以及分享项目的二维码。
- 下载并配置了Anaconda运行环境,运行jupyter notebook并进行了测试。在这个任务中,我们的python环境可以基于本地,而不是依赖互联网或其他服务机构。可以做到自主可控的开发。
- python的基本运算,我们可以把它当作科学计算器使用。该过程中,我们知道了赋值命令
- 对字符串的操作,我们知道了字符串赋值需要使用一对单引号或双引号,我们使用.split()对字符串进行分割。我们还了解到,python是一种胶水语言,.split()函数也可以叫做“方法”,使代码编更便利。
- 缩进是python表达代码执行顺序和层次的重要规则,大多数IDE会识别代码并自动缩进,也可以手动tab键缩进
- 三种程序结构:顺序、条件、循环。任何一个任务都可以用这三种结构表示。
- 我们用while和for循环练习了从1加到100的求和,这两种循环是常用的,语法上存在差别
- 我们用if语句判断某个数是否在一个数列中
- 我们练习了def自定义函数,了解了函数中的参数、传入参数、return返回结果
- 我们练习了lambda自定义函数,这种写法一旦熟悉后,比def更简洁,更具有自然语言阅读性
本次课主要学习列表、元组这两种数据结构
python默认有四种数据结构:
列表 List、
元组 Tuple、
字典 Dict、
集合 Set
统称为容器Container,顾名思义是不同的东西组合而成的,例如数值、字符串。
列表List 和元组Tuple
- 标记方式不同,列表以方括号标记,元组以圆括号标记
a = [3,6,[8]]
b = (2,5,9) ##只读
- 为了访问列表或元组里的元素,应当利用下标,在变量名后面使用方括号加数字进行索引。请注意,python以及大多数编程语言的索引是从0开始的,这与指针在内存地址中的偏移量计算有关,从0开始更简洁,可阅读该文章https://en.wikipedia.org/wiki/Zero-based_numbering
a = [3,6,8]
a[0]
a[1]
a[2]
a[3]
a[100]
a[0:0]
a[0:1]
a[0:2]
b = (2,5,9,5,7,2)
b[0]
b[2]
b[3]
b[0:1]
b[1:3]
b[1:]
- 列表可以包含多种类型的数据
c = [3,"Q"]
- 元组也可以
d = ("abc",[1,2,3],a)
列表和元组的区别:列表可以修改,元组不能修改
a = [1,2,3]
a[1] = 9
print(a)
b = (2,4,6)
b[0] = 5
print(b)
- 复制一个列表,测试下面两种写法
# 第一种
a = [1,2,3]
b = a
# 第二种
a = [1,2,3]
b = a[:]
- 用list函数生成列表
f = list('abcdefg')
f
- 用tuple函数生成元组,注意tuple的传入参数是什么数据结构?
#### *****
tuple([1,2,3,4,'a'])
tuple([2,5,1]) #### ****
##### ******
- 与列表和元组有关的函数,自行测试以下六个函数(最新版本python去掉了某些函数,感兴趣的同学可自行百度相关替代实现方法)
cmp(a,b) | 比较两个列表或元组内部的元素; python3取消了cmp函数,替代方案为: import operator operator.eq(a,b) |
---|---|
len(a) | 返回元素的数量 |
max(a) | 返回元素的最大值 |
min(a) | 返回元素的最小值 |
sum(a) | 返回元素的求和 |
sorted(a) | 对元素进行排序 |
- 我们已经知道,python是胶水语言,通过变量名加后缀形式进行某些操作,列表也有这类“方法”。请自行测试以下“方法”(最新版本python去掉了某些函数,感兴趣的同学可自行百度相关替代实现方法)
.append(1) | 将1添加到列表末尾 |
---|---|
.count(2) | 统计2在元素中出现的次数 |
.extend([3,4]) | 将列表[3,4]追加到列表的末尾 |
.index(5) | 找出5出现的索引位置 |
.insert(6,7) | 将7插入列表中索引为6的位置 |
.pop(8) | 移除列表中索引为8的元素 |
练习完成要求:
- 测试以上9个知识点的代码,可将例子中的参数进行替换
- 第8和第9个知识点请自行设计内容进行测试
- 每行、每段代码应当给出注释,说明这段代码什么目的,这行代码做了什么,代码注释以#号开始
- 在本地jupyter notebook完成,或者百度AI Studio完成,二选一
- 将完成的代码文件.ipynb上传至超星,文件命名方式为:学号_姓名_班级_week03练习.ipynb