python学习笔记3:函数和参数
2018-12-27 18:30
609 查看
函数
函数的参数和返回值
- 形参(形式参数): 在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参,下例中的peison
- 实参(实际参数): 在调用函数的时候输入的值:下例中的明月
def hello(person): print("{0}, 你肿么咧".format(person)) print("Sir, 你不理额额就走咧") p = "明月" hello(p)
- 返回值: 返回函数的执行结果:return 如果没有return,默认返回一个None
- 函数一旦执行return语句,则无条件返回,函数后面的语句不在执行:下例中aaa不打印,后面的return语句不执行
def hello(person): print("{0}, 你肿么咧".format(person)) return "哈哈,我提前结束了" print("aaa") return "我已经跟{0}打招呼了,{1}不理我".format(person, person) p = "LiYing" rst = hello(p) print(rst)
参数
- 参数参考资料
- python参考资料: headfirst python -> 零基础入门学习python(小甲鱼),本讲义参考的是流畅的python-->习题-->后期可以考虑腾讯公开免费课
- 参数分类 普通参数:name,list
- 默认参数: name="none",addr="noaddr"
- 关键字参数:指定参数传输的位置,使用关键字参数,可以不考虑参数位置,多一个变量做中转站: age=a, name=n, addr=addr
- 收集参数: *args,**kwargs
def stu_key(name="No name", age=0, addr="No addr"): print("I am a student") print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr)) n = "jingjing" a = 18 addr = "我家" # 如果是普通参数,只按照位置传递,容易出错 stu_key(age=a, name=n, addr=addr)
收集参数
- 把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中
-
语法
def func(*args,**kwargs): func_body 按照list使用方式访问args得到传入的参数 调用: func(p1, p2, p3, .....)
- 参数名args不是必须这么写,但是推荐
- 收集参数可以和其他参数共存
- *args:表示可以使用任意参数,实际是一个tuple
- **keyword:把关键字参数按字典格式存入收集参数,类型是dict
def stu( **kwargs): # 在函数体内对于kwargs的使用不用带星号 print("Hello 大家好,我先自我介绍一下:") print(type(kwargs)) # 对于字典的访问,python2 和python3有区别 for k,v in kwargs.items(): print(k, "---", v) stu(name="liuying", age=19, addr="北京大通州区", lover="王晓静", work="Teacher") stu(name= b60 "周大神")
收集参数混合调用的顺序问题
- 收集参数,关键字参数,普通参数可以混合使用,但要注意参数位置,否则报错
- 使用规则就是,普通参数和关键字参数优先
- 定义的时候一般找普通参数,关键字参数,收集参数tuple,收集参数dict
def stu(name, age, *args, hobby="没有", **kwargs): # 调用的不同格式 stu(name, age) stu(name, age, hobby="游泳") stu(name, age, "王晓静", "刘石头", hobby="游泳", hobby2="烹饪", hobby3="跟不同女生聊天") #以下执行报错 stu(name, age, "王晓静", hobby="游泳", hobby2="烹饪", hobby3="跟不同女生聊天", "刘石头")
收集参数的解包问题
- 把参数放入list或者字典中,直接把list/dict中的值放入收集参数中
- *args用一个*号,**kwargs用两个*号
def stu(*args): l = ["liuying", 19, 23, "wangxiaojing"] # 此时,args的表示形式是字典内一个list类型的元素,即 arg = (["liuying", 19, 23, "wangxiaojing"],) # 很显然跟我们最初的想法违背 # 此时的调用,我们就需要解包符号,即调用的时候前面加一个星号 stu(*l)
函数文档
- 函数的文档的作用是对当前函数提供使用相关的参考信息
-
文档的写法:
在函数内部开始的第一行使用三引号字符串定义符 - 一般具有特定格式
-
使用help函数,形如 help(func)
def stu(name, age): ''' 这是文档的文字内容 :param name: 表示学生的姓名 :param age: 表示学生的年龄 :return: 此函数没有返回值 ''' pass print(help(stu)) print("*" * 20) print(stu.__doc__)
输入结果如下:
Help on function stu in module __main__: stu(name, age) 这是文档的文字内容 :param name: 表示学生的姓名 :param age: 表示学生的年龄 :return: 此函数没有返回值 None ******************** 这是文档的文字内容 :param name: 表示学生的姓名 :param age: 表示学生的年龄 :return: 此函数没有返回值
相关文章推荐
- Python学习笔记(四)-- 函数中的参数传递
- Python学习笔记7-把函数当参数传递、指定可变参数
- python学习笔记——函数可变参数处理
- 谭子python学习笔记--函数的参数
- 廖雪峰python函数的参数学习笔记
- 11. Python脚本学习笔记十一函数与参数
- python函数参数学习笔记
- Python学习笔记(10)-函数-函数定义、调用、参数、返回值、嵌
- 【Python】学习笔记十三:函数的参数对应
- python学习笔记-(13)python中的函数参数传递
- python学习笔记12(函数三): 参数类型、递归、lambda函数
- Python中函数参数设置及使用的学习笔记
- Python学习笔记7-把函数当参数传递、指定可变参数
- Python学习笔记——函数参数
- Python中函数参数设置及使用的学习笔记
- 【Python学习笔记】函数参数
- 【Python】学习笔记——-3.3、函数的参数
- Python学习笔记7:函数对象及函数对象作参数
- python学习笔记11(函数二): 参数的传递、变量的作用域
- Noah的学习笔记之Python篇:函数“可变长参数”