1.定义函数的三种方式
定义函数时参数是函数体接收外部传值的一种媒介,其实就是一个变量名。
1.空函数
当你只知道你需要实现某个功能,但不知道该如何用代码实现时,你可以暂时写个空函数占位,然后先实现其他的功能。
def func():
pass
2.有参函数
在函数定义阶段括号内有参数,称为有参函数。需要注意的是:定义时有参,意味着调用时也必须传入参数。如果函数体代码逻辑需要依赖外部传入的值,必须得定义成有参函数。
3.无参函数
在函数阶段括号内没有参数,称为无参函数。需要注意的是:定义时无参,意味着调用时也无需传入参数。如果函数体代码逻辑不需要依赖外部传入的值,必须得定义成无参函数。
2.函数的返回值
函数内部代码经过一些逻辑处理获得的结果。
- return是一个函数结束的标志,函数内也可以有多个return,只要执行到return,函数就会执行。
- return的返回值可以返回任意数据类型
- return的返回值无个数限制,即可以使用逗号隔开返回多个值
0个:返回None
1个:返回值是该值本身
多个:返回值是以列表形式体现
3.函数的参数
1.形参和实参
(1).形参
在函数定义阶段括号内定义的参数,称之为形式参数,简称形参,本质就是变量名。
(2).实参
在函数调用阶段括号内传入的参数,称之为实际参数,简称实参,本质就是变量的值。
2.位置参数
(1).位置形参
在函数定义阶段,按照从左到右的顺序依次定义的形参,称之为位置形参。
特点:按照位置定义的形参,都必须被传值,多一个不行,少一个也不行。
(2).位置实参
在函数调用阶段,按照从左到右的顺序依次定义的实参,称之为位置实参。
特点:按照位置为对应的形参依次传值。
4.编写注册函数
1.将用户信息保存到文件内,用户信息可保存为
nick:123|sean:456|tank:789
def register():
print('注册功能')
username_inp = input ('请输入用户名:')
pwd_inp = input('请输入密码:')
print('pwd_inp:',pwd_inp)
with open('zhucezhanghao.txt','a',encoding='utf8') as fa:
if ':' in username_inp:
print('输入错误,不能包含特殊字符:')
else:
fa.write(f'{username_inp}:{pwd_inp}
')
print('保存成功')
register()
5.编写登入函数
1.从文件内读取用户信息进行身份识别
def login():
print('登入功能')
inp_username = input('请输入用户名:').strip()
inp_pwd = input('请输入密码: ').strip()
with open('zhucezhanghao.txt', 'rt', encoding='utf8') as fr:
for user_info in fr:
user_info = user_info.strip('
')
user_info_list = user_info.split(':')
if inp_username == user_info_list[0] and inp_pwd == user_info_list[1]:
print('登入成功')
break
else:
print('登入失败')
login()