Python教程13-程序编程进阶.pdfVIP

  • 32
  • 0
  • 约2.84千字
  • 约 5页
  • 2021-01-27 发布于山东
  • 举报
程序编程进阶:函数的参数 接上一讲,这节我们专门介绍python 函数的参数处理 本节主要内容  函数的形式参数和实际参数  函数的参数定义规则  函数参数的默认值  函数的可变参数  函数的关键字参数  函数的命名关键字参数 1.3. 函数的参数 1.3.1 函数的形式参数和实际参数 函数的参数主要会涉及到两个概念:形式参数、实际参数  形式参数:其实就是定义函数时,函数括号中的变量,形式参数的意义是当 前函数如果要被调用执行,就必须让函数接收括号中定好的参数才能正常执 行,就是形式上需要这些数据才能执行函数,所以称为形式参数  实际参数:实际参数是我们在通过函数名称调用函数时,在括号中传递的真 实数据;实际传递给函数用于执行的数据,称为实际参数 形式参数和实际参数的具体关系如下图所示: 形式参数和实际参数的关系 1.3.2. 函数的参数定义规则 函数通过def 进行定义,用于执行一个功能,一个函数,可以需要参数,也可以 不需要参数。 类似我们现实生活,执行一个功能就是做一件事情,做这件事情需要的资源就是 参数,去做一件事情,有些需要资源,有些是不需要资源的。 所以! 规则1:如果我们的程序中出现了一部分功能代码重复执行,就需要封装一个函 数来减少代码的重复量 规则2 :根据代码执行是否需要其他额外的数据,需要额外的几个数据就定义几 个参数,不需要额外的数据就不定义参数 规则3:实际参数可以传递任意对象(python 中一切皆对象) 1.3.3. 函数参数默认值 某些时候,我们可以给函数的参数定义默认值,这样函数在调用过程中,如果某 些参数没有传递,就直接使用默认值来执行函数代码了,函数默认参数确定比较 简单,直接在形式参数上赋值就可以 # 重新定义函数,给参数设置默认值5 def getCircleArea(pi=3.1415, radius=5) : a = pi * (radius ** 2); return a; # 调用函数计算圆面积,不传递参数,使用默认值 a1 = getCircleArea(); # 调用函数,传递参数进行计算 a2 = getCircleArea(3.14, 3); # 调用函数,给第二个参数传递数据进行计算 a3 = getCircleArea(radius=8); 1.3.4. 函数的可变参数 在某些情况下, 函数的参数个数不是确定的,这样在常规定义函数时就木有办 法进行形式参数的定义了。 python 提供了一种可变参数,可以完美的解决这个问题 可变参数,是在形式参数前面加一个*符号作为标识 # 定义一个函数,用于打印多个数据 def printMsg(*msgs) : for x in msgs: print(x); printMsg(tom); printMsg(tom, jerry); printMsg(tom, jerry, shuke); # 以上三个函数调用,都是可以正常执行的 注意,在某些特殊情况下,函数的可变参数放在了固定参数的前面;此时函数的 调用就需要通过变量名称指定数据了(这个也成为命名关键字参数,后面的内容 中有单独介绍) # 可变参数msgs 放在固定参数name 的前面了 def printMsg(*msgs, name) : print (name); print(msgs); for x in msgs: print(-- + x); # 普通调用,出现错误 # 函数中的参数都被可变参数接收了,name就木有可以接收的数据了 printMsg(tom, jerry); # 必须如下方式调用才可以;指定name 参数传递数据 printMsg(tom, jerry, name=shuke); 可变参数是将传入函数的多个参数,自动封装成了一个tuple 字典,也就是一组 数据来使用。 上面的可变参数*msgs 在函数中打印的结果如下: print (msgs); 执行结果:(tom, jerry) 1.3.5. 特殊的用法:关键字参数 将传递给函数的参数,解析成dict 字典的形式,也就是key:value 键值对的形式, 这就是关键字参数的意义,更加方便可变参数的操作 关键字参数,使用两个**符号来声明关键字参数 def printMsg(**msgs) : print(msgs); printM

文档评论(0)

1亿VIP精品文档

相关文档