Python正误除法测验代码无法运行且无法输出姓名与分数求助
修复正误除法测验Python代码问题
原代码核心问题
tf_quiz()函数仅声明未实现,所有测验逻辑都在函数外部,调用函数无实际作用- 未初始化
score变量,直接执行score = score +1会触发未定义错误 - 未获取用户输入的答案
correct_ans,所有判断都是基于未定义的变量 - 函数内的
user_name、user_year仅做无效声明,未关联外部输入值 - 缺少最终的用户姓名和分数输出逻辑
- 存在语法错误:最后一个判断分支后残留
enter code here无效字符
修复后的完整代码
def tf_quiz(): # 初始化分数 score = 0 print("Welcome to my true or false division quiz") user_name = input("Please enter your name: ") user_year = input("Please enter your year: ") print("All you have to do is type T/F for each question") # 问题1 print("\n12/3 = 4") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "T": print("Correct!") score += 1 elif correct_ans == "F": print("Incorrect!") # 问题2 print("\n42/6 = 7") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "T": print("Correct!") score += 1 elif correct_ans == "F": print("Incorrect!") # 问题3 print("\n18/3 = 4") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "F": print("Correct!") score += 1 elif correct_ans == "T": print("Incorrect!") # 问题4 print("\n40/5 = 9") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "F": print("Correct!") score += 1 elif correct_ans == "T": print("Incorrect!") # 问题5 print("\n90/10 = 9") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "T": print("Correct!") score += 1 elif correct_ans == "F": print("Incorrect!") # 问题6 print("\n16/2 = 4") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "F": print("Correct!") score += 1 elif correct_ans == "T": print("Incorrect!") # 问题7 print("\n9/3 = 3") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "T": print("Correct!") score += 1 elif correct_ans == "F": print("Incorrect!") # 问题8 print("\n45/9 = 5") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "T": print("Correct!") score += 1 elif correct_ans == "F": print("Incorrect!") # 问题9 print("\n81/9 = 7") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "F": print("Correct!") score += 1 elif correct_ans == "T": print("Incorrect!") # 问题10 print("\n49/7 = 7") correct_ans = input("Your answer (T/F): ").strip().upper() if correct_ans == "T": print("Correct!") score += 1 elif correct_ans == "F": print("Incorrect!") # 输出最终结果 print(f"\n--- Final Result ---") print(f"Name: {user_name}") print(f"Year: {user_year}") print(f"Score: {score}/10") # 执行测验 tf_quiz()
关键修复说明
- 函数逻辑整合:将所有测验逻辑移入
tf_quiz()函数内部,确保调用函数时能执行完整流程 - 变量初始化:在函数开头初始化
score = 0,避免未定义错误 - 获取用户答案:每个问题后添加
input()获取用户输入,用strip().upper()处理输入,兼容大小写和空格 - 修复语法错误:删除最后一个判断分支后的无效字符
enter code here - 添加结果输出:测验结束后打印用户姓名、年级和最终分数
- 优化判断逻辑:将独立的
if改为elif,避免重复判断 - 修正问题错误:原问题中
45/9 =5的正确答案是T,原代码判断逻辑错误,已修正
内容的提问来源于stack exchange,提问作者brock stewart
相关产品推荐
相关产品推荐

