python3 之 函数笔记

一. 定义一个函数    以def为关键字

def fun():

如果函数体为空, 则要用pass说明该函数体为空, 不然解释器不知道什么时候结束, 会报错

def fun():
    pass

 

二. 参数

根据对象的类形性质, 函数参数分为传递可变类型与传递不可变类型

不可变类型    相当于C语言的值传递

def swap(a,b):
    t=a;
    a=b;
    b=t;
    print(a,  b)

a=7
b=5
swap(a,b)
print(a,b)

执行结果

5 7
7 5

可变类型       相当于C语言的地址传递    比如    列表   字典

def changlist(mylist):
    mylist.append([8,5,4])
    print(mylist)

mylist=[1,2,3]
changlist(mylist)
print(mylist)

执行结果

[1, 2, 3, [8, 5, 4]]
[1, 2, 3, [8, 5, 4]]

函数参数按照功能划分  必须参数  关键字参数   默认参数  不定长参数

必须参数     参数必须要有且对应

错误示例

def fun(a):
    print(a)
fun()

关键字     按关键字匹配参数

def plus(str,num):
    print(num,str)

plus(5,'hello')
plus(num=6,str='hello')

执行结果

hello 5
6 hello

默认参数      默认的参数写右边

def fun(name,age=18):
    print(name,'---',age)

fun('cat')

执行结果

cat --- 18

错误示例

def fun(age=18,name):
    print(name,'---',age)

fun('cat')

正确样例

def fun(name,age=18):
    print(name,'---',age)

fun('cat',16)

执行结果

cat --- 16

不定长参数

def printsome(arg1,*vartuple):   # *代表不定长元组
    print(arg1)
    print(vartuple)

printsome(10,64,88)
10
(64, 88)
def printsome(arg1,**vardir):   # **代表不定长字典
    print(arg1)
    print(vardir)

printsome(10,a=64,b=88)
10
{'a': 64, 'b': 88}

 

三. 返回值

所有函数都有返回值, 没有return 返回None      

def funx(x):
     def funy(y):
         return x*y
    return funy     #funy 返回的是一个对象

print(funx(5)(7))   #funx(5)===funy   funx(5)(7)====funy(7)

 

35

 错误示例

def funx(x):
     def funy(y):
         return x*y
    return funy()      #funy() 返回的是funy()的返回值, 该属于函数调用, 没有返回值

print(fun(5)(7))

 

def funx(x):
     def funy(y):
         return x*y
    return funy(7)      #funy() 返回的是funy()的返回值, 该属于函数调用, 没有返回值

print(fun(5))

 

35

四. 匿名函数    一个表达式, 不是代码块

 不使用def ,使用 lambda 关键字创建 (可以访问全局变量)

count = lambda a,b : a+b
变量           参数  函数体及返回值
print(count(1,2))
3

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值