|
发表于 2023-8-11 16:00:05
|
显示全部楼层
在上面的代码中,问题出现在以下几个地方:
1. 在判断指令是否合法时,应该将用户输入的指令转换为整数类型后再进行判断。可以使用`int()`函数将输入的字符串转换为整数。
2. 在判断用户名和密码是否正确时,使用了逻辑运算符`or`,但是应该使用逻辑运算符`and`。条件应该是当用户名和密码都匹配时才通过验证。
3. `if order == 1:`和`if order == 2:`两个条件判断语句内的代码没有缩进,导致后续的代码块不会执行。
修改后的代码如下所示:
- print("""欢迎来到鱼C论坛~=======================""")
- def myfunc1():
- print("""1.注册2.登录3.退出""")
- while True:
- myfunc1()
- order = int(input('请输入指令:')) # 将输入的指令转换为整数类型
- # 先判断用户给出的指令是否合理
- while order not in [1, 2, 3]:
- print('指令不合法')
- order = int(input('请再次输入号码指令:'))
- if order in [1, 2, 3]:
- break
- # 对应指令内容的弹出
- if order == 1:
- print("=======================")
- name = input('请输入用户名:')
- code = input('请输入用户密码:')
- print('恭喜您,注册成功!!')
- continue # 继续下一次循环
- if order == 2:
- print('=======================')
- while True:
- name = input('请输入用户名:')
- code = input('请输入用户密码:')
- # 用户检索
- if name == '小甲鱼' and code == 'FishC520': # 使用逻辑运算符and
- print('登录成功!')
- break
- else:
- print('用户信息错误')
- break
- if order == 3:
- print('=======================')
复制代码
这样修改后,代码会按照预期工作,正确判断指令的合法性,并且在用户名和密码匹配时进行登录。希望这能帮到你! |
|