【Python】def函数【新手向】

基本结构

代码规范

def函数整体需与前面还有后面的代码有俩个空行,否则会警告
例如:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以def关键字开头
函数内容以冒号起始,并且缩进
return 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回null。

结构1:单一参数

def<函数名>(参数):
    函数体
    return 返回值
'''
def fact(n):
    s = 1
    for i in range(1, n+1):
        s *= i
    return s
#返回s!

结构2:不可选参数与可选参数

def<函数名>(<不可选参数><可选参数>):
    函数体
    return 返回值
def fact(n, m=2):
    s = 1
    for i in range(1, n+1):
        s *= i
    return s//m
# 对二整除  取不大于商的最大整数

结构3:参数与可变参数

def<函数名>(<参数>*<可变参数>): # 可变参数用 *作为标识符
    函数体
    return 返回值
def fact(n,*b):
    s = 1
    for i in range(1, n+1):
        s *= i
    for item in b:
        s *= item        
    return s

>>>fact(10) = 3628800
# 表示不输入参数b
>>>fact(10,3) = 3628800*3 = 10886400
# 表示参数b只为3
>>>fact(10,3,5,8) = 10886400*5*8 = 435456000
# 表示b随着循环的深入逐渐变为3 5 8

返回值

python函数的返回值可以是一个,可以是多个,也可以没有。

# 多个返回值

def fact(n,m=2):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s//m, n, m

一个返回值

def fact(n,m=2):
    s = 1
    for i in range(1,n+1):
        s *= i
    return s//m

无返回值

def fact(n,m=2):
    s = 1
    for i in range(1,n+1):
        s *= i

全局变量与局部变量的区别

全局变量与局部变量使用相同变量名时:

n, s = 10, 100 # 这个s是全局变量的s
def fact(n):
    s = 1 # 这个s是局部变量的s
    for i in range(1,n+1):
        s *= i
    return s
# 在fact()函数外,局部函数s不起作用,只能通过调用函数获得
print(fact(n), s)

# print: 10! 100

全局变量在局部函数被调用时:

Is = ["f", "F"]
def func(a):
    Is.append(a)
    return Is # 此处Is没有在函数内重新定义,所以在函数体里面是以全局变量的形式存在
func("c") #此条语句讲c append到 Is中
print(Is)

#print 
#['f', 'F', 'c']

在局部函数内部创建与全局变量相同变量名的变量并用函数调用时:

Is = ["f", "F"]
def func(a):
    Is = []
    Is.append(a)
    return Is
func("c")
print(Is)
print(func("c"))

# print
# ['f', 'F']
# ['c']

lambda函数

Lambda函数又称匿名函数
匿名函数并非没有名字,而是将函数名作为函数的结果返回。
语法格式如下:

<函数名> = lambda <参数列表>: <表达式>

示例:

>>> f = lambda x, y : x + y
>>>type(f)
<class 'function'>

>>>f(10, 12)
22
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值