回顾
- 条件语句:if elif else , pass
-
- 循环语句:
- while 要写终止条件
- for 遍历迭代对象
-
- 三种通用操作:
- break 强制结束循环
- continue 跳过本次循环
- else 当循环正常结束就会执行,else 里面的语句
def selFor(iterable): # 驼峰命名规则 selFor
for i in iterable:
print(i)
定义函数
def fun(a): # def 定义函数关键字
print('hello',a) # 函数体
传参(5种方法)
不需要传参数
def fun():
print('hello python')
print('人生苦短,我用python!')
必备参数
def fun2(a):
print('必备参数:',a)
fun2('a')
#必备参数:a
可选参数
arg
# *arg
def fun4(*arg): # 默认将我们传入的参数包装成元组
print('arg:',arg)
tu = (1,2,3,4,5)
fun4(tu)
#arg:((1,2,3,4,5))
fun4(*tu)
#arg:(1,2,3,4,5)
kwarg
**kwarg
# 传值的时候必须要满足字典的定义: di = dict(a=1)
def fun5(**kwarg): # 默认将我们传入的参数包装成字典
print('kwarg:',kwarg)
di = dict(a=4)
fun5(a=1,b=2,c=3)
# kwarg:{'a'1,'b':2,'c':3}
fun5(**di) # 传入字典时必须加上**
# kwarg:{‘a':4}
5种传参混合用时,需要注意的事项:
默认参数,必备参数
def fun6(b,m=2): # 默认参数必须放到必备参数之后
print('必备参数:',b)
print('默认参数:',m)
fun6(1,3)
# 必备参数:1
# 默认参数:3
*arg,默认参数,必备参数
def fun7(b,m=2,*arg):
print('必备参数:',b)
print('默认参数:',m)
print('arg:',arg)
fun7(1,2,3,4,5,6,7)
#必备参数: 1
#默认参数: 2
#arg: (3,4,5,6,7)
def fun8(*arg,b,m=2): # 当*arg写在最前时,后面的参数必须指定
print('必备参数',b)
print('默认参数',m)
print('arg',arg)
#fun8(1,2,3,4,5,6,7) 报错
fun8(1,2,3,4,5,b=6,m=7)
#必备参数: 6
#默认参数: 7
#arg: (1, 2, 3, 4, 5)
def fun9(*arg,m=2,b): # 当*arg写在最前时,默认参数可以放到必备参数前面
print('必备参数',b)
print('默认参数',m)
print('arg',arg)
#fun8(1,2,3,4,5,6,7) 报错
fun9(1,2,3,4,5,b=6,m=7)
#必备参数: 6
#默认参数: 7
#arg: (1, 2, 3, 4, 5)
arg,*kwarg
def fun10(*arg,**kwarg): # **kwarg ,只能放到最后
print('arg:',arg)
print('kwarg:',kwarg)
fun10(1,2,3,4,5,6,7)
#arg:(1,2,3,4,5,6,7)
#kwarg:{}
fun10(1,2,3,4,5,a=6,b=7)
#arg:(1,2,3,4,5)
#kwarg:{'a':6,'b':7}
return
如果函数中没有写return,其实函数运行结束时默认执行了 return None
def fun()
print('hello')
print('python')
fun()
#hello
#python
a = fun()
print(a)
# None
return: 返回函数运行的结果
print: 打印输出,只是用来看的
def test_return(a,b):
if a>b:
return a
elif b>a:
return b
else:
return '一样大'
函数结束的标志,只要运行了return,就强制结束了函数,return后面的程序都不会被执行
def test_return(a,b):
if a>b:
return a
elif b>a:
return b
else:
return '一样大'
print('比较结束') # 不会被执行
test_return(1,3)
#3
def test_return(a,b):
if a>b:
print(a)
elif b>a:
print(b)
else:
print('一样大')
print('比较结束')
test_return(1,3)
#3
#比较结束
return 语句的位置是可选的,不是固定出现再函数的最后,可以自定义在函数中的任何地方
def test_return(a,b):
return 'zhangge'
if a>b:
print(a)
elif b>a:
print(b)
else:
print('一样大')
test_return(1,3)
#'zhangge'
lambda 匿名函数,没有名字的函数
lambda 简化了函数定义的书写形式,使代码更为简洁,使函数的定义方式更为直观,易理解
lambda的应该场景:
1.有些函数如果只是临时一用,而且它的业务逻辑也很简单时,就没必要用def来定义,这个时候可以用lambda
2.函数都支持函数作为参数,lambda函数就可以应用
#lamdba x(参数) :x+1 (return x+1)
g = lambda x:x+1
g(1)
#2
#传入多个参数
add = lambda x,y:x+y
add(1,2)
#3
#判断偶数?
even = lambda x:x%2==0
even(2)
#True
重点:
1.理解函数的概念和作用
2.熟练掌握函数的定义和调用