Python编写的乘法练习程序运行12轮后随机报错如何解决?
问题原因
random.random()调用逻辑错误:该方法为无参方法,作用是返回0~1之间的随机浮点数,不支持传入函数作为参数。你当前的写法会按顺序执行所有12个问题函数,执行完12次后无更多可执行内容就会报错,也完全无法实现随机出题的效果。- 重复定义12个功能高度相似的函数属于冗余代码,后续修改练习规则、拓展乘法表范围的成本极高。
修复方案
方案1(推荐,代码更简洁,适合初学者理解)
不需要单独定义12个问题函数,直接通过随机数动态生成题目,还可拓展到任意乘法表练习:
import random # 可修改该参数练习其他数字的乘法表 base_num = 12 while True: # 随机生成1~12的乘数 multiplier = random.randint(1, 12) # 接收用户输入 user_ans = input(f"{base_num} times {multiplier} ") # 判断答案是否正确 if user_ans == str(base_num * multiplier): print("correct") else: print(f"wrong, correct answer is {base_num * multiplier}")
按Ctrl+C组合键可随时终止程序。
方案2(保留你原有的12个函数定义,仅修改循环部分)
把你代码末尾的循环段替换为以下内容即可正常运行:
# 先把所有问题函数存入列表 question_list = [qone, qtwo, qthree, qfour, qfive, qsix, qseven, qeight, qnine, qten, qeleven, qtwelve] # 无限随机出题 while True: random.choice(question_list)()
内容的提问来源于stack exchange,提问作者paxxous
相关产品推荐
相关产品推荐

