注:所有代码部分均为连续的,“结果”为在jupyter分步运行结果
代码部分:
def function(): #定义一个函数
a = 1
b = 2
c = a + b
print('a=',a)
print('b=',b)
print('c=',c)
print('a+b=',c)
function()#调用函数
结果:
a= 1
b= 2
c= 3
a+b= 3
def function2(a,b): #定义一个带参数的函数,a,b为形参(局部变量),只有在函数的内部发生作用
c = a + b
print('a=',a)
print('b=',b)
print('c=',c)
print('a+b=',c)
function2(10,20)
结果:
a= 10
b= 20
c= 30
a+b= 30
function2(10,20)#函数定义后,在其他地方可以使用
结果:
a= 10
b= 20
c= 30
a+b= 30
function2(123,222)
结果:
a= 123
b= 222
c= 345
a+b= 345
a2 = 30 #定义在外部则变为全局变量
b2 = 40
function2(a2,b2)
结果:
a= 30
b= 40
c= 70
a+b= 70
print(a2,b2)
结果:
30 40
print(a,b)#因为a,b为局部变量,所以在外部无法打印
结果:
NameError Traceback (most recent call last)
<ipython-input-8-d206aaf65b2a> in <module>()
----> 1 print(a,b)
NameError: name 'a' is not defined
function2()#不传参数所以错误
结果:
TypeError Traceback (most recent call last)
<ipython-input-9-c21a446f4e1c> in <module>()
----> 1 function2()
TypeError: function2() missing 2 required positional arguments: 'a' and 'b'
function(100)#只传了一个参数所以错误
结果:--------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-10-fa2fafc0ac9c> in <module>()
----> 1 function(100)
TypeError: function() takes 0 positional arguments but 1 was given
def function3(a=10,b=20): #设置默认值
c = a + b
print('a=',a)
print('b=',b)
print('c=',c)
print('a+b=',c)
function3()
结果
a= 10
b= 20
c= 30
a+b= 30
function3(50)#传一个参数
结果
a= 50
b= 20
c= 70
a+b= 70
function3(20,30)#传两个参数
结果:
a= 20
b= 30
c= 50
a+b= 50
def function4(a,b=20): #设置默认值
c = a + b
print('a=',a)
print('b=',b)
print('c=',c)
print('a+b=',c)
function4() #a没有传参数
结果
TypeError Traceback (most recent call last)
<ipython-input-17-53b17406922d> in <module>()
----> 1 function4()
TypeError: function4() missing 1 required positional argument: 'a'
a = 1000#外部全局变量与内部局部变量重名
function3() #如果函数中的局部变量与全局变量重名,默认使用局部变量
结果
a= 10
b= 20
c= 30
a+b= 30
def function5(b=20): #设置默认值
global a #使用全局变量
c = a + b
print('a=',a)
print('b=',b)
print('c=',c)
print('a+b=',c)
function5()
结果
a= 1000
b= 20
c= 1020
a+b= 1020
def add(a,b):
c = a + b
return c
d = add(23,45)
print(d)
结果
68