|
30鱼币
代码在这里和图片
报错模式见图片
不知道哪里出了问题,也可能有多处问题,提前感谢大神们的解答
- 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("请输入指令:")
复制代码
|
-
代码
-
报错
最佳答案
查看完整内容
你的代码存在以下几个问题:
1、get_int 在这里体现不出有什么作用,把 get_int 删掉
2、你在比较 n 和 3 时使用了错误的操作符,应该使用 != 而不是 =!。
3、直接用字符串 "3" 来比较,而不是用整数 3
4、break 语句不能单独使用,因为它需要在循环中才能起作用。所以 if 语句应该是要放在循环里面,且在循环中判断指令是否正确
5、最后面的 if 逻辑也有点问题
6、在你的代码中,register() 和 login() 函数都 ...
|