函数
*注意换行
def fact(n):
s=1
for i in range(1,n+1):
s*=i
return s
a = fact(10)
print(a)
//结果: 3628800
1. 函数参数: 可以缺省
全局变量和局部变量
课后练习
from turtle import *
fillcolor("red")
begin_fill()
while True:
forward(200)
right(144)
if abs(pos())<1:
break
end_fill()
print函数的用法
槽格式和format方法,把字符串和变量组合到一起
2.Math函数库
1.math.ceil() 表示向上取整,比如 math.ceil(10.2) == 11
2.math.floor() 表示向下取整, 比如 math.floor(10.2)==10
3.对于浮点数的加减法需要用 math.fsum() ,这样不会把小数加错, math.fsum(0.01+0.02)=0.03
3.函数调用过程
4.lambda函数
匿名函数,没有名字
5.实例:七段数码管
6.代码复用与函数递归
-代码资源化:程序代码是一种用来表达计算的"资源"
-代码抽象化:使用函数等方法对代码赋予更高级别的定义
-代码复用:同一份代码在需要时可以被重复使用
函数与对象是对代码复用的抽象
递归
例1
例2:汉诺塔问题
7.内置函数
组合数据类型
1.集合
- 集合用大括号表示,元素间用逗号分隔
*集合中每个元素唯一,不存在相同元素
*集合元素之间无序
集合处理方法
s.clear() 清除元素
如果犯错可以用try-catch来解决
序列类型(基础)
是一组有先后关系的一组元素
序号下标引导
衍生: 字符串、元组、列表
包含正向递增序号,和反向递减序号
切片
求长度
len(s)
求最大字母序
max(x)
元组类型
小括号,或者tuple() 创建
列表是可以修改的数据结构,而元组是固定长度,不能被修改元素值的数据结构。
元组是使用圆括号()表示,而列表是使用方括号[]。请注意两者的区别。
tup_tuple = ((1, 2, 3, 4),(‘Python’,‘Java’))
tup_tuple = ((1, 2, 3, 4),('Python','Java'))
print('使用tuple函数创建元组:',tup_tuple)
tup2_tuple = tuple('Python');
print(tup2_tuple)
运行结果:
使用tuple函数创建元组: ((1, 2, 3, 4), (‘Python’, ‘Java’))
(‘P’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’)
我们还可以通过加号(+)把多个元组拼接在一起,形成更长的元组;
也可以使用乘号(*)复制多份同样的元组。
列表
可以修改
可以增加和减少元素
用方括号【】 和 list() 创建,元素之间用逗号,分隔
列表中各元素类型可以不同,无长度限制。
ls =【“cat”, "dhjkf ", 735】
lt=ls
上面指向同一个列表。(指针)
list() 才真正创建一个新的列表
其他都是指针指向,没有新的东西出现
ls[i] =x 替换 ls第i 元素 换为 x
ls[i: j: k] = lt 用列表lt替换ls切片后的元素子列表
del ls[i]
del ls[i: j: k] 从i 开始(包括i)以k为步长, i-j ,删除元素
ls+=lt 更新列表ls , 将lt 的元素 增加到列表ls中。
ls*=n 更新列表ls , 其元素重复n 次。
ls=["hsjkf","good",197238]
del ls[1]
print(ls)
ls=["hsjkf","good",197238,32,24,11,2,44]
del ls[0:4:2]
print(ls)
操作:
ls[1:2] 切片, 填写。
del ls[::3] 删除以3为步长的元素
例子:
直接改列表本身
ls = ["st","jg","ghjf"]
ls[1:2] = [1,2 , 3, 4]
print(ls)
//['st', 1, 2, 3, 4, 'ghjf']
del ls[::3]
//[1, 2, 4, 'ghjf']
ls*2
//[1, 2, 4, 'ghjf', 1, 2, 4, 'ghjf']
ls.append(x) //在列表最后增加一个元素x
ls.clear() //删除列表ls中所有的元素
ls.copy() //生成一个新列表,赋值ls中所有元素
ls.insert(i,x) //在列表ls的第i位置增加元素x
ls.pop(i) // 将列表ls中第i 位置元素取出并删除该元素
ls.remove(x) // 将列表ls中出现的第一个元素x删除
ls.reverse() //表示将列表反转。
12条操作
- 定义空列表lt lt =[]
- 向lt新增5个元素 lt +=[1,2,3,4,5]
- 修改lt 第2 个位置元素 lt[2]=6
- 向Lt中第2个元素增加一个元素 lt.insert(2,7)
- 删除第1-3的数字 del lt[1:4]
- 判断是否包含数字x x in lt
- 向lt新增数字0 lt.append(0)
- 返回数字0所在Lt中的索引 lt.index(0)
- lt的长度 len(lt)
10.lt中最大元素 max(lt)
11.清空Lt lt.clear()