<div class="blogpost-body" id="cnblogs_post_body">
<h2>源代码已上传至码云,<a href="https://gitee.com/liudanxi/codes/njpay3luk8g1iv6bfs9t536">https://gitee.com/liudanxi/codes/njpay3luk8g1iv6bfs9t536</a></h2>
<h2>题目:</h2>
<p> (1)能自动生成小学四则运算题目,并且不能出现负数;</p>
<p> (2)能支持真分数的四则运算;</p>
<h2>思路:</h2>
<p> (1)四则运算加减乘除,采用两个随机数,由于不能出现负数,则对两个随机数进行比较大小再进行减法运算,除法一向特殊,所以在随机数的取值范围中设置不包括0。</p>
<p> (2)真分数运算在pycharm中导入fractions库,其余类似。</p>
<h2>实现过程:</h2>
<p> 设计三个函数:</p>
<p> def newint() 生成整数四则运算</p>
<p> def newfra() 生成真分数四则运算</p>
<p> def newtest() 生成制定指定数量的四则运算题目</p>
<p> 函数关系:</p>
<p> newint()与newfra()为独立的函数,负责生成随机四则运算,newtest()则随机调用上述两个函数生成题目。详细描述请看下方代码说明</p>
<h2>代码说明:</h2>
<p> 首先说明整数的四则运算,生成两个随机数并随机运算,在减法中比较大小防止出现负数,在除法中比较大小并循环取整除的随机数组合。最后输出算式并返回正确答案。</p>
<div class="cnblogs_code">
<pre class="blockcode"><span style="color:#008080;"> 1</span> <span style="color:#0000ff;">def</span><span style="color:#000000;"> newint():
</span><span style="color:#008080;"> 2</span> opr = [<span style="color:#800000;">'</span><span style="color:#800000;">+</span><span style="color:#800000;">'</span>, <span style="color:#800000;">'</span><span style="color:#800000;">-</span><span style="color:#800000;">'</span>, <span style="color:#800000;">'</span><span style="color:#800000;">×</span><span style="color:#800000;">'</span>, <span style="color:#800000;">'</span><span style="color:#800000;">÷</span><span style="color:#800000;">'</span><span style="color:#000000;">]
</span><span style="color:#008080;"> 3</span> fh = random.randint(0, 3<span style="color:#000000;">)
</span><span style="color:#008080;"> 4</span> n1 = random.randint(1, 20<span style="color:#000000;">)
</span><span style="color:#008080;"> 5</span> n2 = random.randint(1, 20<span style="color:#000000;">)
</span><span style="color:#008080;"> 6</span> rjg =<span style="color:#000000;"> 0
</span><span style="color:#008080;"> 7</span> <span style="color:#0000ff;">if</span> fh ==<span style="color:#000000;"> 0:
</span><span style="color:#008080;"> 8</span> rjg = n1 +<span style="color:#000000;"> n2
</span><span style="color:#008080;"> 9</span> <span style="color:#0000ff;">elif</span> fh == 1<span style="color:#000000;">:
</span><span style="color:#008080;">10</span> n1, n2 =<span style="color:#000000;"> max(n1, n2), min(n1, n2)
</span><span style="color:#008080;">11</span> rjg = n1 -<span style="color:#000000;"> n2
</span><span style="color:#008080;">12</span> <span style="color:#0000ff;">elif</span> fh == 2<span style="color:#000000;">:
</span><span style="color:#008080;">13</span> rjg = n1 *<span style="color:#000000;"> n2
</span><span style="color:#008080;">14</span> <span style="color:#0000ff;">elif</span> fh == 3<span style="color:#000000;">:
</span><span style="color:#008080;">15</span> n1, n2 =<span style="color:#000000;"> max(n1, n2), min(n1, n2)
</span><span style="color:#008080;">16</span> <span style="color:#0000ff;">while</span> n1 % n2 !=<span style="color:#000000;"> 0:
</span><span style="color:#008080;">17</span> n1 = random.randint(1, 10<span style="color:#000000;">)
</span><span style="color:#008080;">18</span> n2 = random.randint(1, 10<span style="color:#000000;">)
</span><span style="color:#008080;">19</span> n1, n2 =<span style="color:#000000;"> max(n1, n2), min(n1, n2)
</span><span style="color:#008080;">20</span> rjg = int(n1 /<span style="color:#000000;"> n2)
</span><span style="color:#008080;">21</span> <span style="color:#0000ff;">print</span>(n1, opr[fh], n2, <span style="color:#800000;">'</span><span style="color:#800000;">= </span><span style="color:#800000;">'</span>, end=<span style="color:#800000;">''</span><span style="color:#000000;">)
</span><span style="color:#008080;">22</span> <span style="color:#0000ff;">return</span> rjg</pre>
</div>
<p>真分数四则运算类似。</p>
<div class="cnblogs_code">
<pre class="blockcode"><span style="color:#008080;"> 1</span> <span style="color:#0000ff;">def</span><span style="color:#000000;"> newfra():
</span><span style="color:#008080;"> 2</span> opr = [<span style="color:#800000;">'</span><span style="color:#800000;">+</span><span style="color:#800000;">'</span>, <span style="color:#800000;">'</span><span style="color:#800000;">-</span><span |
|