如果飞机在美国飞行VFR,如果航向为东,则海拔高度必须为千零加500英尺(1500,3500,5500等)。如果向西飞行,海拔必须是一千甚至五千英尺(2500,4500,6500等)。如果我输入一个给定的高度,但是标题是错误的(奇数或偶数),我如何让Python在下一个更高的奇数或偶数千分之一(1500变为2500,6500变为7500等)时进行纠正?我们永远不会向下舍入高度。谢谢!
答案 0 :(得分:0)
你可以将你的高度除以1000.0并转换成一个可以删除小数的int:
if int(altitude/1000.0) % 2 == 0
然后你可以用这些信息做任何你想做的事。
答案 1 :(得分:0)
您可以使用math.ceil执行此操作:
>>> import math
>>> def next_alt(alt):
... return (math.ceil(alt/1000)+1)*1000+500
...
>>> next_alt(2500)
3500.0
>>> next_alt(3500)
4500.0
然后可以通过这种方式在函数中使用:
def set_alt(heading, alt):
if 0<=heading<=179: # odd + 500
return alt if alt / 1000 % 2 else (math.ceil(alt/1000)+1)*1000+500
else:
return alt if not alt / 1000 % 2 else (math.ceil(alt/1000)+1)*1000+500
(如果是Python 3,则需要//
而不是/
)
>>> set_alt(290, 3500)
4500
>>> set_alt(90, 3500)
3500