banana.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import argparse
  2. def get_args():
  3. parser = argparse.ArgumentParser(description="Create banana words")
  4. parser.add_argument("num", help="number to be converted", type=int)
  5. parser.add_argument("--dictionary", help="Set dictionary", type=list, nargs='+', default=[list("bcdfglmnprstvz"), list("aeiou")]) # , list("123456")
  6. parser.add_argument("--exactlength", help="Set exact length", type=int, default=0)
  7. parser.add_argument("--minlength", help="Set minimum length", type=int, default=0)
  8. parser.add_argument("--dictstart", help="Set starting dictionary", type=int, default=0)
  9. parser.add_argument("--shiftend", help="Set shift for ending dictionary", type=int, default=0)
  10. args = parser.parse_args()
  11. return args
  12. def main():
  13. args = get_args()
  14. dictionary = args.dictionary
  15. numdict = len(dictionary)
  16. minlength = args.minlength
  17. v = args.num
  18. st = ""
  19. i = (numdict - 1 + args.dictstart + args.shiftend) % numdict
  20. while not (v == 0 and i == (numdict - 1 + args.dictstart) % numdict):
  21. r = v % len(dictionary[i])
  22. v = int(v / len(dictionary[i]))
  23. st = dictionary[i][r] + st
  24. i = (i - 1) % numdict
  25. print(st)
  26. if __name__ == "__main__":
  27. main()