简述定义函数的三种方式
空函数、无参函数、有参函数
简述函数的返回值
函数内部代码经过一系列的逻辑处理返回的结果
- 函数没有返回值,默认返回None
- 函数可以通过return返回出返回值
- return可以终止函数
- return可以返回多个值
简述函数的参数
形参
在定义函数时括号里的参数就是形参,具有描述意义,没有实际意义,本质上是变量名
实参
在调用函数时传入的值,称为实参,本质上就是变量值
位置参数
位置形参
在定义函数时,按照从左往右的顺序依次定义,就是位置形参
位置实参
调用函数时,按照从左往右的顺序依次传入值,就是位置实参。有多少个位置形参,就有多少个位置实参。
默认形参
- 在定义函数阶段就已经赋值,在调用函数时就不需要传值
- 在调用函数时传值,这样的值也是可以改变的
- 默认形参在位置形参之后
关键字实参
在调用函数时,按照key=value的形式为指定的参数传值,称为关键字实参
关键字实参在位置实参之后
编写注册函数
def register():
username_inp = input('请输入用户名:').strip()
pwd_inp = input('请输入密码:').strip()
print(f'用户名:{username_inp}, 密码:{pwd_inp}')
with open('user_info.txt', 'a', encoding='utf8') as fa:
if (':'or '.') in username_inp:
print('输入错误, 请重新输入!')
else:
fa.write(f'{username_inp}:{pwd_inp}
')
print('注册成功')
register()
编写登录函数
def login():
with open('user_info.txt', 'r', encoding='utf8') as fr:
data = fr.read()
data_list = data.split()
# print(data_list)
username_inp = input('请输入用户名:').strip()
pwd_inp = input('请输入密码:').strip()
for i in data_list:
# print(i)
username = i.split(':')[0]
pwd = i.split(':')[1]
if username == username_inp and pwd == pwd_inp:
print('登录成功!')
break
else:
print('登录失败!')
break
login()