赞
踩
开发步骤:
step1、单题开发,以两个数加法为例,加数取值范围[[0,101],要实现哪些功能,怎么实现?
引入随机函数库→import random
随机产生加数→ random.randintO) random.randranae0出题,题目打印→printO注意占位函数formatO或占位符%的使用做题,提供键盘输入接口 →input0
·自动批阅→i条件语句使用
step2、增加模式选择,实现加减法,怎么实现,要注意哪些?
随机产生“+'或’模式→random.choice0)
·考虑减法模式下,不能出现被减数小于减数的情况→Python中的两数交换
考虑判题与原有题目的结构,建议将判题模块单列,只考虑输入的答案与实际的答案是否一致
step3、多题目模式,对题目数量有要求模式;对正确数量有要求模式;怎么实现?.多题量出题,考虑出题量为关注点的模式→for循环,其中循环次数应由用户从键盘输入.除了判断每一道题目的对错外,考虑统计做对的题目数
多题量出题,考虑做题正确率为关注点的模式→while循环,其中用做对的数量来进行条件的限制
step4、增加对用户误操作的判断
考虑小朋友在输入过程中,不小心误触碰键盘,导致输入的值为非数字型字符→s.isdigit0)
.允许在初次误输入时,有第二次输入答案的机会
.考虑小朋友连续多次输入非数字型字符,可能是不想再进行练习,则应该中断本次练习,具体多少次
判断为不想做练习了,可以由用户输入决定,或者直接在代码中进行固定值设置。
中断→break
整体python代码框架:
- import random
-
- # 单题加法
- def single_addition():
- # 实现加法逻辑
- pass
-
- # 加法或减法
- def addition_or_subtraction():
- # 实现加法或减法逻辑
- pass
-
- # 多题模式
- def multiple_questions(total_questions):
- # 实现多题模式逻辑
- pass
-
- # 安全输入
- def safe_input(prompt):
- # 实现安全输入逻辑
- pass
-
- # 主程序
- def main():
- print("Welcome to the Arithmetic Practice System!")
- total_questions = safe_input("Enter the number of questions you want to solve: ")
- if total_questions is not None:
- multiple_questions(total_questions)
-
- if __name__ == "__main__":
- main()
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
分步骤开发一个适用于小学生的口算练习系统。下面是每个步骤的实现方法:
功能实现:
random
库随机生成两个加数。input()
收集用户的答案。代码示例:
- import random
-
- def single_addition():
- num1 = random.randint(0, 101)
- num2 = random.randint(0, 101)
- correct_answer = num1 + num2
-
- user_answer = int(input(f"What is {num1} + {num2}? "))
- if user_answer == correct_answer:
- print("Correct!")
- else:
- print(f"Wrong. The correct answer is {correct_answer}")
功能实现:
random.choice()
随机选择加法或减法。代码示例:
- def addition_or_subtraction():
- num1 = random.randint(0, 101)
- num2 = random.randint(0, 101)
- operation = random.choice(["+", "-"])
-
- if operation == "-" and num1 < num2:
- num1, num2 = num2, num1 # 确保不出现负数结果
-
- correct_answer = eval(f"{num1} {operation} {num2}")
- user_answer = int(input(f"What is {num1} {operation} {num2}? "))
- if user_answer == correct_answer:
- print("Correct!")
- else:
- print(f"Wrong. The correct answer is {correct_answer}")
功能实现:
代码示例:
- def multiple_questions():
- total_questions = int(input("How many questions would you like to solve? "))
- correct_answers = 0
-
- for _ in range(total_questions):
- if addition_or_subtraction(): # 使用之前定义的函数
- correct_answers += 1
-
- print(f"You answered {correct_answers} out of {total_questions} questions correctly.")
功能实现:
代码示例:
- def safe_input(prompt):
- attempts = 0
- while attempts < 3: # 允许最多三次尝试
- user_input = input(prompt)
- if user_input.isdigit():
- return int(user_input)
- else:
- print("Please enter a valid number.")
- attempts += 1
- print("Too many invalid attempts. Exiting.")
- return None # 或者使用 break 中断循环
完整代码:
- import random
-
- def single_addition():
- # 随机生成两个数字
- num1 = random.randint(0, 101)
- num2 = random.randint(0, 101)
-
- # 显示加法题目
- print(f"What is {num1} + {num2}? ")
-
- # 获取用户答案
- user_answer = int(input())
-
- # 比较用户答案与正确答案
- correct_answer = num1 + num2
- if user_answer == correct_answer:
- print("Correct!")
- else:
- print(f"Wrong. The correct answer is {correct_answer}.")
-
-
- def addition_or_subtraction():
- # 随机生成两个数字
- num1 = random.randint(0, 101)
- num2 = random.randint(0, 101)
-
- # 随机选择加法或减法
- operation = random.choice(["+", "-"])
-
- # 确保在减法情况下,第一个数字不小于第二个数字
- if operation == "-" and num1 < num2:
- num1, num2 = num2, num1
-
- # 显示题目
- print(f"What is {num1} {operation} {num2}? ")
-
- # 获取用户答案
- user_answer = int(input())
-
- # 计算正确答案
- if operation == "+":
- correct_answer = num1 + num2
- else:
- correct_answer = num1 - num2
-
- # 比较用户答案与正确答案
- if user_answer == correct_answer:
- print("Correct!")
- else:
- print(f"Wrong. The correct answer is {correct_answer}.")
- # 多题模式
- def addition_or_subtraction():
- num1 = random.randint(0, 101)
- num2 = random.randint(0, 101)
- operation = random.choice(["+", "-"])
-
- if operation == "-" and num1 < num2:
- num1, num2 = num2, num1
-
- print(f"What is {num1} {operation} {num2}? ")
- user_answer = int(input())
-
- if operation == "+":
- correct_answer = num1 + num2
- else:
- correct_answer = num1 - num2
-
- return user_answer == correct_answer
-
- # 多题模式函数
- def multiple_questions(total_questions):
- correct_answers = 0
-
- for _ in range(total_questions):
- if addition_or_subtraction():
- correct_answers += 1
-
- print(f"You answered {correct_answers} out of {total_questions} questions correctly.")
-
- # 例子:运行10个题目的练习
- multiple_questions(10)
- def safe_input(prompt):
- max_attempts = 3 # 设置最大尝试次数
- attempts = 0
-
- while attempts < max_attempts:
- user_input = input(prompt)
-
- # 检查输入是否为数字
- if user_input.isdigit():
- return int(user_input)
- else:
- print("Invalid input. Please enter a number.")
- attempts += 1 # 增加尝试次数
-
- print("Too many invalid attempts. Exiting.")
- return None # 返回一个错误指示值
-
- # 例子:安全获取用户输入
- user_number = safe_input("Enter a number: ")
- if user_number is not None:
- print(f"You entered: {user_number}")
- else:
- print("No valid input received.")
- # 主程序
- def main():
- print("Welcome to the Arithmetic Practice System!")
- total_questions = safe_input("Enter the number of questions you want to solve: ")
- if total_questions is not None:
- multiple_questions(total_questions)
-
- # 程序入口
- if __name__ == "__main__":
- main()
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
运行实例:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。