Python函数(一):函数的定义语法、调用、参数类型(必选参数、缺省参数、可选参数、关键字可选参数)、return返回值、函数嵌套


函数是封装后的代码块,可以调用函数执行改代码块实现相同的功能,以便提高复杂代码的开发效率和可读性。

一、函数定义语法

函数分为有参函数和无参函数。

def 函数名():  # 没有参数
    代码块

def 函数名(参数1,参数2,...): # 有参数
    代码块

二、函数调用

语法

函数名()  # 调用无参函数
函数名(参数1,参数2,...) # 调用有参函数

示例

def printNames(): # 函数定义
    print("调用函数printNames()")
    print('lzj')
    print('ddhs')
    pass
printNames() # 调用函数


name = 'lzdf'
height = 179
weight = 65.43
def PrintInfor(name,height,weight):
    print('姓名:{}'.format(name))
    print('身高:{}'.format(height))
    print('体重:{}'.format(weight))
PrintInfor(name,height,weight)

'''
调用函数printNames()
lzj
ddhs
姓名:lzdf
身高:179
体重:65.43
'''

三、参数类型

必选参数

参数定义时有几个,在调用时就要给出相应个数的参数,数据类型也要相同

def sum(a,b): # a和b是必选参数,调用时必须都要赋值
    print(a+b)
    pass
sum(3,15)

'''
18
'''

缺省参数

函数定义时有部分参数或者全部参数有默认值
若同时存在无默认值参数和有默认参数,有默认值参数必须在无默认值参数后面,否则会报错:non-default parameter follows default parameter

def sum1(a=34,b=40): # 形参有默认值
    print(a+b)
    pass
def sum2(a,b=32):
	print(a+b)
	pass

sum1() # 调用时可以不加参数
sum1(1)
sum1(5,23)

sum2(1)
sum2(5,23)

'''
74
41
28
33
28
'''

可选参数

参数的个数不确定,会将输入的函数存在一个元组中,若用元组作为参数调用时必须在元组名前加 *。

语法

def 函数名(*参数名):
	代码块
	...
	pass
tuple1 = (3,5,2,7)
def getComputer(*t): # *定义可选参数,元组类型,参数个数可变
    print(t)
    res = 0
    for item in t:
        res += item
        pass
    print('sum=%d'% res)
    pass
getComputer(1,2)
getComputer(1,3,5)
getComputer(1,3,5,3,5,2,4)
getComputer(*tuple1)
# getComputer(tuple1) 错误调用方法

'''
(1, 2)
sum=3
(1, 3, 5)
sum=9
(1, 3, 5, 3, 5, 2, 4)
sum=23
(3, 5, 2, 7)
sum=17
'''

关键字可选参数

参数个数不确定,有key和value对应,参数组成一个字典,若将字典作为参数调用,需要在字典名前加 ** 。

语法

def 函数名(**参数名):
	代码块
	...
	pass

示例:

dict1 = {'name':'lzjs','age':22}
def keyFunction(**kwargs):
    print(kwargs)
    pass

keyFunction(**dict1)
# keyFunction(dict1)  错误调用方法
keyFunction(name='fgd',age=34)

'''
{'name': 'lzjs', 'age': 22}
{'name': 'fgd', 'age': 34}
'''

混合参数类型

def Complex1(a,*args): # 必选参数和可选函数
    print(a+args[2])
    pass
Complex1(3,4,6,7)


def Complex2(*args,**kwargs): # 可选参数必须放在关键字可选参数之前
    print(args)
    print(kwargs)
    pass
Complex2(1,2,3,4,5)
Complex2(name='jds',age=23,weight=34.63)
Complex2(1,2,3,4,5,name='jds',age=23,weight=34.63)

'''
10
(1, 2, 3, 4, 5)
{}
()
{'name': 'jds', 'age': 23, 'weight': 34.63}
(1, 2, 3, 4, 5)
{'name': 'jds', 'age': 23, 'weight': 34.63}
'''

四、return返回值

函数可以通过return返回数据或对象

def sum(a,b):
    return a+b
    pass
print(sum(4,5))
res = sum(2,45)
print(res)

'''
9
47
'''

返回序列类型的数据,元组的返回有两种格式

def returnTuple():
    return 2,4,3 # 或者是return (2,4,3)
def returnList():
    return [223,44,323]
def returnDict():
    return {'name':'jjsf','age':23}

print(returnTuple())
print(returnList())
print(returnDict())

'''
(2, 4, 3)
[223, 44, 323]
{'name': 'jjsf', 'age': 23}
'''

五、函数嵌套

函数嵌套即在一个函数代码块中调用另一个函数
语法

def Function1():
	pass
	
def Function2():
	Function1()
	pass

示例:

# 给出一个元组数据并计算每相邻两个数的和并存入一个列表类型数据中
def sum(a,b):
    return a+b

def sums(*args):
    pos = 0
    resList = []
    leftIndex = 0
    rightIndex = 1
    for item in args:
        if pos == len(args)-1:
            break
        else:
            resList.append(sum(args[pos],args[pos+1]))
        pos += 1
        pass

    for item in resList:
        print("第{}个数和第{}个数的和: {}".format(leftIndex,rightIndex,item))
        leftIndex += 1
        rightIndex += 1
        pass
    print('计算完毕!')
    return resList

print(sums(2,3,4,5,6))

'''
第0个数和第1个数的和: 5
第1个数和第2个数的和: 7
第2个数和第3个数的和: 9
第3个数和第4个数的和: 11
计算完毕!
[5, 7, 9, 11]
'''
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晚风也很浪漫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值