【四】python函数

什么是函数?
函数在数学中的定义:

函数(function)的定义通常分为传统定义和近代定义,
函数的两个定义本质是相同的,只是叙述概念的出发点不同,
传统定义是从运动变化的观点出发,
而近代定义是从集合、映射的观点出发。
函数的近代定义是给定一个数集A,假设其中的元素为x,
对A中的元素x施加对应法则f,记作f(x),得到另一数集B,
假设B中的元素为y,则y与x之间的等量关系可以用y=f(x)表示,
函数概念含有三个要素:定义域A、值域B和对应法则f。
其中核心是对应法则f,它是函数关系的本质特征。

在程序员中的函数:

函数是指一段可以直接被另一段程序或代码引用的程序或代码。

(不愧耿直boy)

今天我们讲一下python中函数的应用


一、什么是函数
在现实生活中,你妈让你煮面你需要做什么?

  1. 去买面
  2. 煮熟锅里面的水
  3. 下面
  4. 等饭熟
    但你妈让你煮面不会说这四个步骤,而是就说一个煮面,没错,“煮面”就相当于是一个函数。

正如煮面是需要经常做的,而用步骤相容太麻烦,久而久之就有了煮面来代替步骤

而程序中的也一样,一些程序需要经常使用,所以用函数来包装调用。

以煮面为例:

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
在这里插入图片描述
好啦,就先分享到这里。
开启快乐暑假时光
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值