函数定义和使用

函数的定义与使用

函数理解

函数是一段具有特定功能的可重用的语句组,函数是一种功能的抽象,一般表达特定含义,主要是降低难度,和复用。

定义

def <函数名>():
return <返回>

案例

计算n的阶乘

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

y = f(x)
函数定义时,所指定的参数是一种占位符
函数定义后,如果不经过调用,不会被执行
函数定义时,参数是输入、函数体是处理、结果是输出(IPO)

函数使用

调用表示函数给出一个具体的参数,替换定义参数
a = fact(10):
def fact(n):
s= 1
for i in range(1, n+1):
s*= i
return s
print(a)
函数可以有参数,也可以没有,但必须保留括号
def <函数名>():
<函数体>
return<返回值>
eg:
def fact():
print("我也是函数“)
函数定义时可以为某些参数指定默认值,构成可选参数
def <函数名>(<必数>, <可选参数>):
<函数体>
return<返回值>
eg
计算n的阶乘//m

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

函数定义时可以设计可变数量参数,既不确定参数总数
def <函数名>(<参数>, *b):
<函数体>
return<返回值>

def fact(n, *b):#*b是可变参数
    s = 1
    for i in range(1, n+1):
        s *= i
    for item in b: #增加一个循环
        s *= item
    return s

参数传递的两种方式

函数调用时,参数可以按照位置或名称方式传递

def fact(n, m=1):#m是可变参数
    s = 1
    for i in range(1, n+1):
        s *= i
    return s//m
fact(10, 5)
Out[39]: 725760

return保留字

函数可以有返回值,也可以没有,可以有return,也可以没有
return可以传递0个返回值,也可以传递任意多个返回值

n, s = 10, 100 #n,s是全局变量
def fact(n):
    s = 1      #fact()函数中的n和s是局部变量与全局s不同
    for i in range(1, n+1):
        s *= i
    return s   #此处是全局变量
print(fact(n), s) #此处是全局变量100

输出3628800 100

#局部变量和全局变量
<语块句1>
def <函数名>(<参数>):
<函数体>
return <返回值>
<语句块2>
规则1:局部变量和全局变量是不同变量
局部变量是函数的内部占位符,与全局变量可能重名但不同
函数运算结束后,局部变量可能被释放

global保留字

用来在函数内部中声明全局变量

n, s = 10, 100 #n,s是全局变量
def fact(n):
    global s #声明全局变量s
    s = 1      #fact()函数中的n和s是局部变量
    for i in range(1, n+1):
        s *= i
    return s #此处是s是全局变量
print(fact(n), s) #此处全局变量s被修改

输出3628800 3628800
规则2:局部变量为组合数据类型且未创建,等同于全局变量

Is = ["F", "f"] #通过使用[]真实创建了一个全局变量列表Is
def func(a):
    Is.append(a) #此处Is是表示列表类型,未真实创建,则 等同于全局变量
    return
func("C")  #全局变量Is被修改
print(Is)

输出[‘F’, ‘f’, ‘C’]

如果一个组合数组中在函数中被真实创建,就是函数的局部变量运行后该局部不会出现

Is = ["F", "f"] #通过使用[]真实创建了一个全局变量列表Is
def func(a):
    Is = [] #此处IS是列表类型,真实创建,Is是局部变量
    Is.append(a) #此处Is是表示列表类型,未真实创建,则 等同于全局变量
    return
func("C")  #全局变量Is被修改
print(Is)

输出[‘F’, ‘f’]

使用规则

基本数据类型如整数、浮点数,无论是否重名,局部变量与全局变量不同
可以通过global保留字在函数内部声明全局变量
对于组合数据类型如列表,如果局部变量未真实创建,则全是局部变量

lambda函数

lambda函数是一种匿名函数,既没有名字的函数
使用lambda保留字定义,函数名是返回结果
lambda函数用于定义简单的、能够在一行内表示的函数
<函数名> = lambda<参数>:<表达式>
等价于
def <函数名>(<参数>):
<函数体>
return <返回值>
eg:

`f = lambda x, y : x + y #定义了x+y
f(10, 15)#选取了10+15
Out[44]: 25`#输出结果25

eg

f = lambda : "lambda函数" #定义输出函数名字
print(f())
lambda函数

lambda函数应用定义特殊函数或方法的参数,lambda函数有一些固定使用方式,建议逐步掌握,一般情况,建议使用def定义的普通函数。

发布了11 篇原创文章 · 获赞 0 · 访问量 72

猜你喜欢

转载自blog.csdn.net/kyra1997/article/details/105127066
今日推荐