对于计算任务,我被要求创建一个算术测验,并创建一个具有三个要求的数据库系统:
1.保持每个成员在测验中获得的分数的跟踪
2.学校的三个班级
3.data应分别为每个班级保留
根据我的计算老师的推荐,我决定将我的测验与我的数据库程序集成。我实际上使程序功能实现了跨越式发展,但代码中特别棘手的部分仍然存在:
form =''
while form == '':
form = input("Hello there. Are you in class A, class B, or class C? ")
if form == "Class a" or "Class A" or "a" or "A" or "class a" or "class A":
print("Your class is " +form)
myFile = open('classa.csv', 'a')
myFile.write("A\n")
elif form == "Class b" or "Class B" or "b" or "B" or "class b" or "class B":
print("Your class is " +form)
myFile = open('classb.csv', 'a')
myFile.write("B\n")
elif form == "Class c" or "Class C" or "c" or "C" or "class c" or "class C":
print("Your class is " +form)
myFile = open('classc.csv', 'a')
myFile.write("C\n")
else:
form = input("You can only input A, B or C. ")
我曾尝试在线研究以尝试评估我的问题的解决方案,但我发现CSV和Python的文档非常差 - 主要是保证使用CSV并不难,只是对于一个不清楚的解释。 我已经评估了以下问题,但我不确定如何解决:
答案 0 :(得分:1)
您的语句总是评估为True,请使用in
:
if form in {"Class a" , "Class A" , "a" , "A" , "class a" , "class A"}:
点击or "Class A"
后,if返回True
。您要求(if form == "Class a")
或("Class A")
,因为所有非空字符串的评估结果为True,使用多个或多个字符的正确方法是:
if form == "Class a" or form == "Class A" or form =="a"....
但是对于使用in
的多个值是一种更好的方法