anhaozi 发表于 2020-9-18 09:43:47

为什么我的判断只能执行if,其他的都不会被执行???

def signup(name,password):
    name = input('请输入用户名:')
    if name in dict1:
      name = input('此用户名已经被使用,请重新输入:')
      password = input('请输入密码:')
      print('注册成功,赶紧试试登陆吧!^_^')
    else:
      password = input('请输入密码:')
      print('注册成功,赶紧试试登陆吧!^_^')
      
def login(name,password):
    name = input('请输入用户名:')
    if name not in dict1:
      name = input('您输入的用户名不存在,请重新输入:')
      password = input('请输入密码:')
      print('欢迎进入小花仙系统,请点击右上角的X结束程序!')
    else:
      password = input('请输入密码:')
      print('欢迎进入小花仙系统,请点击右上角的X结束程序!')

print('''
|--- 新建用户:N/n ---|
|--- 登陆账号:E/e ---|
|--- 退出程序:Q/q ---|''')
n = input('请输入指令代码:')
name = ''
password = ''
dict1 = {}
i = 1
while i:
    if n == 'N'or'n':
      signup(name,password)
    elif n == 'E' or 'e':
      login(name,password)
    elif n == 'Q'or'q':
      print('拜拜哦,祝您生活愉快!')
      sys.exit()
    else:
      print('不乖哦,有没有认真看上面的注释啊!') #就是这部分以上的if语句,哪里有毛病啊?
   

BngThea 发表于 2020-9-18 10:19:50

31行改为
ifn in ('N','n'):
后面的判断同样

hellokz 发表于 2020-9-18 10:26:30

单纯说循环的问题。
n = input('请输入指令代码:')应该放在while i:下面,否则while就一直循环,你没机会再给n赋值了,n也就是一直是你第一次输入的那个值。

sunrise085 发表于 2020-9-18 10:27:45

你的if条件写错了
n == 'N'or'n' 的意思是 (n == 'N')or'n' 会先判断前面的相等比较,然后在于后面的'n'进行or运算,这样不管你输入的是什么,结果都是True。应该写作 (n == 'N')or(n=='n')或者 写作 n in ['N','n']

后面的几个if条件也是这个问题

anhaozi 发表于 2020-9-18 10:29:23

hellokz 发表于 2020-9-18 10:26
单纯说循环的问题。
n = input('请输入指令代码:')应该放在while i:下面,否则while就一直循环,你没机会 ...

哦哦,懂了,while是后来加的,没考虑前面的
页: [1]
查看完整版本: 为什么我的判断只能执行if,其他的都不会被执行???