Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def voorkomens(woord):
- """
- >>> voorkomens('CHACHACHA')
- {'a': 3, 'h': 3, 'c': 3}
- >>> voorkomens('ronddobberen')
- {'b': 2, 'e': 2, 'd': 2, 'o': 2, 'n': 2, 'r': 2}
- >>> voorkomens('ballenbakken')
- {'a': 2, 'b': 2, 'e': 2, 'k': 2, 'l': 2, 'n': 2}
- """
- voorkomen = {} # dictionairy maken
- nieuw_woord = woord.lower() # alles in kleine letters
- for i in nieuw_woord: # woord overlopen
- aantal = nieuw_woord.count(i) # aantal is hoeveel keer de letter voorkomt
- if i not in voorkomen: # als de letter nog niet in voorkomen staat moet ze toegevoegd worden met de overeenstemmende waarde
- voorkomen[i] = aantal
- return voorkomen
- def isHerhaalwoord(woord, minimale_herhaling = 1):
- """
- >>> isHerhaalwoord('CHACHACHA')
- True
- >>> isHerhaalwoord('ronddobberen')
- True
- >>> isHerhaalwoord('ballenbakken', minimale_herhaling=3)
- False
- """
- voorkomen = voorkomens(woord) # de vorige functie toepassen
- vorig_aantal = None # nodig om te kunnen vergelijken met de volgende waarde
- for aantal_keer in voorkomen.values(): # het aantel keer uit voorkomen gebruiken
- if vorig_aantal != None: # als het vorig aantal verschillend is van None
- if aantal_keer != vorig_aantal: # als het aantal verschillend is van het vorig aantal is het False
- return False
- if aantal_keer < minimale_herhaling: # als het aantal keer kleiner is dan de minimale herhaling is het False
- return False
- vorig_aantal = aantal_keer # het vorig aantal steeds gelijkstellen aan de nieuwe waarde
- return True
- def herhaalwoorden(bestand, minimale_herhaling = 1, minimale_lengte = 1):
- """
- >>> herhaalwoorden('woorden.txt', minimale_herhaling=2, minimale_lengte=10)
- {'doordringing', 'apenpakken'}
- """
- verzameling = set() # verzameling aanmaken
- #invoer = open('woorden.txt', 'r')
- #woorden = invoer.readlines()
- #invoer.close()
- for regel in open(bestand, 'r'): # de regels overlopen in het bestand
- woord = regel.strip() # alles op het einde en begin van tekens verwijderen
- 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
- verzameling.add(woord) # woord toevoegen aan verzameling
- return verzameling
- if __name__ == '__main__':
- import doctest
- doctest.testmod()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement