系列文章目录
Day01 软件测试基础总结
Day02 测试用例知识点总结(上)
Day03 测试用例知识点总结(下)
Day04 禅道-从安装到卸载
Day05 MysqL的基础使用
Day06 MysqL知识点总结
Day08 redis的基础知识
Day08 VMware的安装、Linux系统安装和Linux基础命令
Day09 Linux常用命令总结
Day10 Linux环境部署和项目构建
Day11 shell脚本基础知识
Day12 接口和协议
Day13 Postman的使用
Day13 Windows环境下的JDK安装与Tomcat的启动
Day14 jenkins部署
Day15 jenkins的简单使用
Day16 charles的基本使用
Day17 考试
Day18 考试
Day19 fiddler的简单使用
Day20 Python基础
Day21 python 语句基础
Day22 Python数据类型(上)
Day23 Python数据类型(下)
Day24 Python函数
Day25 Python的文件操作和异常处理
Day26 Python面向对象
Day27 Python的部分算法
目录
前言
本章节是Python学习的最后一天,简单介绍推导式与递归,最后是Python算法中的快速排序、冒泡排序和选择排序。
一、推导式
Python 推导式是一种独特的数据处理方式,可以从一个数据序列构建另一个新的数据序列的结构体。
作用:用一个表达式创建一个有规则的列表或者控制一个有规律列表。
推导式也称生成式。
Python 支持各种数据结构的推导式:
- 列表(list)推导式
- 字典(dict)推导式
- 集合(set)推导式
- 元组(tuple)推导式
1.列表推导式
创建0~10的列表
list=[i for i in range(11)]
print(list)
'''
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
'''
创建0~10中偶数的列表
list=[i for i in range(0,11,2)]
print(list)
'''
[0, 2, 4, 6, 8, 10]
'''
list=[i for i in range(11) if i%2==0]
print(list)
'''
[0, 2, 4, 6, 8, 10]
'''
使用多个for循环创建列表[(1,0),(1,1),(1,2),(2,0),(2,1),(2,2)]
list=[(i,j) for i in range(1,3) for j in range(3)]
print(list)
'''
[(1, 0), (1, 1), (1, 2), (2, 0), (2, 1), (2, 2)]
'''
2.字典推导式
创建一个字典:字典key是1-5数字,value是这个数字的2次方
dict1 = {i:i*2 for i in range(1,5)}
print(dict1)
'''
{1: 2, 2: 4, 3: 6, 4: 8}
'''
将两个列表组成字典,len()中使用较短的列表
list11=["name","age","sex"]
list22=["jack","30","男"]
dict1 = {list11[i]:list22[i] for i in range(len(list22))}
print(dict1)
'''
{'name': 'jack', 'age': '30', 'sex': '男'}
'''
3.集合推导式
创建一个集合,数据为下发列表2次方
结合元素唯一,重复元素删除
list1=[1,1,2,3]
set1={i**2 for i in list1}
print(set1)
'''
{1, 4, 9}
'''
4.元组推导式
元组推导式和列表推导式的用法也完全相同,只是元组推导式是用 () 圆括号将各部分括起来,而列表推导式用的是中括号 [],另外元组推导式返回的结果是一个生成器对象。
tu=(i for i in range(11))
print(tu) #返回的是生成器对象
print(tuple(tu)) # 使用 tuple() 函数,可以直接将生成器对象转换成元组
'''
<generator object <genexpr> at 0x000001FD01969C80>
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
'''
二、递归
递归是一种编程思想,简单来说就是自己调自己,递归需要出口,不然会无限循环。
#累加
def sum(n):
if n==1: #if是出口
return 1
return n+sum(n-1) #自己调用自己
print(sum(100))
'''
5050
'''
三、算法
1.快速排序
步骤:
1.在列表中随机找到一个基准(base,一般是索引为0的那个数)
2.使用base与其他数挨个比较,比base小的放left列表中,比base大的放在right列表中
3.将左右列表递归循环,最后拼接列表返回
def quicksort(list):
if len(list)<2:
return list
else:
base=list[0]
left=[i for i in list if i<base]
right=[i for i in list if i>base]
return quicksort(left)+[base]+quicksort(right)
li=[23,45,24,67,42,88,32,78,76,21,33,4,12,78,42]
print(quicksort(li))
'''
[4, 12, 21, 23, 24, 32, 33, 42, 45, 67, 76, 78, 88]
'''
2.冒泡排序
步骤:
两层for循环嵌套,外层控制排多少遍(外层列表长-1是因为次算法最多这么多次就能排完),内层控制排一趟列表的每一个元素(内层列表长-1是因为,比较时有使用i+1元素,会出现indexError)
def bubblesort(list):
for j in range(len(list)-1):
for i in range(len(list)-1):
if list[i+1]<list[i]:
list[i+1],list[i]=list[i],list[i+1]
return list
li=[23,45,24,67,42,88,32,78,76,21,33,4,12,78,42]
print(bubblesort(li))
'''
[4, 12, 21, 23, 24, 32, 33, 42, 42, 45, 67, 76, 78, 78, 88]
'''
3.选择排序
- 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置
- 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。
- 重复第二步,直到所有元素均排序完毕。
def selectionSort(list):
for i in range(len(list) - 1):
minIndex = i
for j in range(i + 1, len(list)):
if list[j] < list[minIndex]:
minIndex = j
if i != minIndex:
list[i], list[minIndex] = list[minIndex], list[i]
return list
li=[23,45,24,67,42,88,32,78,76,21,33,4,12,78,42]
print(selectionSort(li))
'''
[4, 12, 21, 23, 24, 32, 33, 42, 42, 45, 67, 76, 78, 78, 88]
'''
总结
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。