Python函数章节自学有感
Python函数章节学习所得
1. 函数的创建和调用
Python以def关键字实现函数的创建,具体格式如下
//def function(parameter):
body
对比C语言的函数创建格式
数据类型 函数名(数据类型 形参)
Python不需要定义函数和形参的数据类型且在创建函数之后必须打上“:”,调用函数格式为:
//function(parameter)
可以感受出Python在函数的创建和调用方面相对C语言显得简单便利
2. 参数传递
Python中依然分为形式参数和实际参数,但是对于实际参数类型却有不同
实际参数对象类型 | 传递方式 | 具体形式 |
---|---|---|
实际参数为不可变对象 | 进行值传递 | 实际参数的值传递给形式参数,实际参数值不变 |
实际参数为可变对象 | 进行引用传递 | 实际参数的引用传递给形式参数,实际参数值变化 |
我感觉Python的实际参数似乎有类似于C语言指针的作用能通过函数将数值改变,对形式参数,有位置参数要求调用时的变量数量和位置和定义时的一样,否则会出现错误。 | ||
但是,Python又有关键字参数的方法,指的是用形式参数的名字来对应输入的参数值。暂时我还没有体会到它的方便…… | ||
最有趣的来了,Python有可变参数的方法,通过定义函数时设置一种格式,使得多个数据能输入函数。有*parameter和**parameter两种形式。 | ||
虽然可变参数很有趣,可惜的是我使用时,因为不熟悉出现了种种问题,可变参数的运用类似于C语言里的数组,只不过Python里没有数组,所有用了列表、元组以及字典代替。 | ||
总的来说,Python的参数传入,既可以一对一,也可以多对一传入。 | ||
3. 返回值和变量的作用域 | ||
如果函数被要求需要返回值,则可以使用return语句,return语句只要得到执行,就会直接结束所在函数的运行。 | ||
Python中一样有全局变量和局部变量,区别如下: |
变量类型 | 定义方式 | 作用域 |
---|---|---|
全局变量 | 函数外定义,函数内使用global关键字修饰定义 | 作用于函数内外 |
局部变量 | 函数内定义 | 只在函数内部有效 |
4. 匿名函数 | ||
匿名函数指没有名字的函数,Python中用lambda表达式创建匿名函数,适用于比较小的函数,反正我是不习惯用。 | ||
总结:Python的函数大体上和C语言相似,掌握基础没什么问题,但是Python的函数想比C语言还是比较简单便利。 |