dop*_*man 1 python if-statement python-2.7
这是我的代码:
if mode not "w" or mode not "r+":
# do stuff
Run Code Online (Sandbox Code Playgroud)
这会导致以下错误:
SyntaxError: invalid syntax
有谁知道我做错了什么?
not不是比较运算符; 它是一个一元布尔运算符,这意味着它只需要一个参数.
也许你想要!=,而不是平等?
if mode != "w" and mode != "r+":
Run Code Online (Sandbox Code Playgroud)
我也替换or了and,因为如果模式等于'w'它也不会等于'r+'.所有这些负面因素都让你很难理解,你可以使用:
if not (mode == 'w' or mode == 'r+'):
Run Code Online (Sandbox Code Playgroud)
从逻辑上讲,如果这更容易理解.
您还可以使用元组和负成员资格测试将测试合并为一个not in:
if mode not in ('w', 'r+'):
Run Code Online (Sandbox Code Playgroud)
这更容易阅读和理解.