擅长:python、mysql、java
<p>在<code>elif</code>语句的堆栈中,如果首先测试输入数是否小于1,则不需要检查除第一个之外的范围的下限。这将省去<code>elif</code>中的一半措辞,而且,对于这样的测试使用循环更紧凑。例如,下面的代码生成下面显示的输出。在</p>
<pre><code>def getRange(k):
if k < 1: return None
e = 1
for d in [10, 190, 2890, 38890, 488890, 5888889]:
if k<d:
return [e, 10**(e-1), 10**e -1]
e += 1
return None
for i in range(14):
print '{:8} {:20}'.format(i * 3**i, getRange(i * 3**i)),
if i&1: print
</code></pre>
<p>输出:</p>
^{pr2}$