一、简述定义函数的三种方式
1.空函数
def register():
#注册功能,暂时不会写
pass #写个空函数占位置
2.有参函数
def compare(x,y):
if x>y:
print(x)
else:
print(y)
compare(30,40) #打印40
3.无参函数
def func():
print(1)
func()
二、简述函数的返回值
1.如果函数没有返回值,默认返回None
None就是返回值,使用函数后拿到的一个结果
def compare():
print(1,compare) #<function compare at 0x000000000581C620> 函数内存地址
res=compare() #res接收一个变量值,函数的返回值
print('res:',res)
compare()
2.函数可以通过return返回出返回值
def compare():
x=1
y=2
if x>y:
return x
else:
return y
res=compare()
print(res)
3.return 可以终止函数
def print_1_10():
for i in range(10):
if i==5:
return #终止函数,终止的这个值不打印出来
print(i)
print_1_10()
4.return 可以返回多个值,以元组形式存储
def ret_nums():
return 10,20,30
res=ret_nums()
print(res) #(10, 20, 30)
print(res[2]) #30
三、简述函数的参数
1.形参和实参
def compare(x,y): #形参,一般具有描述的意义,毫无作用(接收实参)--》相当于变量名,接收变量值
if x>y:
print(x)
else:
print(y)
compare(30,40) #实参,具有实际的意义,具体的一个值(传给形参)--》相当于变量值
2.位置形参:从左到右一个一个的写过去,就叫位置形参
3.默认形参:给位置形参一个默认值,他就变成了默认形参,以后调用不需要为它存值,但是如果存值它也会接收。
默认形参必须得放在位置形参后面
4.关键字实参:位置实参加上默认值,然后按照位置形参名传值,一般用于参数过多(建议函数参数不超过3个)
关键字实参,也必须在位置参数后面
def compare2(a,b):
if a>b:
return a
else:
return b
def compare(a,b,c,d):
print(a,b,c,d)
res1=compare2(a,b)
res2=compare2(c,d)
res3=compare2(res1,res2)
return res3
res=compare(4,0,d=2,c=1)
print(res) #4,0,1,2 最大4
四、编写注册函数
def register():
print('注册功能')
usename_inp=input('请输入你的用户名:')
print('usename_inp:',usename_inp)
pwd_inp=input('请输入你的密码:')
print('pwd_inp:',pwd_inp)
with open('user_info.txt','a',encoding='utf8') as fa:
if ':'in usename_inp:
print('输入错误,用户名不能包含:')
else:
fa.write(f'{usename_inp}:{pwd_inp}')
print('保存成功')
register()
五、编写登录函数
def login():
print('登录功能')
with open('user_info.txt','r',encoding='utf8')as fr:
data=fr.read()
data_split=data.split(':')
usename,pwd=data_split[0],data_split[1] #一次性定义多个变量
usename_inp = input('请输入你的用户名:')
pwd_inp = input('请输入你的密码:')
if usename_inp==usename and pwd_inp==pwd:
print('登录成功')
else:
print('登录失败')
login()