我是靠谱客的博主 激昂钢笔,最近开发中收集的这篇文章主要介绍用python实现加减乘除运算_用Python实现小学生四则运算(升级版),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

一、题目描述

(1)能自动生成小学四则运算题目;

(2)能支持真分数的四则运算;

二、实现环境

Spyder、Python3.0

三、代码实现

import random

from fractions import Fraction

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

global f

question = []

result = []

answer = []

def result_integer(f, m):

try:

n = eval(f)

n = Fraction('{}'.format(n)).limit_denominator() # 把表达式的结果转成分数

if n > 0: # 判断结果是否大于0,否则重新产生表达式

#print('题目:')

question.append(f)

result.append(n)

#print('请输出答案:')

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

else:

integer()

except:

integer(m)

def func_integer(number):

f = ''

ch = []

rand = random.randint(0, 1) #选择内嵌或外嵌括号

if number != 1: #避免一个表达式也产生括号

if rand == 0:

ch.append('(')

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

ch.append(random.randint(1, 10))

ch.append(op)

ch.append(random.randint(1, 10))

ch.append(')')

else:

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

if op == '/':

a = random.randint(1, 10)

ch.append(a)

ch.append(op)

ch.append(random.randint(a, 10))

else:

ch.append(random.randint(1, 10))

ch.append(op)

ch.append(random.randint(1, 10))

else:

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

if op == '/':

a = random.randint(1, 10)

ch.append(a)

ch.append(op)

ch.append(random.randint(a, 10))

else:

ch.append(random.randint(1, 10))

ch.append(op)

ch.append(random.randint(1, 10))

for i in ch: #把产生表达式当成一个整体

f += str(i)

return f

def integer(n):

ch = [] #存储表达式

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

for i in range(number):

rand = random.randint(0, 1) #随机产生0和1 判断是否使用括号

a = func_integer(number) #调用表达式产生函数,产生表达式

if rand == 0:

op = operation[random.randint(2,3)] #产生*,/来连接有括号的表达式,避免产生+,—

rand = random.randint(0, 1) #随机产生0和1 判断是否使用内嵌括号或外嵌括号

if i != number - 1: #避免开始和结尾用无意义的括号

if rand == 0:

ch.append('(')

ch.append(a)

ch.append(op)

ch.append(random.randint(1,10))

ch.append(')')

ch.append(operation[random.randint(0, 3)])

else:

ch.append(a)

ch.append(operation[random.randint(0, 3)])

else:

ch.append(a)

ch.append(operation[random.randint(0, 3)])

else:

ch.append(a)

ch.append(operation[random.randint(0, 3)])

f = ''

for k,i in enumerate(ch): #把列表中的所有值用f一个个连起来

if k != len(ch)-1:

f += str(i)

result_integer(f, n) #调用输出函数

if __name__ == '__main__':

print('输入你想做几道题目')

n = int(input())

for i in range(n):

integer(n)

print('题目:')

for k, i in enumerate(question):

print(k + 1,':',i,'=')

print('请输入你的答案:')

for i in range(n):

print('第{}题:'.format(i + 1))

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

if x == result[i]:

print('{}:√'.format(i + 1))

else:

print('{}:×'.format(i + 1))

print('正确的答案为:',result[i])

四、结果显示

五、PSP表格

最后

以上就是激昂钢笔为你收集整理的用python实现加减乘除运算_用Python实现小学生四则运算(升级版)的全部内容,希望文章能够帮你解决用python实现加减乘除运算_用Python实现小学生四则运算(升级版)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(49)

评论列表共有 0 条评论

立即
投稿
返回
顶部