首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >X != y未按预期工作时的python字符串

X != y未按预期工作时的python字符串
EN

Stack Overflow用户
提问于 2015-11-20 20:08:17
回答 1查看 61关注 0票数 0

我正在学习python3,我知道我可能应该使用argparse,但我想对if语句中的字符串进行一个简单的测试,从input()函数中获取数据。

如果我用==测试两个不同的字符串,事情就会像预期的那样工作,但是如果我颠倒我的If语句并用!=测试,它似乎不能工作

以下是按预期工作的代码

代码语言:javascript
复制
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

代码语言:javascript
复制
topdown true? type t or f: t
tdown <class 'str'> t./os_walk.py
passed arg test, tdown is:  t

./os_walk.py

代码语言:javascript
复制
topdown true? type t or f: f
tdown <class 'str'> f
passed arg test, tdown is:  f

./os_walk.py

代码语言:javascript
复制
topdown true? type t or f: x
tdown <class 'str'> x
 need to type 't' or 'f', exiting

下面是使用!=的代码,它不能按预期工作

代码语言:javascript
复制
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

代码语言:javascript
复制
topdown true? type t or f: t
tdown <class 'str'> t
 need to type 't' or 'f', exiting

./os_walk.py

代码语言:javascript
复制
topdown true? type t or f: x
tdown <class 'str'> x
 need to type 't' or 'f', exiting

我不明白为什么!=给了我一个意想不到的结果,有人能解释一下吗?

EN

回答 1

Stack Overflow用户

发布于 2015-11-20 20:11:20

And read here to find out why.

代码语言:javascript
复制
if  tdown != 't' and tdown != 'f':
   ...
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33826372

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档