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 →