'''
Python3函数
'''
'''
1、函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
2、函数能提高应用的模块性,和代码的重复利用率。
'''
'''
定义一个函数:
1、函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
2、在圆括号中定义参数
3、函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
4、函数内容以冒号 : 起始,并且缩进。
5、return [表达式] 结束函数,选择性地返回一个值给调用方,不带表达式的 return 相当于返回 None。
'''
def hello():
print('Hello Python')
hello()
def area(width, height):
return width * height
print(area(5,2))
'''
函数中的参数
不可变类型:如整数、字符串、元组。
如 fun(a),传递的只是 a 的值,没有影响 a 对象本身。
如果在 fun(a) 内部修改 a 的值,则是新生成一个 a 的对象。
可变类型: 如 列表,字典。
如 fun(la),则是将 la 真正的传过去,修改后 fun 外部的 la 也会受影响
'''
def nochange(a):
print(id(a))
a = 10
print(id(a))
a = 1
print(id(a))
nochange(a)
def change(list1):
print(id(list1),list1)
list1.append(55)
print(id(list1),list1)
list1 = [1,2,3]
print(id(list1),list1)
change(list1)
print(id(list1),list1)
'''
必需参数
必需参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。
关键字参数
关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。
使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值。
默认参数
调用函数时,如果没有传递参数,则会使用默认参数。
不定长参数
需要一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数。
def functionname([formal_args,] *var_args_tuple ):
"函数_文档字符串"
function_suite
return [expression]
加了星号 * 的参数会以元组(tuple)的形式导入,存放所有未命名的变量参数。
加了两个星号 ** 的参数会以字典的形式导入,语法如下:
def functionname([formal_args,] **var_args_dict ):
"函数_文档字符串"
function_suite
return [expression]
'''
def needstr(str):
print(str)
needstr('Hello Python')
def user(name,age):
print('名字:',name,'年龄:',age)
user(age = 10,name = '陈丽')
def user1(name,age = 20):
print('名字:',name,'年龄:',age)
user1(name = '陈丽')
user1(name = '陈丽',age = 50)
def user2(name, *score):
print('名字:',name,'分数:',score)
user2('陈丽', 100, 90 , 99)
user2('陈丽')
def printscore(name, **score):
print('名字:',name)
print(score)
printscore('陈丽', c=90, e=100, m=99)
def f(a,b,*,c):
return a+b+c
f(1,2,c=3)
'''
匿名函数
1、python 使用 lambda 来创建匿名函数。
2、lambda 只是一个表达式,函数体比 def 简单很多。
3、lambda的主体是一个表达式,而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑进去。
4、lambda 函数拥有自己的命名空间,且不能访问自己参数列表之外或全局命名空间里的参数。
匿名函数语法:
lambda [arg1 [,arg2,.....argn]]:expression
'''
sum = lambda a,b : a+b
print ("相加后的值为 : ", sum( 10, 20 ))
'''
return语句
return [表达式] 语句用于退出函数,选择性地向调用方返回一个表达式。
不带参数值的return语句返回None。
'''
def sum(a,b):
return a+b
total = sum(10,20)
print(total)
'''
强制位置参数
一个函数形参语法 / 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。
'''
def pr(a,b,/,c,d,*,e,f):
print(a,b,c,d,e,f)
pr(1,2,3,4,e=5,f=6)
pr(1,2,d=3,c=4,e=5,f=6)