我有这段代码
print "Choose a category: Animals, Jobs or Cars?"
while True:
cat = str(raw_input())
if cat.lower() == "animals":
wordfile = open("Animals.txt")
break
elif cat.lower == "jobs":
wordfile = open("Jobs.txt")
break
elif cat.lower == "cars":
wordfile = open("Cars.txt")
break
else:
print "That's not a valid category!"
wordlist = [line.split("\n") for line in wordfile]
print wordlist
当我进入动物时,它完美地运作并打印我文件的内容。然而,当我进入工作岗位或汽车时,它告诉我这不是一个有效的类别(它会跳过elif&s直到其他地方)并且我无法弄清楚原因。
答案 0 :(得分:1)
因为您需要在所有案例中使用cat.lower()
:
print "Choose a category: Animals, Jobs or Cars?"
while True:
cat = str(raw_input())
if cat.lower() == "animals":
wordfile = open("Animals.txt")
break
elif cat.lower() == "jobs":
wordfile = open("Jobs.txt")
break
elif cat.lower() == "cars":
wordfile = open("Cars.txt")
break
else:
print "That's not a valid category!"
wordlist = [line.split("\n") for line in wordfile]
print wordlist
使用cat.lower
实际上不会执行小写函数,而是会给你一个对实际函数本身的引用,这会搞乱if / elif语句
答案 1 :(得分:1)
您在第二个和第三个()
中遗失了elif
。将函数与字符串进行比较将产生False。