Python函数食用指南

一、函数的定义

1.函数的组成部分
  • 函数名​​:遵循变量命名规则,应具有描述性
  • 参数​​:传递给函数的值(可选)
  • 函数体​​:包含实际执行的代码
  • ​return 语句​​:返回结果(可选,默认返回 None)

 创建一个新函数。使用形式如下:

def 函数名(参数):

     代码块

     return 返回值

注意点:

  1. def 是函数的保留字,表示创建一个函数。不能忽略def语句最右边的冒号。
  2. 函数名表示被定义的函数名称。函数名可任意指定,但需要遵守有函数命名规则(与变量命名规则相同)
  3. 代码块即用于实现函数功能的具体代码内容。需要注意的是代码块相对于def行要缩进一个制表符。
  4. return用于将函数执行后的数据返回给调用函数。如果不需要将数据返回给调用函数,则不需要将数据返回给调用函数,则不必要使用return语句。

创建一个简单函数

def fun1():
    for i in range(10):
        print(i,end='')
fun()

 fun1右侧括号为空,表明函数无需接收参数。

代码块表示输出数字0~9。定义函数后不会被执行,只有调用函数才会被执行

2.函数的调用

 创建完一个函数后,对其进行使用的过程称为函数的调用。

形式如下:

函数名(参数)

fun1() 

执行结果如下 

3.函数的复用 

定义函数最大的优点在于如果需要经常使用某些功能,将这些功能创建成函数,避免了重复编写繁杂代码,使用时只需调用即可。 

示例代码(实现计算多个数值的阶乘)

def fun3(n):
    b=1
    for i in range(1,n+1):
        b=int(i)*b
    return b
b=fun3(4)+fun3(5)+fun3(6)
print(b)

return 返回值:

return 语句是 Python 函数中最重要的组成部分之一,它决定了函数的输出和终止时机。

return有以下四种功能

  • 返回单个值
def add(a, b):
    return a + b

result = add(3, 5)
print(result)  # 输出: 8

  •  返回多个值(一般以元组的形式返回所有值)
def fun2():
    ls = ['张三','李四']
    a = len(ls)
    b = ls.pop()
    return a,b
print(fun2())

 

  • 无返回值

定义函数不带return语句。函数执行完毕后,调用函数的代码将默认接收到一个空值,即None 

def fun3():
    for i in range(10):
        print(i)
print(fun3())

二、函数的参数

1. 形参和实参:

def  函数名(形参1,形参2.......)

       代码块

       return 返回值

函数名(实参1,实参2........) 

由该框架可知,定义函数处函数名括号内为形参(为变量),参数之间用逗号隔开

调用函数时,使用实际数据为 实参,将实参带入函数中。

例:

def fun3(n):   #n为形参 是个变量
    b = 1
    for i in range(1,n+1):
        b = int(i)*b
    return b
a = input("请输入一个数字:")
#fun3(int(a)) 其中int(a)为实参为一个实际数字
print(a,'的阶乘:',fun3(int(a)))

2.默认参数

指函数定义时,形参被赋值为默认参数。使用形式如下

def 函数名(形参1,形参2=数据2):

      代码块

      return 语句

  注:

  • 当调用函数没有填入实参2数据时,形参2默认为数据2,进入函数。
  • 当调用函数填入看实参2数据时,则数据2会被实参2数据覆盖。

例 

def circle_s(r,pi=3.14):
    return r*r*pi
a = circle_s(3)
b = circle_s(3,pi=3.1415926)
print(a,b)

 传递顺序与形参数据不同时,形参接收参数时,会根据变量名来进行匹配

 

 3.可变参数

当不确定函数中需要接收参数的个数时,可以使用可变参数。在参数前面加入一个*即可将其转换为可变参数。其使用形式如下:

def 函数名(形参1,*形参2):

 注:

  • 可变参数必须位于必填参数的右边以保证必填参数先接受到数据,再将剩余的数据传递给可变参数。
  • 可变参数以元组的形式接收数据

例 :

def fn(a,*b):   #b为可变参数
    print(b)  #输出元组
    c = 0
    for i in b:
        c += a*i
    return c
print(fn(3,2,5,6,7))

三、全局变量和局部变量

 1.全局变量

 全局变量可以在整个代码文件中被使用,函数内部代码也可以使用外部定义的全局变量。

示例代码

def fun5(a,b,c=10):
    d = a*a+b*b+c*c+e
    return d
e = 10
print(fun5(1,2,3))

2.局部变量

示例代码

运行结果中的“ name 'a' is not define'表面a只能局部范围(函数内)使用a,b,c均为局部变量。

def fun5(a,b,c=10):
    d = a*a+b*b+c*c
    return d
print(fun5(1,2,3))
print(a)

 注:1.当在函数中使用全局变量且对全局变量进行了赋值时,将会重新在函数内部创建一个新的局部变量,而不是直接使用全局变量

例: 报错:'a' referenced before assignment可知全局变量a被重新赋值,创建了一个新的局部变量‘a'所以第一个print内的a为被赋值。

删去第一个‘print('a+b的值: ',a+b)’得出以下代码以及运行结果

2.如果需要在函数内外都使用一个变量,可以在函数中使用global关键字声明变量。 

global声明全局变量示例代码:

用global声明a,函数内部的“a“变为全局变量,该代码不再报错 。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值