python3学习(四)——函数
函数的定义
函数即方法。函数就是一个“功能部件”,是组织好的、可重复使用的、用来实现特定功能的代码段。
怎样来定义一个函数?
有一些简单规则:
1.函数代码块以def关键字开头,后接函数标识符名称和圆括号();
2.任何传入参合和自变量必须放在圆括号中间,圆括号之间可以用于定义参数;
3.函数内容以冒号起始,并且缩进。
例如以下计算面积的实例:
def area(width,height):
print(width * height)
area(3,4)
运行结果:12
其中,用def关键字定义函数,area是函数名,width和height是形参,对应的3和4是实参。
函数的参数
默认参数
函数的参数支持默认值。当某个参数没有传递实际的值时,函数将使用默认参数计算。
例如可以给area()的参数都提供一个默认值:
def volume(length,width,height=4):
print(length * width * height)
volume(3,3)
volume(1,2)
运行结果:
36
8
其中height是默认参数,不是必填的。
位置参数
参照以上实例,在volume函数中,lenght、width是位置参数。
在调用volume函数时,volume函数中有几个参数就必须传几个参数,不然会报错。
关键字参数
使用关键字参数允许函数调用时参数的顺序和声明时不一致。
如果有很多个位置参数,记不住顺序,可以使用位置参数的名字来指定调用,比如参照上一个实例,调用volume函数时,可以这么写:volume(width=5,length=1)
可变参数
有时候可能需要一个函数能处理比当初声明时更多的参数,这些参数就是可变参数,这些参数在声明时不会命名,加了星号*的参数会以元组的形式导入,存放所有未命名的变量参数。
def printinfo(arg1, *vartuple):
"打印任何传入的参数"
print("输出: ")
print(arg1)
print(vartuple)
# 调用printinfo 函数
printinfo(70, 60, 50)
运行结果:
70
(60, 50)
全局变量和局部变量
在函数外定义的变量拥有全局作用域的就是全局变量,全局变量可以在整个程序范围内访问。
在函数内定义的变量只拥有一个局部作用的就是局部变量,局部变量只能在其被声明的函数内部访问。
如下实例:
total = 0 # 这是一个全局变量
# 可写函数说明
def sum(arg1, arg2):
# 返回2个参数的和."
total = arg1 + arg2 # total在这里是局部变量.
print("函数内是局部变量 : ", total)
return total
# 调用sum函数
sum(10, 20)
print("函数外是全局变量 : ", total)
运行结果:
函数内是局部变量 : 30
函数外是全局变量 : 0
global关键字
当内部作用域想修改外部作用域的变量时,就可以用到global关键字了,但是要少用。
如下实例:
num = 1
def fun1():
global num # 需要使用 global 关键字声明
print(num)
num = 123
print(num)
fun1()
print(num)
运行结果:
1
123
123
浙公网安备 33010602011771号