python函数
什么是函数
函数其实是一把工具
使用函数的好处:
1.解决代码冗余问题。
2.使代码的结构更清晰
3.容易管理
函数的使用必须遵循:先定义,后调用
函数定义语法:
def 函数名(参数1,参数2....):
'''注释:声明函数'''
逻辑代码
return 返回值
def:defind 定义。
函数名:必须看其名知其意。
():接受外部传入的参数
注释:用来声明函数的作用。
return :返回给调用者的值
定义函数的三种形式:
1.无参函数
不需要接受外部传入的参数。
2.有参函数
需要接受外部传入的参数。
3.空函数
pass
1.无参函数
def login():
user=input('请输入用户名').strip()
pwd=input('请输入密码').strip()
if user=='tank' and pwd=='123':
print('login successful!')
else:
print('login error!')
#函数的内存地址
print(login)
#函数调用
login()
2.有参函数
#username,password用来接受外部传入的值
def login(username,password):
user=input('请输入用户名').strip()
pwd=input('请输入密码').strip()
if user==username and pwd==password:
print('login successful!')
else:
print('login error!')
#若函数在定义时需要接受参数,调用者必须为其传参
login('tank','123')
3.空函数
def login():
#代表什么都不做
pass
参数的参数:
#在定义阶段:x,y称之为形参
def func(x,y):
print(x,y)
#在调用阶段:10,100称之为实参
func(10,100)
位置参数:
位置形参
位置实参
必须按照位置--传参
#在定义阶段:位置形参
def func(x,y):
print(x,y)
#在调用阶段:10,100称位置实参
func(10,100)
关键字参数:
关键字实参
按照关键字传参
#位置形参x,y
def func(x,y):
print(x,y)
#在调用阶段:x=10,y=100称为关键字参数
func(y=111,x=10)
#不能少传
#func(y=111)#报错
#不能多传
默认参数
在定义阶段,为参数设置默认值
def foo(x=10,y=20):
print(x,y)
#不传参,则使用默认参数
foo()
#传参,使用传入的参数
foo(200,300)
函数的嵌套定义:
在函数内部定义函数
函数对象:
函数的内存地址称之为函数对象
函数的名称空间:
内置:
python解析器自带的都称之为“内置名称空间”。
全局:
所有顶着头写的变量,函数...都称之为“全名称空间”。
局部:
在函数内部定义的,都称为“局部名称空间”
名称空间加载顺序:
内置->全局名称空间->局部名称空间
名称空间查找顺序:
局部名称空间->全局名称空间->内置
#函数的嵌套定义
def func1():
print('from func1...')
def func2():
print('from func2...')
#函数对象
print(func1)
def f1():
pass
def f2():
pass
dic1={'1':f1,'2':f2}
choice=input('请选择功能编号:')
if choice=='1':
print(dic1[choice])
dic1[choice]()
elif choice=='2':
print(dic1[choice])
dic1[choice]()
x=10
#名称空间
#函数的嵌套定义
def func1():
#x=20
print('from func1...')
print(x) #报错 代码时自上由下执行,print(x)无法引用x=30,所以报错
x=30
def func2():
print('from func2...')
func1()