Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.65 KB | None | 0 0
  1. def voorkomens(woord):
  2.     """
  3.    >>> voorkomens('CHACHACHA')
  4.    {'a': 3, 'h': 3, 'c': 3}
  5.    >>> voorkomens('ronddobberen')
  6.    {'b': 2, 'e': 2, 'd': 2, 'o': 2, 'n': 2, 'r': 2}
  7.    >>> voorkomens('ballenbakken')
  8.    {'a': 2, 'b': 2, 'e': 2, 'k': 2, 'l': 2, 'n': 2}
  9.    """
  10.     voorkomen = {}                  # dictionairy maken
  11.     nieuw_woord = woord.lower()     # alles in kleine letters
  12.    
  13.     for i in nieuw_woord:               # woord overlopen
  14.         aantal = nieuw_woord.count(i)   # aantal is hoeveel keer de letter voorkomt
  15.         if i not in voorkomen:          # als de letter nog niet in voorkomen staat moet ze toegevoegd worden met de overeenstemmende waarde
  16.             voorkomen[i] = aantal      
  17.            
  18.     return voorkomen
  19.  
  20. def isHerhaalwoord(woord, minimale_herhaling = 1):
  21.     """
  22.    >>> isHerhaalwoord('CHACHACHA')
  23.    True
  24.    >>> isHerhaalwoord('ronddobberen')
  25.    True
  26.    >>> isHerhaalwoord('ballenbakken', minimale_herhaling=3)
  27.    False
  28.    """
  29.     voorkomen = voorkomens(woord)   # de vorige functie toepassen
  30.     vorig_aantal = None             # nodig om te kunnen vergelijken met de volgende waarde
  31.    
  32.     for aantal_keer in voorkomen.values():  # het aantel keer uit voorkomen gebruiken
  33.         if vorig_aantal != None:            # als het vorig aantal verschillend is van None
  34.             if aantal_keer != vorig_aantal: # als het aantal verschillend is van het vorig aantal is het False
  35.                 return False
  36.         if aantal_keer < minimale_herhaling:    # als het aantal keer kleiner is dan de minimale herhaling is het False
  37.             return False
  38.         vorig_aantal = aantal_keer          # het vorig aantal steeds gelijkstellen aan de nieuwe waarde
  39.        
  40.     return True
  41.    
  42. def herhaalwoorden(bestand, minimale_herhaling = 1, minimale_lengte = 1):
  43.     """
  44.    >>> herhaalwoorden('woorden.txt', minimale_herhaling=2, minimale_lengte=10)
  45.    {'doordringing', 'apenpakken'}
  46.    """
  47.     verzameling = set()     # verzameling aanmaken
  48.    
  49.     #invoer = open('woorden.txt', 'r')
  50.     #woorden = invoer.readlines()
  51.     #invoer.close()
  52.    
  53.     for regel in open(bestand, 'r'):    # de regels overlopen in het bestand
  54.         woord = regel.strip()       # alles op het einde en begin van tekens verwijderen
  55.        
  56.         if isHerhaalwoord(woord, minimale_herhaling) and len(woord) >= minimale_lengte: # als het een herhaalwoord is en de lengte is groter dan of gelijk aan de minimale lengte
  57.             verzameling.add(woord)      # woord toevoegen aan verzameling
  58.            
  59.     return verzameling
  60.        
  61. if __name__ == '__main__':
  62.     import doctest
  63.     doctest.testmod()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement