在Python 2.5中,我使用了代码:
yn=raw_input('''This program is for solving linear and quadratic equations.
Is this what you want to do?
''')
if not 'y' in yn or 'Y' in yn:
print 'Program now quitting.'
在程序关闭时显示Program now quitting
,当yn不包含'y'或'Y'时应该显示,但是当yn确实包含'Y'时它也会显示,其余时间该计划开始了。我认为这个错误是由于'或'和'不是'一起使用引起的,因为当我将if not 'y' in yn or 'Y' in yn:
更改为if not 'y' in yn or not 'Y' in yn:
时它没有改变,但当我将其更改为}时消失了p>
if not 'y' in yn:
if not 'Y' in yn:
这是对的吗?如果有的话,我可以做些什么来解决问题并将这部分保持在同一条线上?
答案 0 :(得分:5)
if not ('y' in yn or 'Y' in yn):
应该有用。
答案 1 :(得分:2)
smitec是对的,但是
if not 'y' in yn.lower():
可能更容易。
答案 2 :(得分:0)
if (not 'y' in yn) or (not 'Y' in yn):
print 'Program Now Quitting.'
答案 3 :(得分:0)
如有疑问,请使用大括号:)
取决于你想要实现的目标,它可以是:
if (not 'y' in yn) or ('Y' in yn):
或:
if not ('y' in yn or 'Y' in yn):
答案 4 :(得分:0)
请考虑将其写成更具可读性
if 'y' not in yn and 'Y' not in yn:
pass # ...
not in
运算符不会遇到您遇到的问题。
关于您的直接问题:not
运算符具有高优先级,因此
not x or y
被解释为
(not x) or y
如果要覆盖它,则必须设置括号:
not (x or y)
或转换术语:
not x and not y