Aparecerá un menú con las opciones 1. (S)umas parciales 2. (N)Números 3. (S)alir. El programa debe repetirse mientras el usuario no seleccione la opción 3. E En caso de escoger una opción no válida se muestra un mensaje de error.
Opción 1, introducir números enteros positivos y mayores que cero en una lista, para formar una segunda lista con las sumas parciales de los números de la primera lista (el primero, el primero más el segundo, el primero más el segundo más el tercero, etc.). Para ello, previamente le preguntará al usuario cuantos números va a introducir. A continuación, se mostrará los siguientes resultados (se utilizará listas):
Los números de la primera lista.
Los números de la lista creada.
Opción 2, introducir números enteros positivos y mayores que cero, hasta que el usuario teclee un cero. A continuación, visualizará los siguientes resultados:
Visualizar los números introducidos, sin visualizar el cero.
Cantidad de números introducidos (sin contabilizar el cero).
Visualizar los números primos introducidos.
Visualizar la suma de los números primos y cuantos fueron.
Opción 3 Salir. Debe aparecer tu nombre y el grupo al que perteneces.
Análisis:
Se creará un menú, y solamente podrá salir con la opción.
Para cada opción del menú se creará una función.
Como todas las opciones, piden números enteros, se creará una única función.
Diagrama
Para crear un menú. Explicación
Se creara una lista que permita validar las opciones correctas. lista_opciones=["P","N","S"]
Los valores introducidos se pasarán a mayúsculas. menu_opcion=input(Mensaje).upper()
Código para validar que sea una opción correcta.
if menu_opcion in lista_opciones:
Repetir hasta que introduzco una opción válida while
Código función
def pedir_menu():
bandera=True
lista_opciones=["P","N","S"]
while bandera:
Mensaje="Opción 1. (P)Sumas parciales\nOpción 2. (N)Números\nOpción 3. (S)alir \nDame la opción a realizar: "
menu_opcion=input(Mensaje).upper()
if menu_opcion in lista_opciones:
bandera=False
else:
print("Tecleaste mal la opción")
Para pedir un número.
Código para validar que sea un número entero y mayor que cero se utiliza while hasta que se cumpla y evitar que un error con `try/except.
Código función
def validar_numero(mensaje):
cierto=True
#La cantidad de números a introducir
while cierto:
try:
cantidad=int(input(mensaje))
if cantidad >=0:
cierto=False
else:
print("Dato no válido")
except:
print("Tecleaste un valor diferente a un número")
return cantidad
Código para sumas parciales
Con append() permite introducir los números a la lista.
Y len(lista), la cantidad de datos de una lista.
def sumas_parciales():
numero=[]
Lista_numero=[]
#La cantidad de números a introducir
cantidad=0
while cantidad ==0:
cantidad=validar_numero("Dime cuantos números vas a introducir: ")
if cantidad ==0:
print("Tecleaste un 0, debes teclear un número superior a 0")
suma=0
for i in range(cantidad):
#Verificar número sea postivo y no sea letra
numero_introducir=validar_numero("Dime el número a introducir ")
if numero_introducir > 0:
numero.append(numero_introducir)
suma+=numero_introducir
Lista_numero+=[suma]
#Visualizar datos
print("Los núemros introducidos son: {}".format(numero))
print("La suma de números es: {}".format(Lista_numero))
Código números primos
Para introducir los datos en la lista se utiliza append().
Para el cálculo del número primo se calcula, si desde el número 2 hasta el número -1 ()for i in range(2,numero_introducir):), el resto es diferente de cero (if numero_introducir%i==0), se introduce en la lista de los primos append.
Con sum(lista), permite obtener la sula de los números primos.
Y len(lista), la cantidad de datos de una lista.
def numeros_primos():
numero=[]
lista_primos=[]
cierto=True
while cierto:
numero_introducir=validar_numero("Número a introducir: ")
if numero_introducir >= 0:
if numero_introducir==0:
cierto=False
print("Terminaste")
else:
numero.append(numero_introducir)
primo=0
for i in range(2,numero_introducir):
if numero_introducir%i==0:
primo+=1
if primo == 0 or numero_introducir==1:
lista_primos.append(numero_introducir)
#~Cálculo de cantidad de personas menores que 18, mayores que 60
print("Los Números introducios son: {}. Fueron {} números".format(numero, len(numero)))
print("Los Números primos fueron: {}. Su suma fue: {}. Fueron {} números".format(lista_primos, sum(lista_primos),len(lista_primos)))
Código Completo
#Crear el menú
def pedir_menu():
bandera=True
lista_opciones=["P","N","S"]
while bandera:
Mensaje="Opción 1. (P)Sumas parciales\nOpción 2. (N)Números\nOpción 3. (S)alir \nDame la opción a realizar: "
menu_opcion=input(Mensaje).upper()
if menu_opcion in lista_opciones:
bandera=False
else:
print("Tecleaste mal la opción")
return menu_opcion
def validar_numero(mensaje):
cierto=True
#La cantidad de números a introducir
while cierto:
try:
cantidad=int(input(mensaje))
if cantidad >=0:
cierto=False
else:
print("Dato no válido")
except:
print("Tecleaste un valor diferente a un número")
return cantidad
def sumas_parciales():
numero=[]
Lista_numero=[]
#La cantidad de números a introducir
cantidad=0
while cantidad ==0:
cantidad=validar_numero("Dime cuantos números vas a introducir: ")
if cantidad ==0:
print("Tecleaste un 0, debes teclear un número superior a 0")
suma=0
for i in range(cantidad):
#Verificar número sea postivo y no sea letra
numero_introducir=validar_numero("Dime el número a introducir ")
if numero_introducir > 0:
numero.append(numero_introducir)
suma+=numero_introducir
Lista_numero+=[suma]
#Visualizar datos
print("Los núemros introducidos son: {}".format(numero))
print("La suma de números es: {}".format(Lista_numero))
def numeros_primos():
numero=[]
lista_primos=[]
cierto=True
while cierto:
numero_introducir=validar_numero("Número a introducir: ")
if numero_introducir >= 0:
if numero_introducir==0:
cierto=False
print("Terminaste")
else:
numero.append(numero_introducir)
primo=0
for i in range(2,numero_introducir):
if numero_introducir%i==0:
primo+=1
if primo == 0 or numero_introducir==1:
lista_primos.append(numero_introducir)
#~Cálculo de cantidad de personas menores que 18, mayores que 60
print("Los Números introducios son: {}. Fueron {} números".format(numero, len(numero)))
print("Los Números primos fueron: {}. Su suma fue: {}. Fueron {} números".format(lista_primos, sum(lista_primos),len(lista_primos)))
print("inicio")
bandera=True
while bandera:
#Pedir las ocpiones al usuario
menu=pedir_menu()
if menu=="P":
#Introducir y validar datos
print("Opcion 1. Sumas parciales")
sumas_parciales()
elif menu=="N":
#Introducir y validar datos
print("Opcion 2. Números Primos ")
numeros_primos()
elif menu=="S":
print("Opcion 3.")
print("Mi nombre es Juan Penas Grupo Grupo X")
bandera=False