今日主讲递归和序列类型及操作
递归
递归的定义:函数定义中调用函数自身的方式(数学归纳法思维的编程体现)
如两个关键特征:
链条:计算过程中存在递归链条
基例:存在一个或多个不需要再次递归的基例
下面通过科赫雪花来掌握递归
#draw.py
import turtle
def koch(size, n):
if n == 0:
turtle.fd(size)
else:
for angle in [0, 60, -120, 60]:
turtle.left(angle)
koch(size/3, n-1)#递归
def main():
turtle.speed(30)
turtle.setup(1000,700,100,100)
turtle.penup()
#以下是小编为了使图形更好看,各位添加的
turtle.goto(20,30)
turtle.begin_fill()
turtle.pendown()
turtle.circle(150,360)
turtle.fillcolor('yellow')
turtle.end_fill()
turtle.penup()
turtle.goto(20,30)
turtle.begin_fill()
turtle.pendown()
turtle.circle(-150,360)
turtle.fillcolor('blue')
turtle.end_fill()
turtle.penup()
turtle.goto(-80,120)
turtle.begin_fill()
turtle.pendown()
turtle.pensize(2)
koch(200,3)
turtle.right(90)
koch(200,3)
turtle.right(90)
koch(200,3)
turtle.right(90)
koch(200,3)
turtle.fillcolor('red')
turtle.end_fill()
turtle.hideturtle()
turtle.done()
main()
序列类型及操作
列表是一种序号类型,创建后可以随意被修改,使用[]或set()创建,元素间用逗号分隔,列表中元素类型可以不同,无长度限制
ls=[‘TYUT’,2020,‘happy’]
由于列表类型在今后的使用中及其重要,所以我们通过一些例子来体会一样
■定义空列表lt >>>lt=[ ]
■向lt新增5个元素 >>> lt +=[1,2,3,4,5]
■修改lt中第2个元素>>> lt[2] = 6
■向lt中第2个位置增加一 个元素>>> lt. insert(2, 7)
■从It中第1个位置删除一 个元素>>> del lt[1]
■删除lt中第1-3位置元素>>> del lt[1:4]
■判断|t中是否包含数字0>>0inlt
■向|t新增数字0>>> lt. append(0)
■返回数字0所在It中的索引>>> lt. index(0)
■lt的长度>>> len(lt)
■It中最大元素>>> max(lt)
■清空lt>>> lt. clear()
最后补充一下集合类型的重要应用(注意跟上面不是一个类型的):
数据去重:集合类型所以元素无重复,利用这个性质可以去除数据中重复的数据
s = [“p”, “p”, “y”,“y”, 123]
s = set(ls)利用了集合无重复元素的特点
{‘p’, ‘y’, 123}
lt = list(s)还可以将集合转换为列表
[‘p’, ‘y’, 123]
因为小编挑的是重点讲,所以说有时会显得前后不衔接,还望体谅
今天就说到这,88