Archivo de la etiqueta: matemáticas

[python] Otra mejora al programa de múltiplos y divisores

Ya era hora de volver por aquí ¿no? Hoy traigo una nueva mejora al programa de la anterior entrada

En esta ocasión he añadido un bucle para que vuelva a pedirte las opciones una vez se termine el programa y además, la posibilidad de calcular el mínimo común múltiplo o máximo común divisor de dos números. A continuación tenéis el código…
Seguir leyendo [python] Otra mejora al programa de múltiplos y divisores

[python] Mejora del programa de múltiplos y divisores

Pues nada, me he liado la manta a la cabeza y he seguido mejorando el programa para buscar n múltiplos o los divisores de un número y este es el resultado:

#!/usr/bin/python
# coding=utf-8
import argparse

parser = argparse.ArgumentParser(add_help=False)
group = parser.add_mutually_exclusive_group()
group.add_argument("-h", "--help", help="Muestra esta ayuda y finaliza", action="help")
group.add_argument("-m", "--multiplos", help="USO: mates_b -m n i (Calcula i múltiplos de n)", action="store_true")
group.add_argument("-d", "--divisores", help="USO: mates_b -d n (Calcula los divisores de n)", action="store_true")
parser.add_argument("numero", help="número con el que queremos trabajar", type=int)
parser.add_argument("nMultiplos", nargs='?', help="número de múltiplos que queremos", type=int)
args = parser.parse_args()

# Aquí procesamos lo que se tiene que hacer con cada argumento
if args.multiplos:
    try:
        n = args.numero
        m = args.nMultiplos
        #Desde 0 hasta el número de múltiplos solicitado...
        print ('Los', m, 'primeros múltiplos de', n, 'son: ', end='')
        for i in range (0, m):
            # Multiplicamos el número del que queremos los múltiplos por i
            print (n*i, ' ', end='')
        print()
    except:
        print("¡ERROR!: Los argumentos para el cálculo deben de ser en formato numerico")
if args.divisores:
    try:
        n = args.numero
        if n <= 0:
            #Error: El número que se ha introducido es 0 o menor
            print("¡ERROR!: ¡Te he pedido un número entero mayor que cero!")
        else:
            print('Los divisores de', n, 'son: ', end='')
            #Desde 1 hasta el número, si la división da de resto 0 es un divisor
            for i in range(1, n + 1):
                if n % i == 0:
                    print(i, ' ', end='')
            print()
    except:
        print("¡ERROR!: El argumento para el cálculo debe de ser en formato numerico")

Seguir leyendo [python] Mejora del programa de múltiplos y divisores