Python - mostrar num

 
Vista:
sin imagen de perfil

mostrar num

Publicado por pipi (12 intervenciones) el 14/08/2021 14:47:45
Hola necesito mostrar los 3 primeros numero imp entre dos numeros naturales n y m

def numeros_n():
n = int(input("Ingrese el primer numero: "))
m = int(input("Ingrese el segundo numero: "))
for i in range (n,m):
if i % 2 != 0:
print (i, end =" ")

print(numeros_n())

Eso es lo que yo hice, alguien me corrige?
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
Imágen de perfil de Francisco Javier
Val: 249
Ha aumentado su posición en 29 puestos en Python (en relación al último mes)
Gráfica de Python

mostrar num

Publicado por Francisco Javier (313 intervenciones) el 14/08/2021 16:30:58
No hace falta que imprimas la función si no tiene ningún return, sólo llamándola es necesaria, los he introducido en una lista y luego sólo he llamado a los tres primeros números.


1
2
3
4
5
6
7
8
9
10
def numeros_n():
  lista=[]
  n = int(input("Ingrese el primer numero: "))
  m = int(input("Ingrese el segundo numero: "))
  for i in range (n,m):
    if i % 2 != 0:
      lista.append(i)
  print(lista[:3])
 
numeros_n()
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

mostrar num

Publicado por pipi (12 intervenciones) el 15/08/2021 05:10:44
Perfecto, muchas 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
sin imagen de perfil
Val: 2.808
Oro
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

mostrar num

Publicado por tincopasan (1082 intervenciones) el 14/08/2021 19:14:04
Ya te han dado una respuesta , pero voy a aprovechar este tema para comentar algunos puntos:
1) Estás generando una lista y después comparando uno a uno si es par o no.
Imaginate si por casualidad el segundo término es : 3587946521 porque el planteo dice números pero no específica los límites.
Se va a demorar un poco en hacer los cálculos, ni hablar si es mayor.

2) Además generás la lista de una sola vez, con todos los recursos que eso implica, y solo para tomar 3 números

bueno, con un poco de lógica y con python, es posible mejorar el funcionamiento, que repito no es necesario si usas 3 y 20 por ejemplo, aunque igual ya ocupan memoria.
1
2
3
4
5
6
#-*- coding: utf  -8 -*-
def impares(n,m):
    if n %2 == 0:
        n+=1
    for numero in range(n,m+1,2):
        yield numero

creo la función y le paso los rangos solo hago la comparción con el límite inferior ya que la lsita será a partir de ahí y en un salto de 2.
o sea, si n = 3 la lista será entre n y m de a dos: 3,5,7, etc. ya son todos impares ¿para qué comparar?
Bueno si es n = 8 por ejemplo, le sumo 1 y por ende ya es impar.
Para los que buscan aprender, yield es un generador, pero no almacena la lsita completa sino que guarda de a un valor por así decirlo
Con esto no hago más que una comparación y un elemento

1
2
3
4
5
6
7
8
9
10
11
12
def principal(c=3):
    n = int(input("Ingrese el primer número: "))
    m = int(input("Ingrese el segundo número: "))
    numeros=impares(n, m)
    for _ in range(c):
        try:
            print(next(numeros),end=" ")
        except StopIteration:
            print("\nNo hay suficientes impares entre el rango dado")
            return
 
principal()

por último creo la función que devuelva lo que busco, donde le paso como parámetro el valor por defecto de los números que quiero ver. Si lo modifico al llamar la función , veré lo que necesito, 4 ,10,100 etc.
Finalmente con el for en el rango del contador, en este caso 3 voy creando cada número.
La diferencia la verán si modifican el valor de m con respecto a los códigos anteriores.por ejemplo m =35897451 que es un número pequeño y posible.

Como dije, esto es solo para quienes ya conocen python y quieren mejorar la lógica en cuanto a funcionamiento y no sintáxis.
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
sin imagen de perfil

mostrar num

Publicado por pipi (12 intervenciones) el 15/08/2021 05:11:42
Buenisimo! La verdad no conozco bien yield, pero lo voy a practicar e incorporar, muchas 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