函数总览表(一)

python中函数例题 python函数题目_python函数作业答案

函数名的命名规则:

1、函数名必须由字母下划线数字组成,不能是关键字和数字开头

2、函数名还是要有一定的意义能够简单说明函数的功能

初识函数定义:

新建一个函数

python中函数例题 python函数题目_python中函数例题_02

def mylen():
‘‘‘计算S1 的长度‘‘‘
s1 = ‘hello world‘
length = 0
for i in s1:
length = length + 1
print(length)

python中函数例题 python函数题目_python中函数例题_02

初识函数调用:

通过调用mylen函数,计算hello word的长度
str_len = mylen()
print(‘str_len:%s‘%str_len)

以上代码也只是完成调用,但是函数体内并没有返回值,所以调用为None,使用return关键字返回结果。代码如下:

return length #将函数体内的值赋给mylen
str_len = mylen()
print(‘str_len:%s‘%str_len)
return关键字的作用:
return是一个关键字

1 接受返回值

2 当一个函数执行到return这一步的时候会终止整个函数的执行  后面有多少代码都不会执行

函数体内不写return的情况下,会默认返回一个None,需要注意的是return和返回值之间要由一个空格,return可以返回任意数据类型的值。

返回多个值:

可以返回多个值,会被组织成元祖返回,也可以用多个值来接受。

函数的参数:(实参与形参)

我们调用函数时传递的这个‘hello world‘被称为实际参数,因为这个是要实际交歌函数的内容,简称实参。

定义函数时的S1,只是一个变量的名字,被称为形式参数。因为在定义函数的时候它只是一个形式,表示这里有一个参数,简称形参。

参数传递:

传递多个参数

参数可以传递多个,多个参数间用逗号分割。(举例如下)

def mymax(x,y):
the_max = x if x > y else y
return the_max
ma = mymax(10,20)
print(ma)

位置参数

站在实参的角度

1、按照位置传值

python中函数例题 python函数题目_python中函数例题_02

def mymax(x,y):
#此时x=10,y=20
the_max = x if x > y else y
return the_max
ma = mymax(10,20)
print(ma)

python中函数例题 python函数题目_python中函数例题_02

2、按照关键字传值

python中函数例题 python函数题目_python中函数例题_02

def mymax(x,y):
#此时x = 20,y = 10
print(x,y)
the_max = x if x > y else y
return the_max
ma = mymax(y = 10,x = 20)
print(ma)

python中函数例题 python函数题目_python中函数例题_02

3、位置、关键字形式混着用

python中函数例题 python函数题目_python中函数例题_02

def mymax(x,y):
#此时x = 10,y = 20
print(x,y)
the_max = x if x > y else y
return the_max
ma = mymax(10,y = 20)
print(ma)

python中函数例题 python函数题目_python中函数例题_02

正确用法

问题一:位置参数必须在关键子参数的前面

问题二:对于一个形参只能赋值一次

站在形参的角度

位置参数必须传值

def mymax(x,y):
#此时x = 10,y = 20
print(x,y)
the_max = x if x > y else y
return the_max
#调用mymax不传递参数
ma = mymax()
print(ma)
#结果
TypeError: mymax() missing 2 required positional arguments: ‘x‘ and ‘y‘

python中函数例题 python函数题目_python中函数例题_02

默认参数

1、正常使用

使用方法

为什么要有默认参数:将变化较小的值设置成默认参数

2、默认参数的定义

python中函数例题 python函数题目_python中函数例题_02

def stu_info(name,sex = "male"):
"""打印学生信息函数,由于班中大部分学生都是男生,
所以设置默认参数sex的默认值为‘male‘
"""
print(name,sex)
stu_info(‘alex‘)
stu_info(‘eva‘,‘female‘)

python中函数例题 python函数题目_python中函数例题_02

3、参数陷阱:默认参数是一个可变数据类型

def defult_param(a,l = []):
l.append(a)
print(l)
defult_param(‘alex‘)
defult_param(‘egon‘)

动态参数

按位置传值多余的参数都由args统一接受,保存成一个元祖的形式

def mysum(*args):
the_sum = 0
for i in args:
the_sum+=i
return the_sum
the_sum = mysum(1,2,3,4)
print(the_sum)
def stu_info(**kwargs):
print(kwargs)
print(kwargs[‘name‘],kwargs[‘sex‘])
stu_info(name = ‘alex‘,sex = ‘male‘)

本章小结

面向过程编程的问题:代码冗余、可读性差、可扩展性差(不易修改)

定义函数的规则:

python中函数例题 python函数题目_python中函数例题_02

1.定义:def 关键词开头,空格之后接函数名称和圆括号()。

2.参数:圆括号用来接收参数。若传入多个参数,参数之间用逗号分割。

参数可以定义多个,也可以不定义。

参数有很多种,如果涉及到多种参数的定义,应始终遵循位置参数、

*args、默认参数、**kwargs顺序定义。

如上述定义过程中某参数类型缺省,其他参数依旧遵循上述排序

3.注释:函数的第一行语句应该添加注释。

4.函数体:函数内容以冒号起始,并且缩进。

5.返回值:return [表达式] 结束函数。不带表达式的return相当于返回 None

def 函数名(参数1,参数2,*args,默认参数,**kwargs):

"""注释:函数功能和参数说明"""

函数体

……

return 返回值

python中函数例题 python函数题目_python中函数例题_02

调用函数的规则:

python中函数例题 python函数题目_python中函数例题_02

1.函数名()

函数名后面+圆括号就是函数的调用。

2.参数:

圆括号用来接收参数。

若传入多个参数:

应按先位置传值,再按关键字传值

具体的传入顺序应按照函数定义的参数情况而定

3.返回值

如果函数有返回值,还应该定义“变量”接收返回值

如果返回值有多个,也可以用多个变量来接收,变量数应和返回值数目一致

无返回值的情况:

函数名()

有返回值的情况:

变量 = 函数名()

多个变量接收多返回值:

变量1,变量2,... = 函数名()

python中函数例题 python函数题目_python中函数例题_02