day09 python函数 返回值 参数
2024-09-04 04:16:26
day09 python
一.函数
1.函数
函数是对功能的封装
语法:
定义函数:
def 函数名(形参): #define
函数体
调用:
函数名(实参)
2.返回值 return
def func():
print('bajie')
return 'done' #0.不写return就没有返回值(得到的是None), #1.只写 return, 不写返回的是什么, 返回的还是None, 而且还会终止函数
print('bajie') #2.写return 值, 返回一个值, 而且还会终止函数, 后面的'bajie'不会被打印 #3.可以返回多个返回值: return 值1,值2,值3(接收的是元组)
rst = func()
print(rst)
3.参数
参数; 在函数执行的时候给函数传递信息时用的
传参: 把实参交给形参的过程
def func(tools): #在函数定义时,这个变量是形式参数
print('open %s' % tools)
func('phone') #在函数调用时, 是实际参数
实参的传递方式: 位置参数, 关键字参数, 混合参数
def eat(good_food, no_good_food, drink, ice_cream):
print(good_food, no_good_food, drink, ice_cream)
eat('fgood','nfgood','drink','icc') #按顺序传值, 位置参数
eat(ice_cream='fgood',drink='nfgood',good_food='drink',no_good_food='icc') #关键字参数
eat('bajie','ai',ice_cream='shuishui',drink='haha') #混合参数时, 分两部分:先位置, 后关键字
形参的定义方式: 位置参数, 默认值参数, 动态参数
def eat(good_food, no_good_food, drink, ice_cream): #位置参数
print(good_food, no_good_food, drink, ice_cream)
def regist(name, phone, gender='man'): #默认值参数, 默认值参数必须在参数列表的最后
print(name, phone, gender)
regist('bajie', '10089')
动态参数: 位置
def eat(*food): # * 表示接收位置参数的动态传参
print(food) # food 接收到的是一个元组
print(type(food))
eat('bajie','悟空','大唐')
eat() #可以没有, 是空元组
位置与动态位置的顺序
def eat(name, *food): #位置参数, 和动态位置参数可以共存, 顺序: 先位置, 后动态位置
print("%s want to eat %s" % (name, food))
eat('bajie', 'a','b','c')
动态参数: 关键字
def eat(**food): # ** 表示的是关键字的动态传参
print(food) # food接收到的是(不完全)字典
print(type(food))
eat(name = 'bajie', age = '100') # key 是变量(要遵守变量的命名规则), (数字不行, 字符串不行)
eat() # 可以不传, 是空字典
>>>{'name': 'bajie', 'age': '100'}
动态位置 + 动态关键字 : 聚合
def eat(*food1, **food2): #万能传参, * ** 相当于一个聚合的作用
print(food1, food2)
打散
def func(*food, **kwfood): #这里的 * 是聚合, 位置参数 # ** 同理
print(food, kwfood)
lst = ['bajie','wukong','datang']
dic = {'1':'1','2':'2','3':'3','4':'4'}
func(lst) #这样是传了一个参数, 是元组, 里面套了一个列表
func(*lst, **dic) #这里的 * 是打散(list,tuple, set, str), 进行迭代打散 # ** 同理, 是打散(dict)
内容总结:
参数
1.实参
位置参数
关键字参数
混合参数(位置+关键字)
2.形参
位置参数
默认值参数
动态传参
*args: 位置参数的动态传参
**kwargs: 关键字参数的动态传参
顺序: 位置参数, *args, 默认值参数, **kwargs
最新文章
- 最长不下降序列nlogn算法
- python os.walk()
- Http基础
- super的作用(转自百度)
- Odoo中的Javascript单元测试
- FW: Chef集中管理工具实践之 (1) 环境部署
- postgresql 热备与恢复
- 2016 ACM/ICPC Asia Regional Shenyang Online 1007/HDU 5898 数位dp
- verilog实现奇数倍分频
- HDU 2222 (AC自动机模板题)
- LeetCode 203
- C,C++,使得控制台的黑框框全屏显示
- ubuntu12.04管理员账户登录不了桌面,只能客人会话登录
- [转]IDENT_CURRENT、SCOPE_IDENTITY、@@IDENTITY 差異對照表
- opencv2 矩阵方式 resize图像缩放代码(转载)
- 【Todo】AMQP示例学习
- 如何创建DLL文件
- 8.QT-对话框(模态与非模态)
- json转化为对象数组
- Gerapy 安装