Entonces ahora tengo esto:

number = int(input("Enter a number: "))
exponent = 0

while exponent <= number:
    result = 2 ** exponent  
    exponent = exponent + 1
    print(result)

Por ejemplo: si ingreso 21, imprime los 21 números, pero necesito que el programa imprima los números que son menores que 21 así:

1
2
4
8
16

Pero no todos los 21 números.

1
Liviosah 3 oct. 2019 a las 13:36

3 respuestas

La mejor respuesta

Use este bucle en su lugar:

while 2 ** exponent <= number:
    print(2 ** exponent) 
    exponent = exponent + 1
2
Aryerez 3 oct. 2019 a las 10:41

Sugiero algo un poco más rápido.

N = int(input())
val = 1
while val < N:
    print(val)
    val += val
0
sashaaero 3 oct. 2019 a las 10:52

En el ciclo while, use el resultado para comparar con el número en lugar del exponente, en su versión se ejecutará hasta que el exponente llegue a N y no el resultado.

number = int(input("Enter a number: "))
exponent = 0
result = 0

while result <= number:
    result = 2 ** exponent  
    exponent = exponent + 1
    print(result)
0
Shadesfear 3 oct. 2019 a las 10:40
58217336