Python函数基础
1. 定义函数的三种方式
空函数
def func1():
# TODO .....
pass
无参函数
def fun1():
print("test")
有参函数
def compare(a, b):
if a > b:
return True
2. 函数的返回值
函数可用return 返回值
return 可终止函数
return 可返回多个值,返回值之间用逗号隔开
返回值可以是任意数据类型
当无返回值时,默认返回None
3. 函数的参数
形参,定义函数时使用,一般具有描述意义,用于接收实参
实参,调用函数时使用,具体的值
形参有位置形参,默认形参
实参有位置实参,关键字实参
练习
编写注册函数, 将用户信息保存到文件内,用户信息可保存为`nick:123|sean:456|tank:789'
编写登录函数, 从文件内读取用户信息进行身份识别
import os
def check_forbid_char(input_str, forbid_str_list):
for item in forbid_str_list:
if item in input_str:
return item
def check_input(prompt, forbid_str):
ans = input(prompt + "\n").strip()
item = check_forbid_char(ans, forbid_str)
if item:
print("输入中不允许出现%s" % item)
elif len(ans) == 0:
print("输入不能为空")
else:
return ans
def register():
forbid_str = '|:'
name = check_input("请输入姓名", forbid_str)
passwd = check_input("请数目密码", forbid_str)
file_exists = os.path.exists(file_name)
if name and passwd:
with open(file_name, "a") as f:
# 如果文件存在,写入数据前,加上分隔符 |
if file_exists:
f.write("|")
f.write(f"{name}:{passwd}")
print('数据写入成功!')
else:
print('数据未写入,请重新输入')
file_name = "user_infor.txt"
def read_data():
with open(file_name, "r") as f:
all_users_infor = {}
data = f.read().split("|")
for user in data:
user_infor = user.split(":")
all_users_infor[user_infor[0]] = user_infor[1]
return all_users_infor
def login_in():
# 读取用户信息
data = read_data()
name = input("请输入用户名:\n").strip()
passwd = input("请输入秘密:\n").strip()
if name in data.keys():
if data[name] == passwd:
print("登陆成功!")
else:
print("密码错误")
else:
print("用户名不存在")
choose = input("注册请输入1,登陆请输入2:\n").strip()
if choose == "1":
register()
elif choose == "2":
login_in()
else:
print("输入选项错误")