结对编程--四则运算

结对编程--四则运算(Python)

合作伙伴: 2252619

前言

按照结对编程的原则,我和小组另一个成员进行了两人进行了结对编程,我们开发的结对项目的是小学的四则运算,具体就是随机生成四则运算题目,供学生答题并返回正误。经过讨论,介于Python优秀的计算功能以及时间限制,我们将采用Python开发一个控制台程序。

功能要求

小学老师要每周给同学出300道四则运算练习题。
–这个程序有很多种实现方式:

C/C++
C#/VB.net/Java
Excel
Unix Shell
Emacs/Powershell/Vbscript
Perl
Python
–两个运算符,100 以内的数字,不需要写答案(实现)

–需要检查答案是否正确,并且保证答案在 0..100 之间(实现)

–尽可能地多设置一些条件
添加的条件:
给出的题目的结果为0--100之间的整数
在算式中出现除法运算时,除法运算能够整除

编程阶段

由我负责编程,与我组队的同学在一旁观看。首先,我们先最整体的框架进行了讨论,决定了要实现的功能以及如何实现。然后,进入编程阶段,我的同伴与我断地进行交流沟通,并且在思路卡住的时候提出一些想法,最终实现了四则运算的题目。
代码如下:

import random
import math

def generate_expression():
    operators = ['+', '-', '*', '/']
    while True:
        num1 = random.randint(0, 100)
        num2 = random.randint(1, 100)
        num3 = random.randint(1, 100)
        while num2 == num3:
            num3 = random.randint(1, 100)
        operator1 = random.choice(operators)
        operator2 = random.choice(operators)
        expression = f"{num1} {operator1} {num2} {operator2} {num3}"
        try:
            result = eval(expression)
            if 0 <= result <= 100 and result == int(result):
                if operator1 == '/':
                    if num1 % num2 == 0:
                        return expression, int(result)
                elif operator2 == '/':
                    if num2 % num3 == 0:
                        return expression, int(result)
                else:
                    return expression, int(result)
        except ZeroDivisionError:
            pass

def main():
    print("欢迎使用四则运算生成器!输入n退出程序。")
    while True:
        expression, answer = generate_expression()
        print("题目:", expression)
        user_answer = input("请输入答案:")
        if user_answer == 'n':
            print("感谢使用,再见!")
            break
        try:
            user_answer = int(user_answer)
            if user_answer == answer:
                print("回答正确!")
            else:
                print("回答错误!")
        except ValueError:
            print("请输入一个整数或者输入n退出程序。")

if __name__ == "__main__":
    main()

运行展示

输入正确/错误答案:

包涵除法且可以整除:

包涵乘法:

非法输入:

退出程序:

总结与收获

这次与另外同学的结对编程,发现自己某些方面的不足,某些考虑不全面,有时候同学都可以一针见血的指出,同时两个人同时编程感觉更高效考虑的更全面。结对编程过程中,和同伴可以分享彼此的技术知识和经验。这种交流能够促进双方的技术成长,学习到新的编程技巧和方法。

posted @ 2024-04-14 14:52  muovo  阅读(38)  评论(0编辑  收藏  举报