Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.42 KB | None | 0 0
  1. def code2karakter(codes):
  2.  
  3. invoer = open(codes, 'r')
  4. inhoud = invoer.readlines()
  5. woordenboek = {}
  6.  
  7. for regel in inhoud:
  8. splitsing = regel.split(' ', 1)
  9. for i, teken in enumerate(splitsing[1]):
  10. woordenboek.update({splitsing[0] + '.' + str(i): teken})
  11.  
  12. return woordenboek
  13.  
  14. def karakter2codes(codes):
  15.  
  16. invoer = open(codes, 'r')
  17. inhoud = invoer.readlines()
  18. woordenboek = {}
  19.  
  20. for regel in inhoud:
  21. splitsing = regel.split(' ', 1)
  22. tekens = list(set(splitsing[1]))
  23. for teken in tekens:
  24. voorkomen = [splitsing[0] + '.' + str(i) for i, t in enumerate(splitsing[1]) if t == teken]
  25. if teken not in woordenboek.keys():
  26. woordenboek.update({teken: set(voorkomen)})
  27. else:
  28. woordenboek[teken].update(set(voorkomen))
  29.  
  30. return woordenboek
  31.  
  32. class Hippocrates:
  33.  
  34. def __init__(self, codes):
  35. invoer = open(codes, 'r')
  36. inhoud = invoer.readlines()
  37. woordenboek = {}
  38. for regel in inhoud:
  39. regel = regel.strip('\n')
  40. splitsing = regel.split(' ', 1)
  41. woordenboek.update({splitsing[0]: splitsing[1]})
  42. self.woordenboek = woordenboek
  43. self.c2k = code2karakter(codes)
  44. self.k2c = karakter2codes(codes)
  45.  
  46. def beschrijving(self, icd):
  47. if icd not in self.woordenboek:
  48. raise ValueError('ongeldige ICD-code')
  49. return self.woordenboek[icd]
  50.  
  51. def karakter(self, code):
  52. if code not in self.c2k:
  53. raise ValueError('ongeldige Hippocrates-code')
  54. return self.c2k[code]
  55.  
  56. def codes(self, karakter):
  57. if karakter not in self.k2c:
  58. return set()
  59. return self.k2c[karakter]
  60.  
  61. def codeer(self, boodschap):
  62.  
  63. import random
  64. code = ''
  65.  
  66. for teken in boodschap:
  67. if teken not in self.k2c.keys():
  68. raise ValueError('ongeldige platte tekst')
  69. vervanger = random.choice(list(self.k2c[teken]))
  70. code += vervanger + ' '
  71.  
  72. return code.rstrip()
  73.  
  74. def decodeer(self, gecodeerd):
  75.  
  76. boodschap = ''
  77.  
  78. code = gecodeerd.split()
  79. if not all(c in self.c2k.keys() for c in code):
  80. raise ValueError('ongeldige gecodeerde tekst')
  81. for c in code:
  82. boodschap += self.c2k[c]
  83.  
  84. return boodschap
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement