如何在python中检查raw_input==something?

如何在python中检查raw_input==something?,python,Python,这是我写的,你能看看我的代码有什么问题吗。 我只是Python的初学者 #!/usr/bin/python input=int(raw_input("Write exit here: ")) if input==exit: print "Exiting!" else: print "Not exiting!" 您想测试字符串“exit”的相等性,所以不要将其转换为int text = raw_input("Write exit here: ") if text == "e

这是我写的,你能看看我的代码有什么问题吗。 我只是Python的初学者

#!/usr/bin/python

input=int(raw_input("Write exit here: "))

if input==exit:
    print "Exiting!"
else:
    print "Not exiting!"

您想测试字符串
“exit”
的相等性,所以不要将其转换为
int

text = raw_input("Write exit here: ")

if text == "exit":
    print "Exiting!"
else:
    print "Not exiting!"
input==exit
input
与功能
exit
进行比较,这可能会让您感到困惑。
如果您尝试了
input==Exit
,它甚至不会运行。

Python是一种脚本语言-以交互方式运行Python(只需键入
Python
)或运行idle、eric、komodo等调试器并使用它非常容易。在这里,我尝试了一些组合,看看哪些有效,哪些无效:

>>> raw_input("write exit here: ")
write exit here: exit
'exit'
>>> my_input = raw_input("write exit here: ")
write exit here: exit
>>> my_input
'exit'
>>> my_input = int(raw_input("wite exit here: "))
wite exit here: exit

Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    my_input = int(raw_input("wite exit here: "))
ValueError: invalid literal for int() with base 10: 'exit'

>>> my_input == exit
False
>>> type(exit)
<class 'site.Quitter'>
>>> my_input == "exit"
True
原始输入(“此处写入退出:”) 在此处写入exit:exit “退出” >>>我的输入=原始输入(“此处写入退出:”) 在此处写入exit:exit >>>我的输入 “退出” >>>my_input=int(原始输入(“此处退出:”) 这里的出口在哪里 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 my_input=int(原始输入(“此处退出:”) ValueError:基数为10的int()的文本无效:“退出” >>>我的输入=退出 假的 >>>类型(退出) >>>我的输入==“退出” 真的
但不要相信我的话。。。。打开解释器,对问题的一小部分进行实验,你“很快就可以解决问题了。”

这里是使用三元运算符的另一种方法。了解这一点以及其他可以降低代码复杂性的Python构造和习惯用法非常有用。除非有助于解释代码,否则也不必为输入指定名称

print "Exiting!" if raw_input("Write exit here: ") == "exit" else "Not exiting!"

你在做
int(原始输入)
,你只需要
raw\u input
+1,但他还需要将它与字符串
“exit”
进行比较,而不是函数
exit
(你在代码中固定了它,但没有提到)。实际上,我知道我是把它称为函数的人,但是…exit实际上不是函数,这是一个退出者。但它仍然是一个可调用的函数,您仍然可以合法地将它与字符串或int进行比较(并且总是得到False),因此您的答案一点也不具有误导性(我认为在这里尝试严格要求只会混淆OP);我只是在这里吹毛求疵。@abarnert从技术上讲
itertools.chain
也不是一个函数,所以我认为不值得深入讨论,您需要先阅读文档,我认为。使用像
input
这样的内置名称是不好的做法。我希望我能+5这个技巧。没有三元运算符,你可以获得完全相同的优势:
如果原始输入(“此处写入退出”)==“退出”:
。确实如此。错过了。