具有while循环的2的幂

时间:2017-03-01 00:18:16

标签: python python-3.x

我的程序应该输入2的输入和输出功率。例如输入8,输出1,2,4,8,16,32,65,128。但是,它不是执行8个整数并输出每个* 2,而是仅在它达到数字8时停止。我不想使用**运算符。

limit=input('Enter a value for limit')
limit =int(limit)
ctr=1
while ctr <= (limit):
    print(ctr, end=' ')
    ctr=ctr*2
print("limit=", limit) 

2 个答案:

答案 0 :(得分:1)

@ tigerhawkt3的答案是最好的,但是如果你想要一个while循环,你可以这样做:

limit = input('Enter a value for limit')
limit = int(limit)
ctr = 1
i = 0

while i < (limit):
    print(ctr, end=' ')
    ctr *= 2
    i += 1

print("limit=", limit)

答案 1 :(得分:0)

ctr是值,而不是您执行操作的次数。请改用range,并为清晰起见使用更合适的变量名称:

limit = input('Enter a value for limit: ')
limit = int(limit)
result = 1
for _ in range(limit):
    print(result, end=' ')
    result *= 2

print()
print(f"limit={limit}")

结果:

Enter a value for limit: 8
1 2 4 8 16 32 64 128 
limit=8

您可以使用for循环模拟range循环和while,如下所示,但我不建议:

ctr = 0
while ctr < limit:
    print(result, end=' ')
    result *= 2
    ctr += 1