if total == validnumber: logger.info ("Number %s is perfect", validnumber) elif total < validnumber: logger.info("Number %s is deficient", validnumber) else: logger.info("Number %s is abundant", validnumber) def toValidNumber(candidate): try: val = int(candidate) if val < 2 or str(val) != str(candidate): # if not a positive int print message and ask for input again logger.error("%s must be greater than 1 and it must be integer", candidate) return -1 except ValueError: logger.error("%s is not a valid number", candidate) return -1 return val if __name__ == "__main__": logger.debug("Invoking main program with arguments %s", sys.argv ) parser = argparse.ArgumentParser(description='Calculate divisors') parser.add_argument('numberlist', metavar='List', nargs='+', help='list of natural numbers greater than 1, sepparated by blanks (for instance: 3 89 468)') args = parser.parse_args() main(args.numberlist)