python中函数的定义与调用

在前面的学习中,其实我们已经接触到了一些函数,比如:

type() 函数能返回数据的类型

len() 函数能返回数据的长度

print() 函数能在控制台将内容输出出来

range() 函数能生成整数数列

这些函数都是python的内置函数,我们可以直接调用,后面我们将会接触到更多的python的内置函数。通过观察,我们不难发现,函数有以下两个特点:

  • 可以具体完成某个功能
  • 可以重复使用

一、python中函数的定义

除了python 内置函数外,我们还可以根据需求自定义函数,函数的定义有以下规则:

  • 使用关键字def 来向python发出信号,标识你要定义一个函数;
  • def 后跟具体的函数名称,注意,自定义函数的名称最好不要跟内置函数名称发生冲突;
  • 函数名称后跟一对圆括号,圆括号内存放调用该函数时需要传入的参数;
  • 在函数体内,我们可以使用 一对 三引号 来定义文档字符串,这就相当于是给函数加了一段注释,说明该函数的具体作用;
  • 函数一般以return 结束,用来返回值方便调用,如果没有return语句,则默认返回None;
  • 函数遇到return就会终止,即return后面的代码将不会被执行。

1、函数的语法:

 举一个比较简单的例子:

 2、函数的调用

二、函数中的参数

1、形式参数和实际参数

  • 形式参数:函数定义时候的参数
  • 实际参数:函数调用时候的参数

2、函数的位置参数

  • 位置参数:形式参数和实际参数要一一按照顺序对应,不多不少,位置一样。

 关于函数的参数传递,我们需要注意如下几点:

  • 调用函数传递的参数个数一定要和函数定义的参数个数一致,否则会报错;
  • 注意函数体里面参数的类型,要输入正确的参数类型,否则会报错。

3、函数的默认参数

  • 在函数定义的时候,给形式参数一个默认值,即为默认参数;
  • 在函数定义时,如果有默认值,在调用时如果传入了实际参数,那么默认参数不会生效,如果没有传入实际参数,默认参数会生效。

 4、位置参数与默认参数

一个函数有的时候不仅有位置参数,还会有默认参数,如果这两种参数同时存在的时候,就一定要把默认参数放在位置参数的后面,否则会报错!!

 5、关键字参数

  • 作用:是相对于位置参数讲的,可以提高函数调用时候的可读性,更加容易理解实际参数的意义;
  • 关键字的名字===形式参数;
  • 关键字参数区别位置参数,可以不按照顺序进行调用,可以交换顺序;
  • 关键字参数也要放到位置参数的后面。

6、不定长参数

不定长参数包括位置不定长参数和关键字不定长参数:

  • *args:位置不定长参数;
  • *kwargs:关键字不定长参数

 (1)位置不定长参数:*args

  • *args:在函数内部的表现形式:names是一个元组
  • *args:可以接收从函数调用的时候多余的位置参数
  • *args:加在其他位置参数的后面

(2)关键字不定长参数:*kwargs

上面我们讲了不定长位置参数,这一节我们来掌握下带有关键字的不定长参数。它与普通的不定长参数的区别就是带有关键字,且必须指定关键字,否则识别不了。

 三、局部变量和全局变量

1、定义

  • 局部变量是在函数内部声明的变量,只能在该函数调用它,如果试图在超出范围的地方调用,程序就会报错;
  • 全局变量是在整个整个py文件中定义的变量,全局范围内都可以访问。

2、局部变量和全局变量需要注意的几个点

  • 全局作用域能获取局部变量吗??? 不能!!!
  • 全局作用域能修改局部变量吗??不能!!!
  • 局部作用域能获取全局变量吗??能!!!  
  • 局部变量能修改全局变量吗??不能!!!

 3、局部作用域修改全局变量的方法

  • global 关键字是声明全局变量的关键字

 返回的结果是:27

 

posted @ 2020-05-06 22:18  笔筒里的猫  阅读(2040)  评论(0编辑  收藏  举报