我正在学习python3,我知道我可能应该使用argparse,但我想对if语句中的字符串进行一个简单的测试,从input()函数中获取数据。
如果我用==测试两个不同的字符串,事情就会像预期的那样工作,但是如果我颠倒我的If语句并用!=测试,它似乎不能工作
以下是按预期工作的代码
import sys
import os
tdown = input("topdown true? type t or f: ")
print("tdown", type(tdown), tdown)
if tdown == 't' or tdown == 'f':
pass
else:
print(" need to type 't' or 'f', exiting")
sys.exit(1)
print("passed arg test, tdown is: ", tdown)运行代码,结果如下所示
./os_walk.py
topdown true? type t or f: t
tdown <class 'str'> t./os_walk.py
passed arg test, tdown is: t./os_walk.py
topdown true? type t or f: f
tdown <class 'str'> f
passed arg test, tdown is: f./os_walk.py
topdown true? type t or f: x
tdown <class 'str'> x
need to type 't' or 'f', exiting下面是使用!=的代码,它不能按预期工作
import sys
import os
tdown = input("topdown true? type t or f: ")
print("tdown", type(tdown), tdown)
if tdown != 't' or tdown != 'f':
print(" need to type 't' or 'f', exiting")
sys.exit(1)
else:
pass
print("passed arg test, tdown is: ", tdown)如果我运行这个命令,我们会得到以下结果
./os_walk.py
topdown true? type t or f: t
tdown <class 'str'> t
need to type 't' or 'f', exiting./os_walk.py
topdown true? type t or f: x
tdown <class 'str'> x
need to type 't' or 'f', exiting我不明白为什么!=给了我一个意想不到的结果,有人能解释一下吗?
发布于 2015-11-20 20:11:20
And read here to find out why.
if tdown != 't' and tdown != 'f':
...https://stackoverflow.com/questions/33826372
复制相似问题