Python - elegir un numero n y mostrar todas las potencias de 2 menores a n

 
Vista:
sin imagen de perfil

elegir un numero n y mostrar todas las potencias de 2 menores a n

Publicado por esteban (6 intervenciones) el 03/04/2018 18:25:27
hola tengo un problema con este ejercicio por que el programa me pide x ejemplo 20 potencias de 2 debera mostrar 1,2,4,8,16.
por ejemplo hago:
1
2
3
4
n = 20
for i in range (1,20): # esto me genera numero de 1 a 20 que no quiero
    print (2**i)
#me da los numeros que necesito pero muchos mas como hago por que usuario debe ingresar el numero n y usando while o for me indica que eliga.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 765
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

elegir un numero n y mostrar todas las potencias de 2 menores a n

Publicado por dario (60 intervenciones) el 04/04/2018 10:26:43
Deberias usar while. Te dejo el codigo, estudialo.
Salu2

1
2
3
4
5
6
7
8
n = int(input('Ingrese un numero:'))
i = 0
x = 2**i
 
while x < n:
    print(x)
    i += 1
    x = 2**i
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

elegir un numero n y mostrar todas las potencias de 2 menores a n

Publicado por esteban (6 intervenciones) el 04/04/2018 19:42:33
genial gracias:
por lo que entiendo es que i funciona como contador, x va a elevar 2 a i, como i vale cero x va a elevar 2**0, esto meda que si el usuario ingresa 20, x es menor a 20. por lo tanto se cumple la condición hasta que x ya sea menor a 20 al elevarlo no?? así lo entendí gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de kip
Val: 1.120
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

elegir un numero n y mostrar todas las potencias de 2 menores a n

Publicado por kip (257 intervenciones) el 04/04/2018 13:57:24
Hola, no es preciso usar un while, basta con un for y un poco de las características de python como lo son las listas por comprensión:

1
2
3
4
5
number = int(input('Ingresa un numero '))
 
potencies = [2**n for n in range(number) if 2**n < number]
 
print(potencies)

Indaga y usa las características que python provee
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil

elegir un numero n y mostrar todas las potencias de 2 menores a n

Publicado por esteban (6 intervenciones) el 07/04/2018 19:20:35
excelente gracias, pss pasa que aun no hemos visto lista en la universidad por eso no puedo hacerlo con listo pero lo he modificado para que sea con for.
#8_a)primeras potencias menores de un numero n con for.
#numero = int(input('Ingresa un numero: '))
#for n in range(numero):
#if 2**n < numero:
#x = 2** n
#print(x)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar