while下if语句为啥不执行呀。。。
萌新想请教各位大神,为什么这里的if语句不执行。。。{:5_96:}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 = c
print('注册成功!赶紧试试登录吧!')
else:
b = input('用户名已存在,请重新输入')
c = input('请输入密码')
dict1 = 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
代码中所有这样的语句
if a == 'N' or 'n':
要这样改:
if a == 'N' or a == 'n':
也可以这样改
if a in 'Nn': 本帖最后由 suchocolate 于 2021-11-9 21:55 编辑
1)应该是这样: if a == 'N' or a == 'n',或简化一下这样最方便:if a in 'Nn':
2)多个同条件if可以用elif。
3)dict1字典应该放到if之前,其中元素赋值和取元素方式不对。应该是这样:dict1 = c jackz007 发表于 2021-11-9 21:53
代码中所有这样的语句
要这样改:
萌新想请教一下,为什么 if a == 'N' or 'n':不行呀 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':不行呀 if a == 'N' or 'n'可以理解为这样 if (a == 'N') or ('n'),成了并列关系,如果a不是N,就执行or后面的,or后面的是字符串n,不为0,所以if成立,也就是说if永久为真,if失去了效果。 suchocolate 发表于 2021-11-9 22:17
if a == 'N' or 'n'可以理解为这样 if (a == 'N') or ('n'),成了并列关系,如果a不是N,就执行or后面的 ...
好的好的,谢谢大佬
页:
[1]