如何在Python乘法挑战中实现计分系统与成功率统计
乘法挑战项目:计分系统与成功率统计实现
原代码问题
你的代码中score = 0被放在循环内部,每道题都会重置分数,导致最终只能得到0或1的结果,无法累计正确答题数。
修改后的完整代码
from random import randint tableRevision1 = int(input("Quelle première table de multiplication réviser ? :")) tableRevision2 = int(input("Quelle deuxième table de multiplication réviser ? :")) nombreQuestions = int(input("Combien de questions ? : ")) print("Révision des tables de", tableRevision1, "à", tableRevision2, "-", "Nombre de questions :", nombreQuestions) # 初始化分数在循环外部,避免每次重置 score = 0 for _ in range(nombreQuestions): multi = randint(tableRevision1, tableRevision2) multi2 = randint(1, 10) question = f"{multi} x {multi2} = " reponse = int(input(question)) if reponse == multi * multi2: print("Bien joué !") score += 1 else: print("Loupé ! La bonne réponse est :", multi * multi2) # 计算成功率 taux_reussite = (score / nombreQuestions) * 100 print(f"Votre score est : {score}/{nombreQuestions}") print(f"Taux de réussite : {taux_reussite:.1f}%")
修改说明
- 将
score = 0移到for循环之前,确保分数可以累计每道题的正确次数。 - 用
_代替循环变量nombreQuestions(避免和总题数变量重名,代码更规范)。 - 使用f-string格式化字符串,让代码更简洁易读。
- 新增成功率计算,用正确答题数除以总题数再乘以100,保留1位小数输出。
内容的提问来源于stack exchange,提问作者Zarixz
相关产品推荐
相关产品推荐

