擅长:python、mysql、java
<p>不要在这里使用<code>while</code>。要调用函数<code>rectangle</code>次,请使用<code>for-loop</code>:</p>
<pre><code>def repeat_mondrian():
for i in range(rectangles):
mondrian(piet,random.randint(10,rectangle_w),random.randint(10,rectangle_h))
</code></pre>
<hr/>
<p>注意,在Python中,如果函数结束时没有到达<code>return</code>语句,那么默认情况下函数返回<code>None</code>。因此<code>mondrian</code>函数总是返回<code>None</code>。在</p>
<p>所以情况</p>
^{pr2}$
<p>相当于</p>
<pre><code>None < rectangles
</code></pre>
<p>因为<code>None</code>比任何一个数都小,所以在Python2中它总是正确的。在Python3中,比较<code>None < rectangles</code>会引发一个类型错误!在</p>
<p>代码从不绘制多个矩形的原因是<code>return-statement</code>:</p>
<pre><code>while mondrian(piet,random.randint(10,rectangle_w),random.randint(10,rectangle_h)) < rectangles:
return False
</code></pre>
<p>使Python在<code>while-loop</code>中的第一次迭代之后退出<code>repeat_mondian</code>。在</p>