我刚开始使用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!"
答案 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.lower
是lower
方法。您要问的是该方法是否等于字符串"c"
。当然不是。
您要做的是调用该方法,并询问结果是否等于字符串"c"
。像这样:
if mode.lower() == "c" or mode.lower() == "f":