python函数与模块化编程
函数基本使用
例:计算C = n!/m!(n-m)
分析:将求阶乘的功能代码封装起来从而得到一个函数,每次求阶乘时,只需通过修改参数即可调用函数。
函数参数传递:
def fact(a):
xxx
return a
c = fact(n)
定义时形参为a:fact(a),调用时实参为n:fact(n),这个过程就是将实参n的值传递给形参a。Python中函数支持以多种方式传递参数,包括位置传递、关键字传递、默认值传递、包裹传递、解包裹传递及混合传递。
函数返回:return语句可以同时将0个、1个或多个函数运算后得到的结果返回给函数调用处的变量。当存在多个返回值时,会形成一个元组。
def Mult(n):
s = 0
m = 1
for i in range(1, n + 1):
s += i
m = i * m
return s, m
Sum, Mul = Mult(5)
print('累加和:{},阶乘积:{}'.format(Sum, Mul))
T = Mult(6)
print(type(T))
结构:
累加和:15,阶乘积:120
<class 'tuple'>
函数可以没有返回值,即没有return语句。如果没有return体语句,则会在函数体语句运行完成后退出函数。
变量作用域
根据变量作用域的不同,可以将变量分为两类:全局变量和局部变量
- 全局变量是指在函数之外定义的变量,一般没有缩进,在程序执行的全过程有效。
- 局部变量是指在函数内部定义的变量,仅在函数内部有效,一旦退出函数,变量就不再有效。
global在函数体内定义全局变量:由于在函数体中使用global关键字声明的变量n是全局变量,变量n在主程序和函数体中使用的是同一个内存空间。故而在调用函数时会改变内存空间中的值.
def fun(a,b):
global n
n