代码在这里和图片
报错模式见图片
不知道哪里出了问题,也可能有多处问题,提前感谢大神们的解答
n=input("请输入指令:")
def get_int(n):
return int(n)
get_int(n)
fd_db={}
def register(name,passwd):
name = input("请输入用户名:")
passwd= input("请输入密码:")
fd_db[name]=passwd
print("恭喜,登录成功~")
def login(name,passwd):
name = input("请输入用户名")
passwd= input("请输入密码:")
if name not in fd_db:#这里应该用get(name)
print("该用户不存在")
name = input("请重新输入用户名")
if passwd != fd_db[name]:#while fishc_db.get(name) != encrypt(passwd):
print("密码错误!")
passwd= input("请重新输入密码:")
else:
print("恭喜,登录成功~")
if n =!3:
if n =="1":
register()
if n== "2":
login()
else:
break
本帖最后由 isdkz 于 2023-3-21 00:05 编辑
你的代码存在以下几个问题:
1、get_int 在这里体现不出有什么作用,把 get_int 删掉
2、你在比较 n 和 3 时使用了错误的操作符,应该使用 != 而不是 =!。
3、直接用字符串 "3" 来比较,而不是用整数 3
4、break 语句不能单独使用,因为它需要在循环中才能起作用。所以 if 语句应该是要放在循环里面,且在循环中判断指令是否正确
5、最后面的 if 逻辑也有点问题
6、在你的代码中,register() 和 login() 函数都有 name 和 passwd 参数,但是在调用这些函数时,你并没有传递这些参数。你应该在函数定义中移除这些参数。
以下是修改后的代码:
n = input("请输入指令:")
fd_db = {}
def register():
name = input("请输入用户名:")
passwd = input("请输入密码:")
fd_db[name] = passwd
print("恭喜,注册成功~")
def login():
name = input("请输入用户名:")
passwd = input("请输入密码:")
if name not in fd_db:
print("该用户不存在")
name = input("请重新输入用户名")
if passwd != fd_db[name]:
print("密码错误!")
passwd = input("请重新输入密码:")
else:
print("恭喜,登录成功~")
while True:
if n == "1":
register()
elif n == "2":
login()
elif n == "3":
break
else:
print("指令错误,请重新输入")
n = input("请输入指令:")
|