擅长:python、mysql、java
<p>您应该只在显示时进行取整,并且可以通过对f字符串变量使用<code>:.1f</code>来实现这一点:</p>
<pre class="lang-py prettyprint-override"><code>def to_kmh(knots):
# Calculate the speed in km/h
return 1.852 * knots
# Write the rest of your program here
knots = float(input('Speed (kn): '))
if to_kmh(knots) <60:
print(f'{to_kmh(knots):.1f} - Go faster!')
elif to_kmh(knots) <100:
print(f'{to_kmh(knots):.1f} - Nice one.')
elif to_kmh(knots) >=100:
if to_kmh(knots) <120:
print(f'{to_kmh(knots):.1f} - Radical!')
if to_kmh(knots) >120:
print(f'{to_kmh(knots):.1f} - Whoa! Slow down!')
</code></pre>
<p>另一个避免重复的选项是让<code>to_kmh</code>返回格式化字符串而不是数字</p>
<p>或者,如果您真的想从函数中取整数字(不能保证结果是您想要的):</p>
<pre class="lang-py prettyprint-override"><code>def to_kmh(knots):
return round(1.852 * knots, 1)
</code></pre>
<p>你的错误是你试图在<code>return</code>之后<code>round</code></p>