博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python(函数初识)
阅读量:5149 次
发布时间:2019-06-13

本文共 2029 字,大约阅读时间需要 6 分钟。

1.函数的返回值

  return关键字的作用

  return是一个关键字,在pycharm里,会变成蓝色的关键字。

1.1没有写返回值  

  如果未定义返回值,会默认返回一个None。

1 def my_len(str):2     length = 03     for i in str:4         length += 15     print(length)6 ret = my_len('hello,world')7 print(ret)
无返回值

1.2 返回一个值

1 def my_len(str):2     length = 03     for i in str:4         length += 15     return length6 ret = my_len('hello,world')7 print(ret)
返回一个值

1.3返回多个值

 返回的多个值会被组织成元祖, 也可以用多个值来接收

1 def ret_demo(): 2     """ 3  4     :return: 多个值 5     """ 6     return 1,2,3,4 7 def ret_demo2(): 8     return  1,['a','b'],3,4 9 10 ret = ret_demo()11 print(ret) # (1, 2, 3, 4)12 ret2 = ret_demo2()13 print(ret2)# (1, ['a', 'b'], 3, 4)
返回多个值

原因:序列化解压

1 # 序列解压一 2 a,b,c,d = (1,2,3,4) 3 print(a) 4 a,_,_,d = (1,2,3,4) 5 print(d) 6 a,*_ =(1,2,3,4) 7 print(*_) 8 # 同样也适用于字符串、列表、字典、集合 9 a,b = {
'name':'eva','age':18}10 print(a,)11 print(b)

2. 函数的参数

2.1 位置参数

  2.1.1 按照位置传值
1 # 位置传参2 def mymax(x,y):3     return x if x>y else y4 ma = mymax(10,20)5 print(ma)
按位置传值
  2.1.2 按照关键字传值
1 # 按照关键字位置去传递参数2 def mymax(x,y):3     return x if x>y else y4  ma = mymax(y=10, x=20)5 6 print(ma)
按照关键字传值

  2.1.2位置、关键字混合使用

1 def mymax(x,y):2     return x if x>y else y3 ma = mymax(10,y=20)4 print(ma)
位置、关键字混合使用

  正确用法:

  ①、位置参数必须在关键字参数的前面

  ②、对于一个形参只能赋值一次

2.2 默认参数

  2.2.1.正常使用

  为什么要有默认参数:将变化比较小的值设置为默认参数

  2.默认参数的定义

1 # 默认参数2 def stu_info(name,sex="male"):3     print(name,sex)4     return 'a'5 print(stu_info('alex'))6 print(stu_info('eva','female'))
默认参数
  2.2.2 参数陷阱

  参数陷阱:默认参数是一个可变数据类型

1 # 参数陷阱:默认参数是一个可变数据类型2 def defult_param(a,l=[]):3     l.append(a)4     print(l)5 print(defult_param('egon'))6 print(defult_param('alex'))
参数陷阱

2.3 动态参数

动态参数,也叫不定长参数,也就是你需要传递的参数很多,不定个数,这种情况下,需要使用*args,**kwargs, *args是元祖形式,接收出去键值对以外的所有参数。
*kwargs接收的只是键值对的参数,并且只保存在字典中
1 def trans_para(*args, **kwargs):2     print(args, type(args))3     print(kwargs, type(kwargs))4 # 调用5 trans_para("jinxin",12,[1,2,3,4,],[3,4,],(1,4,7),{
"a": "123", "c":456}, country="china")
动态参数

 

  

转载于:https://www.cnblogs.com/shine-rainbow/p/9782520.html

你可能感兴趣的文章
双路快速排序
查看>>
关于bfs时间轴
查看>>
JS对象继承篇
查看>>
有关java的uri的一些理解
查看>>
正确使用Enum的FlagsAttribute
查看>>
Linux urandom&random
查看>>
wso2 使用配置
查看>>
关于微软必应词典客户端的案例分析
查看>>
【转载】GDI 映像方式 之 SetViewportExtEx 与 SetWindowExtEx 解析
查看>>
递增输出带表头结点的单链表元素
查看>>
读取文件的乱码问题
查看>>
windows 常用操作
查看>>
算法(第四版)C# 习题题解——1.4
查看>>
软件测试第一次作业
查看>>
angular中处理多个异步请求的方法汇总
查看>>
一个关于vue+mysql+express的全栈项目(五)------ 实时聊天部分socket.io
查看>>
jQgrid合并行
查看>>
TopK
查看>>
网络协议分析工具wireshark
查看>>
FlowPortal-BPM——功能:判断数据库表中字段是否重复并阻止提交或保存
查看>>