Python实现简单的四则运算

GitHub 项目地址

https://github.com/745421831/-/tree/master



PSP


PSP2.1


Personal Software Process Stages


预估耗时(分钟)


实际耗时(分钟)


Planning


计划


10


20


· Estimate


· 估计这个任务需要多少时间


10


10


Development


开发


360


600


· Analysis


· 需求分析 (包括学习新技术)


30


40


· Design Spec


· 生成设计文档


30


40


· Design Review


· 设计复审 (和同事审核设计文档)


10


15


· Coding Standard


· 代码规范 (为目前的开发制定合适的规范)


5


5


· Design


· 具体设计


40


80


· Coding


· 具体编码


300


500


· Code Review


· 代码复审


60


120


· Test


· 测试(自我测试,修改代码,提交修改)


180


120


Reporting


报告


120


60


· Test Report


· 测试报告+博客


120


120


· Size Measurement


· 计算工作量


10


10


· Postmortem & Process Improvement Plan


· 事后总结, 并提出过程改进计划


40


30


合计


1325


1770

项目要求

  • 能自动生成小学四则运算题目
  • 除了整数以外,还要支持真分数的四则运算

解题思路

  • 了解四则运算的基本法则
  • 利用随机函数随机生成数字以及运算符
  • 用户输入答案程序需要判断答案是否正确
  • 支持真分数运算

设计实现及代码说明

import random

from fractions import Fraction

operation = [‘+‘, ‘-‘, ‘*‘, ‘/‘]   #四则运算的符号

global f

def integer_score():

    #rand = operation[random.randint(0,3)]

    number = random.randint(1,4)     #随机产生的表达式长度

    f = ‘‘

    for i in range(number):

        a = random.randint(1,20)       #随机产生的表达式中的数

        rand = operation[random.randint(0, 3)]     #随机选择一个四则运算中的符号

        if rand == ‘/‘:

            b = random.randint(a, 20)               #随机产生的真分数的分母

            f += str(a) + rand + str(b)               #数与符号相连

            rand = operation[random.randint(0, 2)]     #随机选择一个四则运算中的符号

            f += rand

        else:

            f += str(a) + rand

        #print(a,rand,end=‘‘)

    b = random.randint(1, 20)

    f += str(b)                     #得到完整的表达式

    n = eval(f)                      #得到表达式的结果

    n = Fraction(‘{}‘.format(n)).limit_denominator()    #小数转化为分数

    if n > 0:

        print(‘题目:‘)

        print(f,‘=‘)

        print(‘请输出答案:‘)

        x = Fraction(‘{}‘.format(eval(input()))).limit_denominator()

        if n == x:                  #输入的数与表达式比较

            print(True)

        else:

            print(False)

            print(‘正确的答案为:‘,n)

    else:

        integer_score()

def integer():

    # rand = operation[random.randint(0,3)]

    number = random.randint(1, 3)

    f = ‘‘

    for i in range(number):

        a = random.randint(1, 10)

        rand = operation[random.randint(0, 3)]

        f += str(a) + rand

    b = random.randint(1, 10)

    f += str(b)

    n = eval(f)

    if isinstance(n, int) and n > 0:

        print(‘题目:‘)

        print(f, ‘=‘)

        print(‘请输出答案:‘)

        x = eval(input())

        if n == x:

            print(True)

        else:

            print(False)

            print(‘正确的答案为:‘, n)

    else:

        integer()

def score():

    op = [‘+‘, ‘-‘]

    number = random.randint(1, 3)

    f = ‘‘

    for i in range(number):

        a = random.randint(1, 10)

        b = random.randint(a, 10)

        rand = op[random.randint(0, 1)]

        f += str(a) + ‘/‘+ str(b)+rand

    a = random.randint(1, 10)

    b = random.randint(a, 10)

    f += str(a) + ‘/‘+ str(b)

    n = eval(f)

    n = Fraction(‘{}‘.format(n)).limit_denominator()

    if n > 0:

        print(‘题目:‘)

        print(f,‘=‘)

        print(‘请输出答案:‘)

        x = Fraction(‘{}‘.format(eval(input()))).limit_denominator()

        if n == x:

            print(True)

        else:

            print(False)

            print(‘正确的答案为:‘,n)

    else:

        score()

