banana.py 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #!/usr/bin/env python3
  2. def dec2banana(num, dictstart = None, shiftend = None, minlength = None, dictionary = None):
  3. #defaults
  4. if dictstart is None: dictstart = 0
  5. if shiftend is None: shiftend = 0
  6. if minlength is None: minlength = 0
  7. if dictionary is None: dictionary = [list("bcdfglmnprstvz"), list("aeiou")]
  8. numdict = len(dictionary)
  9. v = num
  10. st = ""
  11. l = 0
  12. i = (numdict - 1 + dictstart + shiftend) % numdict
  13. while not (v == 0 and i == (numdict - 1 + dictstart) % numdict and l >= minlength):
  14. r = v % len(dictionary[i])
  15. v = int(v / len(dictionary[i]))
  16. st = dictionary[i][r] + st
  17. i = (i - 1) % numdict
  18. l += 1
  19. return(st)
  20. def banana2dec(banana, dictstart = None, shiftend = None, dictionary = None):
  21. #defaults
  22. if dictstart is None: dictstart = 0
  23. if shiftend is None: shiftend = 0
  24. if dictionary is None: dictionary = [list("bcdfglmnprstvz"), list("aeiou")] #, list("123456")
  25. numdict = len(dictionary)
  26. v = 0
  27. for i in range(len(banana)):
  28. r = (numdict + i + dictstart) % numdict
  29. try:
  30. v = v * len(dictionary[r]) + dictionary[r].index(banana[i])
  31. except:
  32. print("Carattere non valido in posizione", i+1)
  33. return()
  34. return(v)
  35. if __name__ == "__main__":
  36. print("Ciao sono la libreria banana")