python中的raw_input不想使用if-else语句

时间:2014-10-17 01:06:19

标签: python if-statement input

我刚开始使用Python,但是在用户输入操作方面遇到了一些问题。似乎当我尝试将raw_input与另一个字符串进行比较时,它总是为假?我确保案件无关紧要,并避免使用'输入'因为它只接受数字。在使用Python用户输入进行一些谷歌搜索后,我在这一点上非常困惑(是的,这是一个简单的温度转换程序)。我使用的是Python v2.7.8

TL:DR,以下代码始终会生成' else'决定

mode = raw_input("Enter the type of conversion mode, C or F: ")
if (mode.lower == "c" or mode.lower == "f"): toConvert = input("Enter the number to be converted: ")
else: print mode + " is not a valid conversion type, Try again!"

2 个答案:

答案 0 :(得分:1)

lower是一个字符串方法。它不会返回小写字母,除非你实际上调用了由parens完成的方法。

替换:

if (mode.lower == "c" or mode.lower == "f"):

有了这个:

if mode.lower() == "c" or mode.lower() == "f":

如果你在python shell中试验这个,你可以看到差异:

>>> mode = 'C'
>>> mode.lower
<built-in method lower of str object at 0x7f7ad665e2b0>
>>> mode.lower()
'c'

答案 1 :(得分:1)

您的问题与raw_input无关,这是下一行:

if (mode.lower == "c" or mode.lower == "f"):

mode.lowerlower方法。您要问的是该方法是否等于字符串"c"。当然不是。

您要做的是调用该方法,并询问结果是否等于字符串"c"。像这样:

if mode.lower() == "c" or mode.lower() == "f":