1. 简述定义函数的三种方式
空函数
只定义函数名,不写具体代码,先占个位子;
有参函数
有参数的函数,在函数定义阶段括号内有参数;
无参函数
没有参数的函数,在函数定义阶段括号没有函数。
2. 简述函数的返回值
什么是返回值
函数内部代码经过处理获得的结果
返回值的特点
- 如果没有返回值,默认返None;
- 函数通过return返回出返回值;
- return可以终止函数;
- return可以返回多个值,以列表形式储存。
3. 简述函数的参数
形参(形式参数)
即函数定义阶段括号内的参数,具有描述意义,用来接收实参(本质是变量名)
实参(实际参数)
即函数调用阶段括号内的参数,具有实际意义,是具体的值,用来传给形参(本质是变量值)
位置形参
在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参。
特点:按照位置定义的形参,都必须被传值,多一个不行,少一个也不行。
位置实参
在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参。
特点:按照位置为对应的形参依次传值。数量上必须和位置形参相等。
默认形参
在定义函数的阶段就已经被赋值的形参。
特点:在调用时可以不用为其赋值。但是如果你为他传值,他也会接收。默认形参在括号内的位置必须放在最后面。
关键字实参
在调用函数时,按照key = value的形式为指定的参数传值,即为关键字实参。
特点:可以打破位置的限制(不按顺序传参)但仍能为指定的形参赋值。
4. 编写注册函数
- 将用户信息保存到文本内,用户信息可保存为
nick:123|sean:456|tank:789
# 注册
def register():
print('注册功能')
user_name = input('请输入你的名字:')
print(f'用户名为:{user_name}')
user_psd = input('请输入你的密码:')
print(f'密码为:{user_psd}')
with open('user_info.txt','a',encoding='utf8') as f:
if ':' in user_name:
print('用户名中不能含有:')
else:
f.write(f'|{user_name}:{user_psd}')
print('保存成功')
register()
5. 编写登录函数
- 从文件内读取用户信息进行身份识别
# 登录
def login():
print('登录功能')
with open('user_info.txt','r',encoding='utf8') as fi:
user_date = fi.read()
date_list = user_date.split('|')
print(date_list)
lit2 = []
for user_info in date_list:
msg = user_info.split(':')
print(msg)
lit2.append(msg)
print(lit2)
user_inp_name = input('请输入用户名:')
user_inp_psd = input('请输入密码:')
count = 1
for j in lit2:
if user_inp_name == j[0] and user_inp_psd == j[1]:
print('登陆成功')
break
else:
count += 1
if count > len(lit2):
print('登陆失败')
login()