什么是函数?
函数在数学中的定义:
函数(function)的定义通常分为传统定义和近代定义,
函数的两个定义本质是相同的,只是叙述概念的出发点不同,
传统定义是从运动变化的观点出发,
而近代定义是从集合、映射的观点出发。
函数的近代定义是给定一个数集A,假设其中的元素为x,
对A中的元素x施加对应法则f,记作f(x),得到另一数集B,
假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,
函数概念含有三个要素:定义域A、值域B和对应法则f。
其中核心是对应法则f,它是函数关系的本质特征。
在程序员中的函数:
函数是指一段可以直接被另一段程序或代码引用的程序或代码。
(不愧耿直boy)
今天我们讲一下python中函数的应用
一、什么是函数
在现实生活中,你妈让你煮面你需要做什么?
- 去买面
- 煮熟锅里面的水
- 下面
- 等饭熟
但你妈让你煮面不会说这四个步骤,而是就说一个煮面,没错,“煮面”就相当于是一个函数。
正如煮面是需要经常做的,而用步骤相容太麻烦,久而久之就有了煮面来代替步骤
而程序中的也一样,一些程序需要经常使用,所以用函数来包装调用。
以煮面为例:
def zhumian():
print('去买面')
print('煮熟锅里面的水')
print('下面')
print('等饭熟')
'''
def是一个关键字
后面是函数的名字,紧接着后面需要一个括号 ,
这个括号中间,根据需要还可以有 参数,这里我们先不讲它
最后是一个冒号,下面的缩进的代码表示这个函数名字代表的具体动作是什么,称之为函数体。
函数体的代码是需要缩进的。我们建议缩进四个空格。'''
这样之后家人一说煮面程序就知道要干什么了,为什么呢,因为我们用代码定义了煮面这个函数。相当你在生活中煮面的这个步骤已经成为肌肉记忆一样,程序定义函数就相当于生活形成肌肉记忆。
定义函数之后能直接运行吗?
当然不能!
你问我为什么?
你知道煮面的步骤能煮面吗?当然还需要你个催化剂—老妈的煮面
没错,在程序中我们虽然定义了函数,但还需要一个催化剂—调用函数
调用函数就是函数名字+括号
def zhumian():
print('去买面')
print('煮熟锅里面的水')
print('下面')
print('等饭熟')
zhumian()
当解释器运行到zhumian()之后就会开始运行函数里面的函数体
那么程序调用完函数之后怎么办呢?
函数被调用完之后将进行返回操作,即返回到调用函数处,继续进行下一个代码操作
例:
def zhumian():
print('去买面')
print('煮熟锅里面的水')
print('下面')
print('等饭熟')
zhumian()
print('函数调用之后运行的代码')
当然了,除了我们定义的函数之外还有python解释器自带的函数—内置函数,例如print就不用定义可以直接调用。
二、函数的参数
在上面讲过,参数就是函数名后边括号里面的东西,接下来我们具体了解一下参数
函数可以有多个参数,这里我们介绍一个参数和两个参数
一个参数
可以通过调用函数的参数将其通过函数定义来传递到函数体中
举个例子:
def zhumian(list):
print('去买'+list)
print('煮熟锅里面的水')
print('下面')
print('等饭熟')
zhumian('面')
通过list将调用函数中的参数传递到函数体中
两个参数
两个参数的用法和一个参数的用法相同
举个例子:
def zhumian(list1,list2):
print('去买'+list1)
print('煮熟锅里面的'+list2)
print('下面')
print('等饭熟')
zhumian('面','水')
缺省值参数
接下来讲一下函数参数的缺省值
什么是缺省值?
缺省值就是在声明函数的某个参数的时候为之指定一个默认值,在调用该函数的时候如果采用该默认值,你就无须指定该参数
使用规则:
- 缺省值后面的参数都要是缺省值,因此缺省值只能是最后面的参数
- 缺省值只能是常数,即int类型
为大家举个例子:
def compare(list1,list2=60):
if list1 > list2:
print('1')
else:
print('0')
compare(61)
虽然没有在调用参数中说明list2的数值,但在函数定义中令list2=60,所以在调用函数中缺省此参数的话就默认为60.
指定函数名参数
在上面讲的调用函数都是直接写出参数值,当然我们也可以使用指定参数名来进行调用
举个例子:
def score(list1,list2,list3,list4):
print(list1)
print(list2)
print(list3)
print(list4)
score(list1=30,list2=40,list3=50,list4=60)
当然也可以将调用函数的顺序变换
score(list1=30,list4=60,list2=40,list3=50)
还可以两种混合使用
score(30,list2=40,list3=50,60)
三、变量的有效范围
变量分为局部变量和全局变量,
局部变量的作用范围是一个块内,即一个函数体内
全局变量的作用范围是整个函数。
举个例子:
def score():
count = 0
count+=1
score()
print(count)
count定义的是局部变量,但在函数体外运行就会出现错误,为了避免这个,我们需要定义全局变量
count = 0
def score():
global count
count += 1
score()
print(count)
这里的global关键字的意思就是count这个名字对应的是全局变量count
好啦,就先分享到这里。
开启快乐暑假时光