12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- #!/usr/bin/env python3
- def dec2banana(num, alphastart = None, shiftend = None, minlength = None, alphabet = None):
- #defaults
- if alphastart is None: alphastart = 0
- if shiftend is None: shiftend = 0
- if minlength is None: minlength = 1
- if alphabet is None: alphabet = [list("bcdfglmnprstvz"), list("aeiou")]
-
- numdict = len(alphabet)
- v = num
- st = ""
- l = 0
- i = (numdict - 1 + alphastart + shiftend) % numdict
- while not (v == 0 and i == (numdict - 1 + alphastart) % numdict and l >= minlength):
- r = v % len(alphabet[i])
- v = int(v / len(alphabet[i]))
- st = alphabet[i][r] + st
- i = (i - 1) % numdict
- l += 1
-
- return(st)
-
- def banana2dec(banana, alphastart = None, shiftend = None, alphabet = None):
- #defaults
- if alphastart is None: alphastart = 0
- if shiftend is None: shiftend = 0
- if alphabet is None: alphabet = [list("bcdfglmnprstvz"), list("aeiou")] #, list("123456")
- numdict = len(alphabet)
- if (len(banana) - shiftend) % numdict != 0:
- return("Banana non valida")
- v = 0
- for i in range(len(banana)):
- r = (numdict + i + alphastart) % numdict
- try:
- v = v * len(alphabet[r]) + alphabet[r].index(banana[i])
- except:
- return("Carattere non valido in posizione", i+1)
-
- return(v)
- def bananarandom(alphastart = None, shiftend = None, minlength = None, alphabet = None):
- import random
- #defaults
- if alphastart is None: alphastart = 0
- if shiftend is None: shiftend = 0
- if minlength is None: minlength = 6
- if alphabet is None: alphabet = [list("bcdfglmnprstvz"), list("aeiou")]
-
- numdict = len(alphabet)
- st = ""
- l = 0
- i = (numdict - 1 + alphastart + shiftend) % numdict
- while not (i == (numdict - 1 + alphastart) % numdict and l >= minlength):
- r = random.randint(0, len(alphabet[i]) - 1)
- st = alphabet[i][r] + st
- i = (i - 1) % numdict
- l += 1
-
- return(st)
- def isbanana(banana, alphastart = None, shiftend = None, alphabet = None):
- #defaults
- if alphastart is None: alphastart = 0
- if shiftend is None: shiftend = 0
- if alphabet is None: alphabet = [list("bcdfglmnprstvz"), list("aeiou")] #, list("123456")
- numdict = len(alphabet)
- if (len(banana) - shiftend) % numdict != 0:
- return(False)
- for i in range(len(banana)):
- r = (numdict + i + alphastart) % numdict
- if banana[i] not in alphabet[r]:
- return(False)
- return(True)
- if __name__ == "__main__":
- print("Ciao sono la libreria banana")
|