From 9b5bddd2c25eee36efdfc026a433b6c9ab59ccb4 Mon Sep 17 00:00:00 2001 From: itec78 Date: Tue, 4 Aug 2020 13:13:20 +0200 Subject: [PATCH] Added minlength and exactlength --- banana.py | 43 +++++++++++++++++++++++++++---------------- 1 file changed, 27 insertions(+), 16 deletions(-) diff --git a/banana.py b/banana.py index 411e34d..8987f37 100644 --- a/banana.py +++ b/banana.py @@ -1,6 +1,6 @@ import argparse -def get_args(): +def dec2banana(): parser = argparse.ArgumentParser(description="Create banana words") parser.add_argument("num", help="number to be converted", type=int) parser.add_argument("--dictionary", help="Set dictionary", type=list, nargs='+', default=[list("bcdfglmnprstvz"), list("aeiou")]) # , list("123456") @@ -10,34 +10,45 @@ def get_args(): parser.add_argument("--shiftend", help="Set shift for ending dictionary", type=int, default=0) args = parser.parse_args() - return args - - - -def main(): - - args = get_args() dictionary = args.dictionary numdict = len(dictionary) minlength = args.minlength v = args.num st = "" + l = 0 + - i = (numdict - 1 + args.dictstart + args.shiftend) % numdict - - while not (v == 0 and i == (numdict - 1 + args.dictstart) % numdict): - r = v % len(dictionary[i]) - v = int(v / len(dictionary[i])) - st = dictionary[i][r] + st - i = (i - 1) % numdict + if args.exactlength == 0: + i = (numdict - 1 + args.dictstart + args.shiftend) % numdict + while not (v == 0 and i == (numdict - 1 + args.dictstart) % numdict and l >= args.minlength): + r = v % len(dictionary[i]) + v = int(v / len(dictionary[i])) + st = dictionary[i][r] + st + i = (i - 1) % numdict + l += 1 + else: + i = (numdict - 1 + args.dictstart + args.shiftend + args.exactlength) % numdict + while not (l >= args.exactlength): + r = v % len(dictionary[i]) + v = int(v / len(dictionary[i])) + st = dictionary[i][r] + st + i = (i - 1) % numdict + l += 1 + if v > 0: + print("Error, result longer than exactlength") + return + print(st) + + + if __name__ == "__main__": - main() \ No newline at end of file + dec2banana() \ No newline at end of file