5 - 函数
来源:互联网 发布:出纳日记账软件 编辑:程序博客网 时间:2024/06/06 09:15
1.函数的定义
def functionName(list of parameters): # fucntion body
示例:
def sum(i1, i2): result = 0 for i in range(i1, i2 + 1): result += 1 return resultdef main(): print("Sum from 1 to 10 is", sum(1, 10)) print("Sum from 20 to 37 is", sum(20, 37))if __name__ == "__main__": main()
2.参数的传递
- 位置参数:按函数中定义的顺序传递参数,而且数量、类型必须相匹配
- 关键字参数:指定要传递的参数的名字,通过 name = value 的形式传递每个参数。通过关键字传参可以以任何顺序出现。
- 二者混合出现:位置参数不得出现在任何关键字参数之后
函数
def func(p1, p2, p3):
正确的调用方式:
func(30, p2 =4 , p3 = 10)
错误的调用方式:
func(30, p2 =4 , 10)
3.通过传引用来传递参数
调用函数时,实参的值就被传递给形参,这个值通常就是对象的引用值,这种方式被称作值传递。
也就是说,如果室参事一个数字或者字符串的时候,不管函数中的形参怎么变化,这个实参是不受影响的。
这样的原因是因为数字字符串被称作不可变对象。不可变对象的内容是不能被改变的。
当你将一个新数字赋值给变量时,Python会为这个新数字创建新对象,然后将这个新对象的引用赋值给这个变量。
4.模块化代码
- 在Python中你可以将函数的定义放置在一个模块文件中,这种文件的后缀为.py,之后这些模块可以被导入到程序中以实现重用。
- 这些模块文件应该和其他程序放到一个地方
- 一个模块可以包含不止一个函数,每个函数都有不同的名字,如果模块中有两个名字相同的函数,那么前面的函数会被忽略。
- 关于函数的重载问题:Python并不像Java、C++那样支持函数重载(函数同名不同参),但是Python提供的位置参数和关键字参数机制,使其传参方式变得多样化,间接地实现了函数的重载问题。
- Turtle、random、math等模块是定义在Python库中的模块,这样它们可以被导入到任何一个Python程序中。
5.变量的作用域
- 局部变量:数内部定义的变量,只能在函数内部被访问。
- 全局变量:在所有的函数之外创建,可以被所有的函数所访问。在函数中定义的变量也可以通过用
global
关键字来修饰变成全局变量。 - 请注意,尽管允许使用全局变量,但是在一个函数中允许修改全局变量并不是什么好习惯,因为这样会是程序更容易出错。
6.默认参数值
- Python允许定义带默认参数值的函数。当函数被调用时无参数,那么这些默认值就会被传递给实参。
例如:
def printArea(width = 1, height = 2): area = width * height print("width:", width, "\t height:", height, "\t area:", area) printArea()printArea(width = 1.2)
7.返回多个值
Python的return语句允许返回多个值
def sort(num1, num2): if num1 < num2: return num1, num2 else: return num2, num1n1, n2 = sort(3, 2)print("n1 is", n1)print("n2 is", n2)
0 0
- 5 - 函数
- 5、函数
- C++基础5:函数和函数指针
- Creo二次开发--函数(5)--字符串类函数
- C++虚函数(5) - 虚析构函数
- 5函数式编程---高阶函数
- 5函数式编程---返回函数
- 5函数式编程---匿名函数
- oracle--常用函数5--转换函数
- PHP函数大全(5)
- 函数详解(5)
- 5、AddDataSeries函数
- 第5章 函数
- java常用函数(5)
- 11.1.5 socketpair()函数
- ACM内部函数5
- 第5章 函数
- STL(5)find_first_of函数
- Tomcat(8005,8080,8009)端口占用问题常见原因及解决方法
- aSmack 使用
- 4 - 循环
- 写开发文档时如何生成目录结构
- 【排序算法】总结
- 5 - 函数
- Mac上配置adb环境变量
- 杜升初
- 多线程数据共享
- Linux上安装weblogic
- Vincent's SQL Server Cookbook: Script the Collation
- javascript对象之this、currentTarget和target
- 指针前钱解析
- OO的思考