06函数的基础(定义、传参、lambda匿名函数)

回顾

    1. 条件语句:if elif else , pass
    1. 循环语句:
      1. while 要写终止条件
      1. for 遍历迭代对象
    1. 三种通用操作:
    • 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.熟练掌握函数的定义和调用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 211,348评论 6 491
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,122评论 2 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 156,936评论 0 347
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,427评论 1 283
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,467评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,785评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,931评论 3 406
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,696评论 0 266
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,141评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,483评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,625评论 1 340
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,291评论 4 329
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,892评论 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,741评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,977评论 1 265
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,324评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,492评论 2 348

推荐阅读更多精彩内容