Python如何生成算术题

这篇文章主要介绍了Python如何生成算术题,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一、前言

阿姨觉得二元加减太简单了,想要三元加减法的算术题(x + y + z; x + y - z; x - y - z; x - y + z),因为弟弟还小,只会100以内的加减法,不会负数,所以出的算术题不仅计算结果要在[0, 100]内,算式中的任何两位的计算也要在[0, 100]内。

二、思路

生成在[1,99]内的随机数x, y, z,若它们的计算结果在[0, 100]内,且算式中的任何两位的计算也在[0, 100]内,就保存在字符串里,作为答案,如"10 + 13 + 9 = 32";将字符串存入set中,因为Python的set是无序且不重复的,所以它会自动打乱和去重;把答案写入文件,写入文件时要写入index(题号)去掉结果再写入另一个文件,作为题目

三、方法

1.生成随机整数:

importrandom
x=random.randint(1,99)	#生成[1,99]内的整数

2.set:

s=set()	#初始化要用set()
x=1
s.add(x)	#将x插入s

3.将结果存入文件

text="Helloworld!"
withopen(file,'a')asf:	#追加文本到文件
	#每次输入前清空文件
	f.seek(0)
f.truncate()
	#将文本写入文件
f.write(text)

四、代码

importrandom

deffun1(x,y,z):
s=str(x)+"+"+str(y)+"+"+str(z)+"="+str(x+y+z)
returns

deffun2(x,y,z):
s=str(x)+"+"+str(y)+"-"+str(z)+"="+str(x+y-z)
returns

deffun3(x,y,z):
s=str(x)+"-"+str(y)+"+"+str(z)+"="+str(x-y+z)
returns

deffun4(x,y,z):
s=str(x)+"-"+str(y)+"-"+str(z)+"="+str(x-y-z)
returns

defgenerate(num):
s=set()
whilelen(s)<num:
x=random.randint(1,99)
y=random.randint(1,99)
z=random.randint(1,99)
if((x+y>=0andx+y<=100)
and(y+z>=0andy+z<=100)
and(x+z>=0andx+z<=100)
and(x+y+z>=0andx+y+z<=100)):
s.add(fun1(x,y,z))
if((x+y>=0andx+y<=100)
and(y-z>=0andy-z<=100)
and(x-z>=0andx-z<=100)
and(x+y-z>=0andx+y-z<=100)):
s.add(fun2(x,y,z))
if((x-y>=0andx-y<=100)
and(-y+z>=0and-y+z<=100)
and(x+z>=0andx+z<=100)
and(x-y+z>=0andx-y+z<=100)):
s.add(fun3(x,y,z))
if((x-y>=0andx-y<=100)
and(-y-z>=0and-y-z<=100)
and(x-z>=0andx-z<=100)
and(x-y-z>=0andx-y-z<=100)):
s.add(fun4(x,y,z))
returns

defsave_in_file(answers,answer_file,question_file):
withopen(answer_file,'a')asf:
#每次输入前清空文件
f.seek(0)
f.truncate()

cnt=1
foransinanswers:
text=str(cnt)+")"+ans+'\n'
f.write(text)
cnt+=1

withopen(question_file,'a')asf:
f.seek(0)
f.truncate()

cnt=1
foransinanswers:
ques=str(cnt)+")"+ans[:ans.find('=')+1]+"\n"
f.write(ques)
cnt+=1


save_in_file(generate(1000),
"C:\\Users\\sibyl\\Desktop\\calculation\\answer.txt",
"C:\\Users\\sibyl\\Desktop\\calculation\\question.txt")

五、结果

生成的txt文件:

Python如何生成算术题Python如何生成算术题

排版后的word文档:

Python如何生成算术题Python如何生成算术题

感谢你能够认真阅读完这篇文章,希望小编分享的“Python如何生成算术题”这篇文章对大家有帮助,同时也希望大家多多支持恰卡编程网,关注恰卡编程网行业资讯频道,更多相关知识等着你来学习!

发布于 2021-05-30 14:06:44
收藏
分享
海报
0 条评论
177
上一篇:Java如何实现LRU缓存淘汰算法 下一篇:PHP核心特性命名空间的示例分析
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码