目录
一、1.不含参数,不含返回值的函数
def printOneLine():
print("-"*10)
print("君子和而不同")
print("-"*10)
printOneLine()
运行结果如下:
----------
君子和而不同
----------
2.含参数,不含返回值的函数
def addNum(a,b): # 冒号 千万不能忘!!!
c = a + b
print(c)
addNum(11,22) #函数调用
运行结果如下:
33
3.含参数,带返回值的函数
def addNum(a,b):
return a + b #通过 return 来返回运算结果
c = addNum(11,22) #可见,此时的addNum(a,b)代表的是一个数值,而非函数
print(c)
运行结果如下:
33
4.含参数,带多个返回值的函数
def divid(a,b):
shang = a//b
yushu = a%b
return shang,yushu #多个返回值用 逗号 相隔!!!
sh,yu = divid(5,2) #当有多个返回值时,应该按这种方法去一一对应,避免后面数据量较大时出现错误
print("商:%d,余数:%d"%(sh,yu))
运行结果如下:
商:2,余数:1
二、局部变量和全局变量
在一个函数中定义的变量,只能在本函数中使用(局部变量)
在函数外定义的变量,可以在所有的函数中使用(全局变量)
1.局部变量
def test1():
a = 100 #可见,修改前和修改后 a 的值不同,因为这里的 a 属于局部变量
print("修改前: %d"%a)
a = 300
print("修改后: %d"%a)
#局部变量一般定义在函数里
def test2():
a=600 #不同的函数可以定义相同的名字,彼此无关
print(a)
test1()
test2()
运行结果如下:
修改前: 100
修改后: 300
600
2.全局变量
a = 666 #定义的是全局变量
def test1():
print(a)
def test2():
print(a)
#test1() 和 test2() 函数都调用了全局变量 a = 666
test1()
test2()
运行结果如下:
666
666
当全局变量和局部变量名字相同时
a = 666
def test1():
a = 300 #局部变量优先
print("修改前: %d"%a)
a = 500
print("修改后: %d"%a)
def test2():
print(a) #没有局部变量,就默认使用全局变量
test1()
test2()
运行结果如下:
修改前: 300
修改后: 500
666
3.特殊处理(在函数中修改全局变量)
如果我就是要在函数中修改全局变量呢?
a = 666
def test1():
global a #声明全局变量在函数中的标识符
print("修改前: %d"%a)
a = 500
print("修改后: %d"%a)
def test2():
print(a) #此时的 a 是被 test1() 函数修改后的值
test1()
test2()
运行结果如下:
修改前: 666
修改后: 500
500