函数的概念
如果在开发程序时,需要某块代码多次,但是为了提高编写的效率以及代码的重用,所以把具有独立功能的代码块组织为一个小模块,这就是函数
函数的定义和调用
函数定义
def 函数名():
代码
demo:
# 函数的定义
def printinfo():
print('-----------------------')
print(' 人生苦短,我用Python ')
print('-----------------------')
#函数的调用
printinfo()
printinfo()
运行结果
带参数的函数
def add2Num(a,b):
c = a+b
print(c)
add2Num(11,22)
运行结果
带返回值的函数
#带返回值的函数
def add2Num(a,b):
return a+b #通过return来返回运算结果
result = add2Num(11,22)
print(result)
# print(add2Num(11,22))
运行结果
返回多个值的函数
def divid(a,b):
shang = a/b
yushu = a%b
return shang,yushu #多个返回值用都好分隔
sh,yu = divid(5,2) #需要使用多个值来保存返回内容
print('商:%d,余数:%d'%(sh,yu))
运行结果
打印一条线
def printOneLine():
print("-"*30)
根据用户输入的数字,打印相应数量的线条
def printNumLine(num):
i = 0
while i<num:
printOneLine()
i+=1
printNumLine(3)
# printOneLine()
运行结果
求3个数的和
第一种
def sum3Number(a,b,c):
return a+b+c
print(sum3Number(10,20,30))
运行结果
第二种
def shu(a,b,c):
sum = a+b+c
average = sum/3
return sum,average
su,av = shu(1,2,3)
print('总和:%d,平均值:%d'%(su,av))
运行结果
完成3个数的平均值计算
def sum3Number(a,b,c):
return a+b+c
print(sum3Number(10,20,30))
def average3Number(a,b,c):
sumResult = sum3Number(10,20,30)
aveResult = sumResult/3.0
return aveResult
result = average3Number(10,20,30)
print('平均值为:%d'%result)
运行结果
全局变量和局部变量
def test1():
a = 300 #局部变量
print('test1---------修改前:a = %d'%a)
a = 100
print('test1---------修改后:a = %d'%a)
def test2():
a = 500 #不同的函数可以定义相同的名字,彼此无关
print('test2---------a = %d' %a)
test1()
test2()
运行结果
全局变量
a = 100 #全局变量
def test1():
print(a)
print(a)
def test2():
print(a)
test1()
test2()
运行结果
全局变量和局部变量相同名字
# 全局变量和局部变量相同名字
a = 100
def test1():
a = 300 #局部变量优先使用
print('test1---------修改前:a = %d'%a)
a = 200
print('test1---------修改后:a = %d'%a)
def test2():
print('test2---------a = %d' %a) #没有局部变量,默认使用全局变量
test1()
test2()
运行结果
在函数中修改全局变量
# 在函数中修改全局变量
a = 100
def test1():
global a #声明全局变量在函数中的标识符
print('test1---------修改前:a = %d'%a)
a = 200
print('test1---------修改后:a = %d'%a)
def test2():
print('test2---------a = %d' %a) #没有局部变量,默认使用全局变量
test1()
test2()
运行结果