【发布时间】:2015-10-31 17:22:10
【问题描述】:
我有一段代码不起作用。
if difficulty=="Easy" or "easy" or "1":
with open("EasyQs.csv") as f:
allData = [line.strip().split(",") for line in f]
questions = [data[0] for data in allData]
answers = [data[1] for data in allData]
print(questions)
if difficulty=="Hard" or "hard" or "2":
with open("MediumQs.csv") as f:
allData = [line.strip().split(",") for line in f]
questions = [data[0] for data in allData]
answers = [data[1] for data in allData]
print(questions)
我尝试输入 2(hard 或 Hard),但它总是打印“简单”CSV 中的问题? 为什么是这样?又该如何解决?
【问题讨论】:
-
使用
elif而不是if。 -
在这两种情况下,您打开同一个文件:
EasyQs.csv -
现在
or部分正在评估为True,因为if "string"是True,除非字符串是"" -
现在您知道为什么
if语句的行为不像您预期的那样,您应该尝试重新组织代码以减少重复:只需在if语句中选择文件名,然后有一个单独的部分,您可以在其中打开文件并处理它。如果可行,您应该try to avoid duplicating code。