参数
普通参数
默认参数
关键字参数
关键字参数格式
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))