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