我正在写一个代码,你可以问数学问题。我把学生的成绩和他们的名字一起保存在3个不同的班级的不同文件夹里。然后我有三个不同的文件为每个测试,他们做了。我需要一个代码来检查他们的名字是否在每个文件中。然后当它检查名字是否在每个文件中时,我想从个人结果中读取所有三个分数。然后将三个分数按平均值排序并打印出来,但每个人都要做三次测试。在
以下是我目前为止的代码,它询问问题,然后将姓名和分数保存到文件中,等等:
import random
Name =input("What is your name?")
Class =input("What class are you in? (1/2/3)")
TimesDone = input("How many times have you done the test before(1-3)")
Score = 1
Questions = 1
while Questions < 10:
Randomnumber1 = (random.randint(1,10))
Randomnumber2 = (random.randint(1,10))
Operators = ['+','-','*']
Operators1 = random.choice(Operators)
print(Randomnumber1, Operators1, Randomnumber2)
if Operators1 == '+':
answer = (Randomnumber1 + Randomnumber2)
elif Operators1 == '-':
answer = (Randomnumber1 - Randomnumber2)
elif Operators1 == '*':
answer = (Randomnumber1 - Randomnumber2)
UserGuess = int(input("What is the answer to the question?"))
if UserGuess == answer:
print("Well done",Name,"you got the correct answer!")
Questions = Questions+1
Score = Score+1
else:
print("Wrong answer",Name,"the correct answer is",answer,".")
Questions = Questions+1
if Questions == 10:
print("You answered all 10 questions and your final score",Score,".")
if Class == '1':
if TimesDone == '1':
myfile = open('namesforclass1test1.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass1test1.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif TimesDone == '2':
myfile = open('namesforclass1test2.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass1test2.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif TimesDone == '3':
myfile = open('namesforclass1test3.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass1test3.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif Class == '2':
if TimesDone == '1':
myfile = open('namesforclass2test1.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass2test1.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif TimesDone == '2':
myfile = open('namesforclass2test2.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass2test2.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif TimesDone == '3':
myfile = open('namesforclass2test3.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass2test3.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif Class == '3':
if TimesDone == '1':
myfile = open('namesforclass3test1.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass3test1.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif TimesDone == '2':
myfile = open('namesforclass3test2.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass3test2.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
elif TimesDone == '3':
myfile = open('namesforclass3test3.txt','a')
names = (Name)
myfile.write(repr(names))
myfile.write('\n')
myfile.close()
myfile = open('scoresforclass3test3.txt','a')
scores = (Score)
myfile.write(repr(scores))
myfile.write('\n')
myfile.close()
编辑:在理解用户的意图后更新了答案。在
我对这个代码的第一个问题是它非常冗余。Python遵循DRY(不要重复自己)的方法。取多余的代码,从中创建一个函数,用不同的参数多次调用函数。例如:
接下来,我将对用于解决问题。使用一本单子词典对我们有帮助。例如:
^{pr2}$相关问题 更多 >
编程相关推荐