函数
定义:函数对程序逻辑进行结构化或过程化的一种编程方式,写函数的目的是为了代码的重用。
1.自定义函数:自定义函数通过def关键字定义。
def函数名(参数):
语句块(函数体)
2.形参和实参
<1>形参:定义函数时,在函数名后面括号内的参数叫形参。
<2>实参:调用函数时可以通过参数给函数传值,通过参数赋值的过程叫传参。而调用函数时这个参数就叫实参。
def fun99(x): #设置一个形参
for i in range(1,x+1): #实参的值可以传递到函数体内
for j in range(1,i+1):
print(j,'*',i,'=',i*j,'\t',end='')
print('\n')
print("It''s Main")
fun99(3) #数字3即是实参的值
fun99() #调用函数未传参
3.返回值
返回值是函数的一部分,即使不设置,以然也会有返回值。(注:由于这个没有设置返回值,所以输出结果看到的是None。)
x=fun99(3) #等号后调用了函数,此时就已经想屏幕打印结果了,函数的返回值赋值给了x
print(x) #打印函数的返回值
变量作用域
1.局部变量
局部变量是在函数内定义的变量,这种变量只能在函数内部使用。局部变量的作用域只在它被定义的巨块中。
如下例:
x = 10
def func(i):
print("x=",i)
x = 100
y = 50
print("local x =",x)
print("local y =",y)
func(x)
print("x=",x)
print("y=",y)
2.全局变量
定义:如果想要函数内的变量作用于函数之外,这种变量的作用域就必须是全局的。能够作用于函数内外的变量,叫作全局变量。(函数以外定义的变量。)
全局变量可以通过global语句定义,改造一下上面的程序,把x和y定义成全局变量:
x=10
def func(i):
global x,y
print("x = ",i)
x = 100
y = 50
print("local x =",x)
print("local y =",y)
func(x)
print("x = ",x)
print("y = ",y)
运行结果如下:
x = 10
local x = 100
local y = 50
x = 100
y = 50
参数的类型
1.位置参数
定义:实参的赋值时按照形参定义的顺序传递。
def func(x,y,z):
print(x,y,z)
func(1,2,3) #TypeError 在函数执行时,定义的形参没有实参,就会报错
2.命名传参
定义:执行函数时,形参名=值(实参)方式赋值。
注:<1>使用命名可以不按照形参定义的顺序赋值。
<2>查看函数帮助信息help(函数名):
print(help(func1))
3.默认值参数
定义:定义函数时,给形参设置默认值。
def func2(x=1,y=2,z=3):
print(x,y,z)
func2(y=2222) #使用默认值参数时,可以不用给拥有默认值的形参赋值
4.可变长度参数:在参数名前加 *
形参会将接受到的所有参数放置在一个元组中。
求最大值:
def func3(*args):
m = args[0]
for i in args[1:]:
if m < i:
m = i
return m
print(func3(1,2,23,3,3,4))
5.可变长命名参数 : **形参
使用字典类型接收所有的参数{"形参":实参}
def func4(**kwargs):
print(kwargs)
func4(name="root",password="123456")
input()