鱼C论坛

 找回密码
 立即注册
查看: 1430|回复: 6

[已解决]while下if语句为啥不执行呀。。。

[复制链接]
发表于 2021-11-9 21:47:04 | 显示全部楼层 |阅读模式

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

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

x
萌新想请教各位大神,为什么这里的if语句不执行。。。



while True:
    print('新建用户 : N / n')
    print('登录账号 : E / e')
    print('退出程序 : Q / q')
    a = input('请输入一个代码')
    if a == 'N' or 'n':
        dict1 = {}
        b = input('请输入用户名')
        if b not in dict1:
            c = input('请输入密码')
            dict1[b] = c
            print('注册成功!赶紧试试登录吧!')
        else:
            b = input('用户名已存在,请重新输入')
            c = input('请输入密码')
            dict1[b] = c
            print('注册成功!赶紧试试登录吧!')
    if a == 'E' or 'e':
        b = input('请输入已注册用户名')        
        
        if b not in dict1:           
            b = input('用户名不存在请重新输入')
            continue
        else:
            c = input('请输入密码')
        while c != dict1:
            c = input('密码错误,请重新输入')
        print('欢迎登录系统')
    if a == 'q' or 'Q':
        print('正在退出。。。')
        break
[/b][/b]
最佳答案
2021-11-9 21:54:12
本帖最后由 suchocolate 于 2021-11-9 21:55 编辑

1)应该是这样: if a == 'N' or a == 'n',或简化一下这样最方便:if a in 'Nn':
2)多个同条件if可以用elif。
3)dict1字典应该放到if之前,其中元素赋值和取元素方式不对。应该是这样:dict1[b] = c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-11-9 21:53:50 | 显示全部楼层
       代码中所有这样的语句
if a == 'N' or 'n':
       要这样改:
if a == 'N' or a == 'n':
       也可以这样改
if a in 'Nn':
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2021-11-9 21:54:12 | 显示全部楼层    本楼为最佳答案   
本帖最后由 suchocolate 于 2021-11-9 21:55 编辑

1)应该是这样: if a == 'N' or a == 'n',或简化一下这样最方便:if a in 'Nn':
2)多个同条件if可以用elif。
3)dict1字典应该放到if之前,其中元素赋值和取元素方式不对。应该是这样:dict1[b] = c
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 22:11:05 | 显示全部楼层
jackz007 发表于 2021-11-9 21:53
代码中所有这样的语句

       要这样改:

萌新想请教一下,为什么 if a == 'N' or 'n':不行呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 22:11:36 | 显示全部楼层
suchocolate 发表于 2021-11-9 21:54
1)应该是这样: if a == 'N' or a == 'n',或简化一下这样最方便:if a in 'Nn':
2)多个同条件if可以用e ...

萌新想请教一下,为什么 if a == 'N' or 'n':不行呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-11-9 22:17:02 | 显示全部楼层
if a == 'N' or 'n'  可以理解为这样 if (a == 'N') or ('n'),成了并列关系,如果a不是N,就执行or后面的,or后面的是字符串n,不为0,所以if成立,也就是说if永久为真,if失去了效果。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-11-9 22:43:36 | 显示全部楼层
suchocolate 发表于 2021-11-9 22:17
if a == 'N' or 'n'  可以理解为这样 if (a == 'N') or ('n'),成了并列关系,如果a不是N,就执行or后面的 ...

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-12 20:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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