gpt4 book ai didi

python - 输入仅输入 2 的幂

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:00 24 4
gpt4 key购买 nike

这是一个简单的问题,但我被困住了。

我正在编写一个简单的程序来获取一个 2 的不同倍数的输入值。也就是说,它的形式必须为 2^x,其中 12^0=1

因此,唯一有效的输入是 1, 2, 4, 8, 16, 32, 等。如果用户输入 3,我的程序将抛出一个错误错误。我还将输入限制为 18192(其中 8192 = 2**13)。如果用户输入 10000-30,我会抛出错误。

这就是我到目前为止所拥有的。

def checkValue():
maxValue = 8192
while True:
try:
intValue = int(input('Please enter integer: '))
except ValueError:
print("Value must be an integer!")
continue
else:
if intValue < 1:
print("Value cannot be less than 1")
continue
elif intValue > 8192:
print("Value cannot be greater than 8192")
continue
else:
return("The value is equal to " + str(intValue) )

必须有一种简单的方法来测试输入是否为2的幂。但我不确定如何将这样的测试合并到我当前的代码中。由于我只接受 14 值作为有效输入(即 1 和最多 2**13 的值),也许这是最有效的测试?

如有任何建议,我们将不胜感激。谢谢。

最佳答案

这个怎么样?

def checkValue():
maxValue = 8192
while True:
try:
intValue = int(input('Please enter integer: '))
except ValueError:
print("Value must be an integer!")
continue
else:
if intValue in [1, 2, 4, 8, 16, 32]:
return("The value is equal to " + str(intValue))
elif intValue < 1:
print("Value cannot be less than 1")
continue
elif intValue > 8192:
print("Value cannot be greater than 8192")
continue
else:
return("Error")

关于python - 输入仅输入 2 的幂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30088057/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com