Python精简入门学习之函数
-函数的定义:
一系列python语句的组合 可以在程序中运行一次或者多次 一般是完成具体的独立的功能。
为什么要使用函数:
代码的复用最大化以及最小化冗余代码 整体代码结构清晰 问题局部化。
语法结构:
def 函数名():
函数体[一些列的python语句 表示独立的功能]
函数的调用:
本质上就是去执行函数定义里面的代码块 在调用函数之前 必须先定义。
-函数入门
在我们一开始的学习中要打印很多相同的数据的话,就会比较麻烦,所以我们有了函数方法。
print('张三')
print('身高')
print('体重')
这时我们要打印相同的内容,是直接直接复制吗?
print('张三')
print('身高')
print('体重')
print('张三')
print('身高')
print('体重')
此时代码完成了我们的需求,如果只是一两次还行,但是如果我们需要使用很多次的时候呢?这时我们就会使用函数方法。
-针对上述代码场景 就需要进一步的去优化代码[方案:封装函数]
def printInfo():
print('小明')
print('身高')
print('体重')
pass
# 函数的调用
printInfo() # 调用
printInfo() # 重复调用
# 进一步的去完善这样的需求[输出不同人的信息] 方案:通过传入参数来解决
# 函数的定义
# def 函数名(参数列表): 0-n 个
def printInfo(name,height,weight,hobby,pro):
# 函数代码块
print('%s的身高是%f'%(name,height))
print('%s的体重是%f'%(name,weight))
print('%s的爱好是%s'%(name,hobby))
print('%s的专业是%s'%(name,pro))
pass
# 调用带参数的信息
printInfo('Tony',163,120,'唱歌','计算机应用')
-函数的参数
参数的分类:
必选参数、默认参数[缺省参数]、可选参数、关键字参数。
参数:其实就是函数为了实现某项特定的功能 进而为了得到实现功能所需要的数据。
为了得到外部数据的。
-必选参数
def sum(a,b): # 形式参数:只是意义上的一种参数 在定义的时候不占用内存地址 占坑用
sum = a + b
print(sum)
pass
# 调用函数 在调用的时候必选参数 是必须要赋值的
sum(10,11) # 实际参数:实参 实实在在的参数 是实际占用内存地址的 填坑用
-默认参数
def sum1(a,b=40,c=90):
print('默认参数使用=%d'%(a+b))
pass
# 参数的调用
sum1(10) # 在调用的时候如果未赋值 就会用定义函数时给定的默认值
sum1(2,56)
-可变参数 (当参数的个数不去欸的那个的时候使用 比较灵活)
def gitee(*args): # 可变长的参数
'''
计算累加和
:param args:
:return:
'''
# print(args)
result = 0
for item in args:
result += item
pass
print('result=%d'%result)
pass
gitee(1)
gitee(1,2)
gitee(1,2,3)
gitee(1,2,3,4)
gitee(1,2,3,4,5)
-关键字参数
用 ** 来定义
在函数体内 参数关键字是一个字典类型 key是一个字符串。
def keyFunc(**kwargs):
print(kwargs)
pass
# 调用
dictA = {'name':'leo','age':'35'}
keyFunc(**dictA)
keyFunc(name='peter',age = 26,)
keyFunc()
def complexFunc(*args,**kwargs):
print(args)
print(kwargs)
pass
complexFunc(1,2,3,4,name='建党')
complexFunc(age=100)
def TestMup(**kwargs,*args): # 不符合要求的
'''
可选参数必须放到关键字可选参数之前
可选参数:接受的数据是一个元组类型
关键字可选参数:接受的数据是一个字段类型
:param kwargs:
:param args:
:return:
'''
pass
-函数返回值
概念:
函数执行完以后会返回一个队形 如果在函数的内部有return 就可以返回实际的值 否则返回None。
类型:
可以返回任意类型 返回值类型应该取决于return后面的类型。
用途:
给调用方返回数据。
在一个函数内可以出现多个return值 但是肯定只能返回一个return。
如果在一个函数体内 执行了return 意味着函数就执行完成退出了 return后面的代码语句不会执行。
def Sum(a,b):
sum = a+b
return sum # 将计算的结果返回
pass
rs = Sum(11,89) # 将返回值赋值给其他变量
print(rs) # 函数的返回值返回到调用的地方
def calComputer(num):
li = [] # 空列表
result = 0 # 定义一个变量初始值为0
i = 1 # 定义一个变量初始值为1
while i <= num: # while循环 判断i是否小于等于num 如果为真就执行循环体
result += 1 # result = resule+1
i += 1 # i = i + 1
pass
li.append(result) # 将result的值添加到li列表中
return li # 返回 li列表
pass
# 调用函数
value =calComputer(10) # 将函数方法结果赋值给value
print(type(value)) # 打印数据类型
print(value) # 打印
def returnTuple():
'''
返回字典类型数据
返回元组类型数据
:return:
'''
return {'name':'测试'}
# return 1,2,3
pass
A = returnTuple()
print(type(A))
print(A)
-函数的嵌套调用
函数的分类:
根据函数的返回值和函数的参数。
有参数无返回值的。
有参数有返回值的。
无参数有返回值的。
无参数无返回值的。
def fun1():
print('--------------1 strat------------------')
print('--------------process------------------')
print('--------------1 end------------------')
pass
def fun2():
print('--------------2 start------------------')
fun1() # 调用第一个函数
print('--------------2 end------------------')
pass
fun2() # 调用函数2 执行顺序 fun2()->2 start->fun1()->1 strat->process->1 end->2 end
网友评论