鱼C论坛

 找回密码
 立即注册
查看: 1807|回复: 7

[已解决]python 26课 动动手,为什么最后一步退出程序,没有结束程序,而是重新进入输入用户名

[复制链接]
发表于 2017-4-8 17:51:39 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
def menu():
    print("""
丨---新建用户:N/n ---丨
丨---登入帐号:E/e ---丨
丨---退出程序:Q/q ---丨""")
    return ""


names = {}
print(aaa())

while True:
    code = input('请输入指令代码:')

    if code == 'N' or 'n':
        key = input('请输入用户名: ')
        if key  in names:
            print("此用户已经被使用,请重新输入: ")
            
        else:
            value = input("请输入密码: ")
            names.setdefault(key, value)
            print("注册成功,赶紧试试登录吧^_^")
            print(menu())

   
        
    code = input('请输入指令代码:')
    if code == 'E'or 'e':
        name = input('请输入用户名: ')
        if name not in names:
            print('您输入的用户不存在,请重新输入: ')
        else:
            value = input("请输入密码: ")
            if value in names[name]:
                print('欢迎进入上帝视角系统,请点击右上角的X结束程序!')
            
        
      
   
    if code == 'Q' or 'q':
        break



丨---新建用户:N/n ---丨
丨---登入帐号:E/e ---丨
丨---退出程序:Q/q ---丨

>>>请输入指令代码:q
>>>请输入用户名:
为什么不是直接退出
最佳答案
2017-4-8 18:28:10
if code == 'N' or 'n':这一句判断默认会为TRUE正确的写法应该时候if code == 'N' or code == 'n':
直接or 'n'相当于or True一样,变成中非0值都是为True,而且==优先级大于or所以先执行前边的code == 'N'
而不是你想象的直接code与两个比较

为什么不是直接退出

为什么不是直接退出
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-4-8 18:28:10 | 显示全部楼层    本楼为最佳答案   
if code == 'N' or 'n':这一句判断默认会为TRUE正确的写法应该时候if code == 'N' or code == 'n':
直接or 'n'相当于or True一样,变成中非0值都是为True,而且==优先级大于or所以先执行前边的code == 'N'
而不是你想象的直接code与两个比较
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-8 20:29:23 | 显示全部楼层
lumber2388779 发表于 2017-4-8 18:28
if code == 'N' or 'n':这一句判断默认会为TRUE正确的写法应该时候if code == 'N' or code == 'n':
直接or ...

谢谢指教!可是输入指令代码N,E是正常执行的,if Q的时候却回到输入用户名这,而不是结束,我改了if code == 'Q' or code == 'q'也还是这样。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-8 20:39:17 | 显示全部楼层
除了lumber2388779版主指出的问题外,把第二个code = input('请输入指令代码:')去掉。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2017-4-8 22:21:22 | 显示全部楼层
luck78 发表于 2017-4-8 20:29
谢谢指教!可是输入指令代码N,E是正常执行的,if Q的时候却回到输入用户名这,而不是结束,我改了if code ...


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-8 22:22:05 | 显示全部楼层
lumber2388779 发表于 2017-4-8 18:28
if code == 'N' or 'n':这一句判断默认会为TRUE正确的写法应该时候if code == 'N' or code == 'n':
直接or ...

感谢!已经解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-8 22:22:54 | 显示全部楼层
冬雪雪冬 发表于 2017-4-8 20:39
除了lumber2388779版主指出的问题外,把第二个code = input('请输入指令代码:')去掉。

好的,谢谢!问题解决了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-4-8 22:55:24 | 显示全部楼层
冬雪雪冬 发表于 2017-4-8 20:39
除了lumber2388779版主指出的问题外,把第二个code = input('请输入指令代码:')去掉。

感谢冬雪大大补充
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-22 16:27

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表