<h2>对更新后的问题的回答:</h2>
<p>这应该是有效的:</p>
<pre><code>def diff_between_months(month1, month2):
diff = month1 - month2
if diff > 6:
diff = diff - 12
if diff < -6:
diff = diff + 12
return diff
</code></pre>
<p>或者用更少的行数:</p>
^{pr2}$
<p>返回:</p>
<pre><code>>>> diff_between_months(1,11)
2
>>> diff_between_months(11,1)
-2
>>> diff_between_months(12,3)
-3
>>> diff_between_months(3,12)
3
>>> diff_between_months(1,7)
-6
>>> diff_between_months(7,1)
6
</code></pre>
<p>其中,<code>diff_between_months(1,7)</code>中的减号可以通过将<code>if diff < -6</code>更改为<code>if diff <= -6</code>来修复。在</p>
<h2>对老问题的回答(月份之间的绝对差异):</h2>
<p><code>min(abs(month1 - month2), month1 - month2 + 12, month2 - month1 + 12)</code>应该能做到。在</p>
<p>作为函数:</p>
<pre><code>def diff_between_months(month1, month2):
return(min(abs(month1 - month2), month1 - month2 + 12, month2 - month1 + 12))
</code></pre>
<p>这就回来了</p>
<pre><code>>>> diff_between_months(1,11)
2
>>> diff_between_months(11,1)
2
>>> diff_between_months(6,6)
0
>>> diff_between_months(6,9)
3
>>> diff_between_months(6,12)
6
>>> diff_between_months(5,12)
5
>>> diff_between_months(7,12)
5
>>> diff_between_months(1,12)
1
>>> diff_between_months(12,1)
1
</code></pre>
<p>如果出于某种原因,您的月份可能大于12,请添加<code>[month1, month2] = [month1 % 12, month2 % 12]</code></p>