Python基础系列:(四)Python函数(关键字、默认、不定长)


前言

Python系列文章主要是记录自己学习成果及知识输出整合,提供一个温故而知新的场所。
本篇主要记录Python的函数定义及函数创建。


一、函数的定义

背景:由于有些代码块会在后面的代码中重复出现,为了减少代码量,并且方便调用,就有了函数。
定义:函数就是组织好的,可以重复使用的,用来实现单一或相关联功能的代码段。
比如:print()/input() —python 内置函数


二、Python函数定义及参数

1.定义函数

'''
def 标识符(参数1, 参数2, 参数3......参数n):
	函数体(用来实现单一或者相关联功能的代码段)
	return 表达式(或者变量)

return表示函数结束,如果需要使用函数中的变量值,一般都会带上return,否则可不用。
'''

2.函数调用

形参:定义函数时,标识符后面带的参数
实参:调用函数传入的实际值
默认情况下,参数值与参数名称是按照函数定义顺序匹配的
调用函数时,传入的参数的个数和参数的类型需要跟形参保持一致

# 不带参数的函数,想调用函数sample看到结果,直接函数名带括号就行
def sample():
	print('欢迎来到。。。。')

sample()

# 带参数
def sample(a, b):
	if a >= b:
		s = a - b
	else:
		s = a + b
	return s
print(sample(1, 2))
# 因为在函数体中,a和b属于数字型,所以当传入字符串或其他类型的数据会报错

3.调用函数时可使用的正式参数类型

  • 必需参数
    必须以正确的顺序传入参数,调用时的参数的数量与类型必须和定义时是一样的
# 示例:输出公司员工详细信息:姓名、工作年限、家庭住址、岗位
def sample(name, working, address, post):
	print(f'姓名:{name},工作年限:{working},家庭住址:{address},岗位:{post}')
# 调用时就必须保持顺序与数量与类型一致,如:
sample('张三', 10, '长沙', '测试工程师')
  • 关键字参数
    参数的顺序可以不一致,其他必须一致
# 示例:同样以上面函数为例,只是改变传参的方式
sample(name='张三', address='长沙', working=10, post='测试工程师')
  • 默认参数
    调用函数时,可以对默认参数不传值,则取默认值,否则会取传递值
# 示例:同样以上面函数为例,改变形参的定义方式
def sample(name=None, working=10, address='长沙', post='测试工程师'):
	print(f'姓名:{name},工作年限:{working},家庭住址:{address},岗位:{post}')
# 调用函数时,name和woring这两个参数就可以不填,定义形参时也可以默认这个参数为空值None,如
sample()
或者
sample('张三', '12')

  • 不定长参数
    无法确定调用函数方,提供的参数的个数及类型没法确定的情况下,可以定义为不定长参数
比如:定义注册函数?
A注册账号:A调用注册函数,提供姓名(必填项)+手机号码(必填项)
B注册账号:B调用注册函数,提供姓名(必填项)+手机号码(必填项)+工作城市+工作年限+其他信息
# 1、加*参数名
	函数内部把可变参数组装到元组中
# 2、加**参数名
	函数内部把可变参数组装到字典中
# 3*单独出现  命名关键字参数
	命名关键字参数作用:限制关键字参数的名字
	关键字参数的名称受限,关键字参数的名称跟定义的形参的名称一致
# 定义函数时,参数顺序
必需参数、默认参数、可变参数(不定长参数)、命名关键字参数、关键字参数
--------------------------------------------
# 加*参数名 元组
def register(name, phone, *args):
	info = [name, phone]
	# 由于后面*extra里传的数据是直接放到一个元组,那么想要获取就需要通过遍历的方式
	for i in args:
		info.append(i)
	print(f'打印注册的个人信息:{info}')
register('张三', '18622335544', '长沙', 3)
# 假设**args传入的值 是一个元组,调用时,可直接加*变量名(解包的方式传参),如
extra = ( '长沙', 3)
register('张三', '18622335544', *extra)

# 加**参数名 字典
def register(name, phone, **kwargs):
	info = {'name': name, 'phone': phone}
	# 想要获取字典kwargs的值,也可以通过遍历字典key、value的方式
	for key, value in kwargs.items():
		info[key] = value
	print(f'注册的个人信息:{info}')

# 调用时,可以只传必需参数,也可传入任意个数的关键字参数,关键字名称随便怎么取
register('张三', '18622335544', address='长沙', working=3)
# 假设**kwargs传入的值 是一个字典,调用时,可直接加**变量名(解包的方式传参),如
extra = {'address':'长沙', 'working':3}
register('张三', '18622335544', **extra)

# *单独出现  命名关键字参数
def register(name, phone, *, addres, working):
	print(f'注册的个人信息:{name},{phone},{addres},{working}')

register('张三', '18622335544', addres='长沙', working=3)

总结

以上就是文章要表达的内容,本文简单介绍了Python函数关键字、默认、不定长等参数的概念以及应用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值