参数
普通参数
默认参数
关键字参数
关键字参数格式
1 def func(p1=v1, p2=v2...):
2 pass
3
4 func(p1=value1, p2=value2....)
1 def frd(name, age, addr):
2 print("我叫{0},今年{1}岁,我住在{2}".format(name, age, addr))
3 frd(name='小白', age=15, addr='China')
收集参数
把没有位置,不能和定义时参数位置相对应的参数,放入一个的定的数据结构里
收集参数可以不带任何实参
def func(*args);
pass
#按照list使用方式访问args得到传入的参数
func(p1, p2, p3....)
def stu(*args):
for i in args:
print(i)
stu("123456789")
stu("987654321")
### 收集参数的关键字参数
1 def func(**kwargs):
2 pass
3 func(p1=v1, p2=v2, p3=v3...)
1 # 访问kwargs需要按照字典格式访问
2 def tch(**kwargs):
3 for k, v in kwargs.items():
4 print(k, '----', v)
5
6 tch(name="老王", age= 45, work="Teacher")
7 tch(name="老张", age= 56)
函数文档
函数的文档的作用是对当前函数提供使用相关的参考信息
查看方式:help(),.__doc__
文档正规格式
def stu(name, age, *args):
文档文字
:param name: 参数说明
:param age: 参数说明
:param args: 参数说明
:return: 返回值
1 help(stu)
2 print(stu.__doc__)
变量作用域
全局变量(global)
全局变量在任何位置都可以使用
局部变量(local)
局部变量只在局部可以使用,
提升局部变量为全局变量:使用global
eval()函数
1 #把一个字符串当成一个表达式来执行,返回表达式执行后的结果
2
3 x = 100
4 y = 500
5 z1 = x+y
6 z2 = eval("x+y")
7
8 print("z1 = %d" % z1)
9 print("z2 = %d" % z2)
递归函数
函数直接调用自身
1 e= 0
2 def fun():
3 e = 1
4 print(e)
5 fun() # 调用自身
6 fun()
斐波那契数列
1 def fib(n):
2 if n == 1 or n==2:
3 return 1
4 else:
5 return fib(n-1) + fib(n-2)
6
7 print(fib(3))
8 print((fib(10)))
内置变量类型结构
list
set
dict
tuple
list(列表)
有序的数据集合
下标访问,从零开始
1 # 创建空列表
2 l1 = [] # l1 = list()
3 print(type(l1))
4 print(l1)
5 # 创建带值的列表
6 l2 = [1, 2, 3, 4, 5, 6]
7 print(type(l2))
8 print(l2)
9 # 下标访问列表
10 l3 = ['a', 'b', 'c', 'd']
11 print(l3[0])
12 print(l3[3])
13 ### 分片操作截取任意一段列表
14 l4 = [9, 8, 7, 9, 6, 4, 1]
15 print(l4[1:4]) # 包含左边下标值,不包含右边下标值
16 print(l4[:4]) # 左边不写,默认为零
17 print(l4[3:]) # 右边写,默认到最后
18 print(l4[1:6:2]) # 截取从下标为1到下标为5,并每次增加2
19 print(l4[1:15]) # 可以超出范围,超出后不考虑多余的下标内容
20 print(l4[-4:-1]) # 负数可以做下标
id()函数
负责显示一个变量或者函数的唯一确定编号
1 a = 100
2 b = 200
3 c = 100
4 d = a
5 print("a的id:%d"%id(a))
6 print("b的id:%d"%id(b))
7 print("c的id:%d"%id(c))
8 print("d的id:%d"%id(d))