if __name__ == ‘__main__‘:

    while True:

        print(‘选择你想做的题目:‘)

        print(‘0(退出)1(分数题目),2(整数题目),3(综合题目)‘)

        m = int(input())

        if m == 1:

            score()

        elif m == 2:

            integer()

        elif m == 3:

            integer_score()

        elif m == 0:

            exit()

        else:

            print(‘请重新输入你的选择‘)

#isinstance(1, int)

总结

这次利用Python实现简单的四则运算还不够完美,比如没有随机生成带括号的由于时间原因以及个人能力有限,这些只能以后慢慢完善。

原文地址:https://www.cnblogs.com/ywl1218/p/10660550.html

时间: 2024-10-25 00:52:06

Python实现简单的四则运算的相关文章

用python实现简单小学生四则运算

GitHub仓库地址:https://github.com/cherry43002/python 1.  需求分析: 能自动生成小学四则运算题目(注意是给小学生用的,要是结果出现负数的话他们会迷茫的!) 除了整数外,还要支持真分数的四则运算 2.  功能设计: (1)       基础功能:实现四则运算题目的自动生成,并打印出题目的答案 (2)       扩展功能: (3)       高级功能: 3.  设计实现: 4.代码说明: 1 # -*- coding: utf-8 -*- 2 "&

python中简单文件的输入三种方式

最近在自学python,简单的总结了一下文件的输入的方式. 1. f=open("foo.txt") line=f.readline() while line: print(line,end='') line=f.readline() f.close() 2. for line in open("foo.txt"): print(line,end='') 3. f=open("foo.txt") lines=f.readlines() for l

Python实现简单的猜数字游戏

Python实现简单的猜数字游戏,具体如下: 随机生成一个1-10之间的数字,让用户来猜,当猜错时,会提示猜的数字是大还是小了,直到用户猜对为止. import random secret = random.randint(1,10) #print(secret) print('------猜数字游戏!-----') guess = 0 while guess != secret: temp = input('猜数字游戏开始,请输入数字:') guess = int(temp) if guess

用 python实现简单EXCEL数据统计

任务: 用python时间简单的统计任务-统计男性和女性分别有多少人. 用到的物料:xlrd 它的作用-读取excel表数据 代码: import xlrd workbook = xlrd.open_workbook('demo.xlsx') #打开excel数据表 SheetList = workbook.sheet_names()#读取电子表到列表 SheetName = SheetList[0]#读取第一个电子表的名称 Sheet1 = workbook.sheet_by_index(0)

【编程题】简单的四则运算

问题描述: 输入一个只包含个位数字的简单四则运算表达式字符串,计算该表达式的值 注: 1.表达式只含 +, -, *, /, (, ), 四则运算符 2.表达式数值只包含个位整数(0-9),且不会出现0作为除数的情况 3.要考虑加减乘除按通常四则运算规定的计算优先级 4.除法用整数除法,即仅保留除法运算结果的整数部分.比如8/3=2.输入表达式保证无0作为除数情况发生 5.输入字符串一定是符合题意合法的表达式,其中只包括数字字符和四则运算符字符,除此之外不含其它任何字符,不会出现计算溢出情况 •

python实现简单的循环购物车小功能

python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s", 5000), ("book python", 81), ("iwach", 3200), ("电视机", 2200) ] def zero(name): if len(name) == 0: print("\033[31;1m您的输

python编写简单的html登陆页面(3)

1  在python编写简单的html登陆页面(2)的基础上在延伸一下: 可以将静态分配数据,建立表格,存放学生信息 2  加载到静态数据 3  html的编写直接在表格里添加一组数据就行了 4  VS Code上面跟前面的后台类似,添加一个content再链接到html就可以了 @app.route('/content')def content(): return render_template('content.html') return 'content.....'

python编写简单的html登陆页面(2)

1  在python编写简单的html登陆页面(1)的基础上在延伸一下: 可以将动态分配数据,实现页面跳转功能: 2  跳转到新的页面:return render_template('home1.html') 3  后台代码如下 4  前端html:

教学项目之-通过Python实现简单的计算器

教学项目之-通过Python实现简单的计算器 计算器开发需求 实现加减乘除及拓号优先级解析 用户输入 1 - 2 * ( (60-30 +(-40/5) * (9-2*5/3 + 7 /3*99/4*2998 +10 * 568/14 )) - (-4*3)/ (16-3*2) )等类似公式后,必须自己解析里面的(),+,-,*,/符号和公式,运算后得出结果,结果必须与真实的计算器所得出的结果一致 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 2