<p>我稍微修改了代码。输入_file.txt时使用的方法,该文件包含名称、分数和新分数,将附加到此文件中</p>
<p><strong>输入文件:Input_file.txt</strong></p>
<pre><code>Scott|0
Scott|4
Scott|6
alexander|6
alexander|1
alexander|6
</code></pre>
<p>亚历山大| 6</p>
<p><strong>代码</strong></p>
<pre><code>import sys
Score = 0
userDatabase = {"Scott" : "heyall", "alexander" : "password", "Lisa1" : "Simpson"}
Questions = ["True or False? CPU stands for Central Processing Unit?", "True or False? On average magnetic tape is more expensive than an Optical disk.",
"True or False? A Binary Search looks for items in an ordered list.", "True or False? Extended ASCII covers all major languages.",
"True or False? Procedures always must take parameters.", "True or False? In flow charts input/output is represented in a diamond.",
"True or False? The world's largest WAN is the cloud.", "True or False? POP3 is used to retrieve emails from a server.",
"True or False? In hexidecimal the binary number 01001110 equals 4E.", "True or False? An interpreter is only required once to run the program."]
Answers = ["True", "False", "True", "False", "False", "False", "False", "True", "True", "False"]
uninput = input("Please type in your username to continue:")
# file_object = open('input_file.txt', 'a')
previos_scores = 0
if uninput in userDatabase.keys():
print("Username found!")
psinput = input("Please type in your password to continue:")
if psinput == userDatabase[uninput]:
print("Successfully logged in.!! \n Answer following questions.")
for index,element in enumerate(Questions):
currentAnswer = input(element)
if currentAnswer.strip() not in ("True", "False"):
raise Exception("Answer should be either True or False")
if currentAnswer.__contains__(Answers[index]) :
Score += 1
with open("input_file.txt", "a") as file_object:
file_object.write(uninput + "|"+ str(Score)+"\n")
with open("input_file.txt", "r") as file_object_prevscores:
previos_scores = file_object_prevscores.read()
print("\nPrevious three scores : ", [x.split("|")[1] for x in previos_scores.split("\n")[-4:-2] if x.__contains__(uninput)],
"\nThe current score received : ", Score)
else:
print("Password incorrect!")
sys.exit("Password incorrect")
else:
print("Username not found")
sys.exit("Username incorrect!")
</code></pre>
<p><strong>输出</strong></p>
<pre><code>Please type in your username to continue:alexander
Username found!
Please type in your password to continue:password
Successfully logged in.!!
Answer following questions.
True or False? CPU stands for Central Processing Unit?False
True or False? On average magnetic tape is more expensive than an Optical disk.False
True or False? A Binary Search looks for items in an ordered list.False
True or False? Extended ASCII covers all major languages.False
True or False? Procedures always must take parameters.False
True or False? In flow charts input/output is represented in a diamond.False
True or False? The world's largest WAN is the cloud.False
True or False? POP3 is used to retrieve emails from a server.False
True or False? In hexidecimal the binary number 01001110 equals 4E.False
True or False? An interpreter is only required once to run the program.False
Previous scores : ['1', '6']
The current score received : 6
</code></pre>