函数的定义

函数名的定义:1.推荐使用英文,可以使用拼音,不可以使用汉字;2.可以使用数字,但是不能以数字开头;3.不可以使用特殊字符,除了下划线_;4.函数名严格区分大小写;5.函数命名要有意义;6.函数名不能和系统保留关键字冲突;7.函数名尽量不要和系统已存在的内建函数同名,以免覆盖内建函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#将输出10行10列的星星作为一个整体
def mystar():#新的代码组 函数
j = 0
while j < 3:
# 输出一行星星
i = 0
while i < 10:
print('*', end='')
i += 1
# 输出一个换行
print()
# 变量自增
j += 1

#在输出1个10行10列的星星
mystar()

函数的参数

  • 普通参数
1
2
3
4
5
6
7
8
9
10
11
12
#带有参数的函数
def printnum(maxnum):
var = 0
while var <= maxnum:
print(var)
var += 1
#输出0-10的数字
#printnum(10)

#形参:在定义函数的括号中声明的变量名就是形参,形式上的参数
#实参:在调用函数的括号中传入的就是实参,实际上的参数
#注意:实参将值传递给形参的过程,本质上就是变量赋值操作
  • 默认值参数
1
2
3
4
5
6
7
8
9
10
11
def buyPC(cpu = 'I5',memory = '4G',videocard = '970'):
print('CPU是'+ cpu)
print('内存是'+ memory)
print('显卡是' + videocard)

#调用函数 传入实参 -> 使用的是实参值
#buyPC('I7-7700K','16G','1080ti')
#调用函数 不传入实参 -> 使用的是形参的默认值
#buyPC()
#调用函数 传入一个实参
#buyPC('I5','16G')
  • 关键字参数
1
2
3
4
5
6
7
8
9
def creatPerson(mz,xl,yf,wq,xz):
print('头上戴着'+ mz )
print('脖子上挂着' + xl)
print('身上穿着' + yf)
print('手上拿着' + wq)
print('脚上穿着' + xz)
#调用函数(使用关键字参数)
creatPerson(xl = '钻石项链', wq = '金丝大环刀', yf = '锁子甲',xz = '草鞋',mz = '三级头')

  • 收集参数

在普通形参之前添加一个"*",就可以使得当前形参可以接受多个传入的实参.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def getsum(*allnum):
#声明一个累加和的变量
total = 0
#计算所有数值的和
for i in allnum:
total = total + i
#打印求和结果
print(total)
#调用函数
getsum(2,4,7,5,5,8,3,10)

def getarg(a,b,c,*d):
print(a,b,c)
print(d)
#调用函数
getarg(1,2,3,4,5,6,7,8,9,10)

注意:
#1.收集参数仅仅接受没有形参接受的普通实参
#2.收集参数只可以接受普通实参,不可以接受关键字参数(关键字实参)
  • 关键字收集参数

在普通的形参之前添加两个"**",既可以是的当前形参可以接受多个传入的关键字实参.

1
2
3
4
5
6
7
8
9
10
11
12
def showinfo(xh,**person):
#打印person接受的结果
print(person)
print('参与大会的人员有' , person.keys())
print('他们的体重分别是',person.values())

#调用函数
showinfo(ml = 90,xm = 120 ,xh = 98 ,xg = 145)#关键字参数

注意:
#1.关键字收集参数仅仅接收没有形参接收的关键字参数
#2.关键字收集参数只可以接收关键字实参,不可以接收不同实参
  • 多种参数混合
1
2
3
4
5
6
7
8
9
10
11
12
def testargs(name,sex,age,*size,**goodfriends):
#使用普通参数
print(name,sex,age)
#使用收集参数
print(size)
#使用关键字收集参数
print(goodfriends)
#调用函数
testargs('小明','男',18,178,125,35,gf1 = '小刚',gf2 = '小欧',gf3 = '小红')

1.实参:普通实参在前,关键字参数在后
2.形参:关键字收集参数一定在最后出现,收集参数推荐在普通参数之后使用,推荐顺序:普通形参,收集参数,关键字收集参数。

return

  • 返回值
1
2
3
4
5
6
7
8
#定义一个计算两个数值的和的函数
def getsum(no1,no2):
result = no1 + no2
#print(result)
#返回值语句
return result

str = getsum()
  • 终止函数执行
1
2
3
4
5
6
7
8
9
#查看return语句的另外一个作用
def test():
print('************')
#添加return语句
return
print('############')

#调用函数
test()

函数文档

查看函数的文档:

1.使用help函数(推荐使用)
help(id)
help(print)
help(type)

2.函数名.doc
print(id.doc)
print(print.doc)

1
2
3
4
5
6
7
8
9
10
11
12
13
#自定函数
def getsum(no1,no2):
'''
:功能: 计算两个数值的和
:参数1 no1: Number类型
:参数2 no2: Number类型
:返回值 : 两个数值的和 Number
'''
result = no1 + no2
return result

#查看自定义函数的文档
help(getsum)