<p>您的bug可能来自这样一个事实:您认为<code>print()</code>返回了一些值。它没有。你知道吗</p>
<p>函数不返回任何内容,因此将发生返回值为None的隐式返回。如果希望函数返回整数,则需要显式执行。i、 用<code>return</code>替换你的<code>print()</code></p>
<p>从<a href="https://docs.python.org/3.5/tutorial/controlflow.html#defining-functions" rel="nofollow">Python Documentation on functions</a>:</p>
<blockquote>
<p>[...] even functions without a return statement do return a value [...], <strong>This value is called None (it’s a built-in name)</strong>. Writing the value None is normally suppressed by the interpreter if it would be the only value written. [...]</p>
</blockquote>
<p>(我的重点)</sub></p>
<p>def世界末日(y):</p>
<pre><code>"""
>>> doomsday(2012)
3
>>> doomsday(1899)
2
>>> doomsday(1923)
3
>>> doomsday(10000)
-1
>>> doomsday(1756)
-1
>>> type(doomsday(2010))
<class 'int'>
"""
try:
y
except ValueError:
return
if y in range (1800, 1899+1):
x = 5
w = y%100
a = w//12
b = w%12
c = b//4
d = (a + b + c)%7
t = x + d
if t>6:
t = t - 7
return t
else:
return t
etc...
</code></pre>