赞
踩
目录
(1)参数: 负责给函数传递一些必要的数据或者信息
(2)返回值: 函数的执行结果
关于返回值案例可以看上一个博客(https://blog.csdn.net/zaishuiyifangxym/article/details/83271882)
参数分类:
(1)普通参数;(2)默认参数;(3)关键字参数;(4)收集参数。
形式:
- def 函数名(参数1, 参数2,....):
- 函数体
-
- # 调用
- 函数名(value1, value2,.......)
-
- # 调用的时候,具体值参考的是位置,按位置赋值
例如:
- def hello(person):
- print("大家好,我是函数{0}".format(person))
- return "我结束了,啦啦啦"
-
- p = "XiaoMing"
- rst = hello(p) # 调用函数 hello
- print(rst)
运行结果:
(1)形参带有默认值;
(2)调用的时候,如果没有对相应形参赋值,则使用默认值。
形式:
- def func_name(p1=v1, p2=v2..........):
- 函数体
-
-
- # 调用1
- func_name()
-
- # 调用2
- value1 = 100
- value2 = 200
- func_name(value1, value2)
例如:
- # 默认参数示例
- # 报名函数,需要知道学生性别
- # 学习python的学生基本都是男生,所以,报名的时候如果没有特别指定,我们默认是男生
- def reg(name, age, gender="male"):
- if gender == "male":
- print("{0} is {1}, and he is a good student".format(name, age))
- else:
- print("{0} is {1}, and she is a good student".format(name, age))
-
-
-
- # 调用
- reg("mingyue", 21) # 没有给第三个参数的值,则使用默认值
-
- reg("xiaojing", 23, "female")
运行结果:
形式:
- def func(p1=v1, p2=v2.....):
- func_body
-
-
- 调用函数:
- func(p1=value1, p2=value2.......)
从形式上看,比较麻烦,但是有以下优点:
(1)不容易混淆, 一般实参和形参只是按照位置一一对应即可,容易出错
(2)使用关键字参数,可以不考虑参数位置
例如:
- # 普通参数案例
- def stu(name, age, addr):
- print("I am a student")
- print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr))
-
-
- n = "jingjing"
- a = 18
- addr = "我家"
-
- # 普通参数,只按照位置传递,容易出错
- stu(a, n, addr)
- print("-" * 50)
-
- # 对于关键字参数 案例
- 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 = "我家"
运行结果:
(1)把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中。
(2)参数名args不是必须这么写,但是,我们推荐直接用args,约定俗成 参数名args前需要由星号
(3)收集参数可以和其他参数共存
形式:
- def func(*args):
- func_body
- # 按照list使用方式访问args得到传入的参数
-
-
- #调用:
- func(p1, p2, p3, .....)
例如:
- # 函数模拟一个学生进行自我介绍,但具体内容不清楚
- # args把他看做一个list
- def stu(*args):
- print("Hello 大家好,我自我介绍以下,简答说两句:")
-
- print(type(args)) # type函数作用是检测变量的类型
- for item in args:
- print(item)
-
-
- stu("Xiaoming", 18, "浙江省杭州市", "爱好:喜欢打篮球")
-
- print("-" * 50)
-
- stu("Xiaohong")
运行结果:
5、 收集参数之关键字收集参数
(1)把关键字参数按字典格式存入收集参数;
(2)kwargs一般约定俗成;
(3)调用的时候,把多余的关键字参数放入kwargs;
(3)访问kwargs需要按字典格式访问。
形式:
- def func(**kwargs):
- func_body
-
-
- # 调用:
- func(p1=v1, p2=v2, p3=v3........)
例如:
- # 自我介绍
- # 调用的时候需要使用关键字参数调用
- def stu(**kwargs):
- # 在函数体内对于kwargs的使用不用带星号
- print("Hello 大家好,我先自我介绍一下:")
- print(type(kwargs))
-
- for k, v in kwargs.items():
- print(k, "---", v)
-
-
- stu(name="Xiaoming", age=18, addr="浙江省杭州市", hobby="Play basketball") # 调用1
-
- print("-" * 50)
-
- stu(name="Xiaohong") # 调用2
运行结果:
参考资料
[1] https://study.163.com/course/introduction/1004987028.htm
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。