【发布时间】:2019-08-20 13:18:23
【问题描述】:
我正在尝试创建一个循环,如果“X”的值是一个整数,它将除以 2,这就是新值。然后,如果新值是整数,则除以 2 或如果有小数,则将其减去 0.5,即为新值。我希望它从“X”循环到 >= 1.5
我已经尝试了一段时间/if/elif 并且接近了,但是当我将“X”值从 217 更改为 218 时,输出不正确。
def func():
val = 217
while val >= 1.5:
val = val/2
print(val)
if val is float:
val = val-.5
print(val)
elif val is int:
val = val/2
print(val)
else:
val = val//2
print(val)
func()
当 val = 217 时,这会完美呈现,但它会变为 0.0 而不是 1.5
else: val = val//2 对我来说似乎不合适,但这是我最接近按照我想要的方式渲染这段代码的方式。
输出:
108.5 54.0 27.0 13.0 6.5 3.0 1.5 0.0 = 1.5 时,不明白为什么会出现在这里
现在,如果您将 val 更改为 218
def func():
val = 218
while val >= 1.5:
val = val/2
print(val)
if val is float:
val = val-.5
print(val)
elif val is int:
val = val/2
print(val)
else:
val = val//2
print(val)
func()
输出:
109.0 54.0 27.0 13.0 6.5 3.0 1.5 0.0
由于 218/2 = 109 然后 109/2 = 54.5 而出现了一些错误
由于我希望代码打印出每个新值,因此我希望它显示每个值,就好像您正在输入每个等式然后点击等号一样。我希望输出看起来像这样:
输出:
109.0 (/2) 54.5 (-0.5) 54.0 (/2) 27.0 (/2) 13.5 (-0.5) 13.0 (/2) 6.5 (-0.5) 6.0 (/2) 3.0 (-1.5) 1.5 (>= 1.5)
输出接近我想要的,但不完全是。
【问题讨论】:
标签: python-3.7