当前位置:   article > 正文

Python 函数定义及调用(2): 参数详解_定义自我介绍的函数,并且调用这个函数

定义自我介绍的函数,并且调用这个函数

目录

一、函数的参数和返回值

二、举例说明 

1、普通参数

2、默认参数

3、关键字参数

4、 收集参数


 

一、函数的参数和返回值

(1)参数: 负责给函数传递一些必要的数据或者信息

  • 形参(形式参数): 在函数定义的时候用到的参数没有具体值,只是一个占位的符号,成为形参;
  • 实参(实际参数): 在调用函数的时候输入的值。

(2)返回值: 函数的执行结果

  • 使用return关键字;
  • 如果没有return,默认返回一个None;
  • 函数一旦执行return语句,则无条件返回,即结束函数的执行;

关于返回值案例可以看上一个博客(https://blog.csdn.net/zaishuiyifangxym/article/details/83271882)

参数分类:

(1)普通参数;(2)默认参数;(3)关键字参数;(4)收集参数。

 

二、举例说明 

1、普通参数

形式:

  1. def 函数名(参数1, 参数2,....):
  2. 函数体
  3. # 调用
  4. 函数名(value1, value2,.......)
  5. # 调用的时候,具体值参考的是位置,按位置赋值

例如:

  1. def hello(person):
  2. print("大家好,我是函数{0}".format(person))
  3. return "我结束了,啦啦啦"
  4. p = "XiaoMing"
  5. rst = hello(p) # 调用函数 hello
  6. print(rst)

运行结果:

 

2、默认参数

(1)形参带有默认值;

(2)调用的时候,如果没有对相应形参赋值,则使用默认值。

形式:

  1. def func_name(p1=v1, p2=v2..........):
  2. 函数体
  3. # 调用1
  4. func_name()
  5. # 调用2
  6. value1 = 100
  7. value2 = 200
  8. func_name(value1, value2)

 

例如:

  1. # 默认参数示例
  2. # 报名函数,需要知道学生性别
  3. # 学习python的学生基本都是男生,所以,报名的时候如果没有特别指定,我们默认是男生
  4. def reg(name, age, gender="male"):
  5. if gender == "male":
  6. print("{0} is {1}, and he is a good student".format(name, age))
  7. else:
  8. print("{0} is {1}, and she is a good student".format(name, age))
  9. # 调用
  10. reg("mingyue", 21) # 没有给第三个参数的值,则使用默认值
  11. reg("xiaojing", 23, "female")

运行结果:

 

3、关键字参数

形式:

  1. def func(p1=v1, p2=v2.....):
  2. func_body
  3. 调用函数:
  4. func(p1=value1, p2=value2.......)

从形式上看,比较麻烦,但是有以下优点:

(1)不容易混淆, 一般实参和形参只是按照位置一一对应即可,容易出错

(2)使用关键字参数,可以不考虑参数位置

 

例如:

  1. # 普通参数案例
  2. def stu(name, age, addr):
  3. print("I am a student")
  4. print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr))
  5. n = "jingjing"
  6. a = 18
  7. addr = "我家"
  8. # 普通参数,只按照位置传递,容易出错
  9. stu(a, n, addr)
  10. print("-" * 50)
  11. # 对于关键字参数 案例
  12. def stu_key(name="No name", age=0, addr="No addr"):
  13. print("I am a student")
  14. print("我叫 {0}, 我今年 {1}岁了, 我住{2}".format(name, age, addr))
  15. n = "jingjing"
  16. a = 18
  17. addr = "我家"

运行结果:

 

4、 收集参数

(1)把没有位置,不能和定义时的参数位置相对应的参数,放入一个特定的数据结构中。

(2)参数名args不是必须这么写,但是,我们推荐直接用args,约定俗成 参数名args前需要由星号

(3)收集参数可以和其他参数共存

形式:

  1. def func(*args):
  2. func_body
  3. # 按照list使用方式访问args得到传入的参数
  4. #调用:
  5. func(p1, p2, p3, .....)

例如:

  1. # 函数模拟一个学生进行自我介绍,但具体内容不清楚
  2. # args把他看做一个list
  3. def stu(*args):
  4. print("Hello 大家好,我自我介绍以下,简答说两句:")
  5. print(type(args)) # type函数作用是检测变量的类型
  6. for item in args:
  7. print(item)
  8. stu("Xiaoming", 18, "浙江省杭州市", "爱好:喜欢打篮球")
  9. print("-" * 50)
  10. stu("Xiaohong")

运行结果:

 

5、 收集参数之关键字收集参数

(1)把关键字参数按字典格式存入收集参数;

(2)kwargs一般约定俗成;

(3)调用的时候,把多余的关键字参数放入kwargs;

(3)访问kwargs需要按字典格式访问。

形式:

  1. def func(**kwargs):
  2. func_body
  3. # 调用:
  4. func(p1=v1, p2=v2, p3=v3........)

例如:

  1. # 自我介绍
  2. # 调用的时候需要使用关键字参数调用
  3. def stu(**kwargs):
  4. # 在函数体内对于kwargs的使用不用带星号
  5. print("Hello 大家好,我先自我介绍一下:")
  6. print(type(kwargs))
  7. for k, v in kwargs.items():
  8. print(k, "---", v)
  9. stu(name="Xiaoming", age=18, addr="浙江省杭州市", hobby="Play basketball") # 调用1
  10. print("-" * 50)
  11. stu(name="Xiaohong") # 调用2

运行结果:

 


参考资料

[1] https://study.163.com/course/introduction/1004987028.htm

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/694412
推荐阅读
相关标签
  

闽ICP备14008679号