我的if为什么错?
def program(order,user_name):
if order == 'N' or 'n':
while user_name in users:
print('此用户名已经被使用,请从新输入:', end='')
user_name = input()
print('请输入密码:', end='')
password = input()
users = password
print('注册成功,赶紧试试登录吧。')
elif order == 'E' or 'e':
while user_name not in users:
print('您输入的用户名不纯在,请重新输入:', end='')
uesr_name = input()
print('请输入密码:', end = '')
password = input()
if users == password:
print('欢迎进入xxoo系统,请点击右上角的x结束程序!')
else:
print('输入有误,请从新输入:', end='')
order = input()
users = {}
while True:
print('新建用户:N/n')
print('登录账号:E/e')
print('退出程序:Q/q')
print('请输入指令代码:', end='')
order = input()
if order == 'Q' or 'q':
print('谢谢使用,再见。')
break
else:
print('请输入用户名:', end='')
user_name = input()
program(order,user_name)
if order == 'N' or 'n' 这样判断是错误的,因为 if 会认为是要判断 order == 'N' 或 'n' 了
而字符串 'n' 可以看成布尔类型值的 True ,所以 if 条件会一直成立下去
把if 都改成 if order == 'N' or order == 'n'就好了
def program(order, user_name):
if order == 'N' or order == 'n':
while user_name in users:
print('此用户名已经被使用,请从新输入:', end='')
user_name = input()
print('请输入密码:', end='')
password = input()
users = password
print('注册成功,赶紧试试登录吧。')
elif order == 'E' or order == 'e':
while user_name not in users:
print('您输入的用户名不纯在,请重新输入:', end='')
uesr_name = input()
print('请输入密码:', end='')
password = input()
if users == password:
print('欢迎进入xxoo系统,请点击右上角的x结束程序!')
else:
print('输入有误,请从新输入:', end='')
order = input()
users = {}
while True:
print('新建用户:N/n')
print('登录账号:E/e')
print('退出程序:Q/q')
print('请输入指令代码:', end='')
order = input()
if order == 'Q' or order =='q':
print('谢谢使用,再见。')
break
else:
print('请输入用户名:', end='')
user_name = input()
program(order, user_name)
if order == 'Q' or order == 'q':
改成这样 if order == 'Q' or 'q':
按你写的,计算机会这样判断:如果order='Q'或者'q'为真就满足判断,所以不管你输入啥,'q'满足为真,一直会‘谢谢使用,再见。 Twilight6 发表于 2020-7-13 11:14
if order == 'N' or 'n' 这样判断是错误的,因为 if 会认为是要判断 order == 'N' 或 'n' 了
而字 ...
'n' 可以看成布尔类型值的 True???为什么 def花 发表于 2020-7-13 11:17
'n' 可以看成布尔类型值的 True???为什么
Python中只要是 0 、空字符串、空列表、空字典等 都可以看作布尔类型的值为 False
只要是 非0 ,非空字符串、列表、字典 等 都可以看作布尔类型的值为 True
>>> bool('')
False
>>> bool('xyzkasdqwca')
True
yhhpf 发表于 2020-7-13 11:16
按你写的,计算机会这样判断:如果order='Q'或者'q'为真就满足判断,所以不管你输入啥,'q'满足为真,一 ...
懂了,多谢 Twilight6 发表于 2020-7-13 11:19
懂了, 我写的这个 or 不是order == 'Q' or order == 'q',而是(order == 'Q' )or ( 'q')
那如我这样写可以吗order ==( 'Q' or'q') def花 发表于 2020-7-13 11:22
懂了, 我写的这个 or 不是order == 'Q' or order == 'q',而是(order == 'Q' )or ( 'q')
那如我这 ...
我写的这个 or 不是order == 'Q' or order == 'q',而是(order == 'Q' )or ( 'q')
对的
order ==( 'Q' or'q') 不能这样写,这样写相对于 order == True Twilight6 发表于 2020-7-13 11:23
对的
order ==( 'Q' or'q') 不能这样写,这样写相对于 order == True
嗷嗷 Twilight6 发表于 2020-7-13 11:23
对的
order ==( 'Q' or'q') 不能这样写,这样写相对于 order == True
那能这样些吗 if order in ['Q','q']: def花 发表于 2020-7-13 11:35
那能这样些吗 if order in ['Q','q']:
可以,很强~!
页:
[1]