Python-programma om het aantal klinkers te tellen

In dit programma leer je om het aantal klinkers in een string te tellen met behulp van woordenboek- en lijstbegrip.

Om dit voorbeeld te begrijpen, moet u kennis hebben van de volgende programmeeronderwerpen in Python:

  • Python voor Loop
  • Python-snaren
  • String-methoden

Broncode: woordenboek gebruiken

 # Program to count the number of each vowels # string of vowels vowels = 'aeiou' ip_str = 'Hello, have you tried our tutorial section yet?' # make it suitable for caseless comparisions ip_str = ip_str.casefold() # make a dictionary with each vowel a key and value 0 count = ().fromkeys(vowels,0) # count the vowels for char in ip_str: if char in count: count(char) += 1 print(count) 

Uitvoer

 ('o': 5, 'i': 3, 'a': 2, 'e': 5, 'u': 3) 

Hier hebben we een string genomen die is opgeslagen in ip_str. Met behulp van de methode casefold()maken we deze geschikt voor caseless-vergelijkingen. In feite retourneert deze methode een versie in kleine letters van de tekenreeks.

We gebruiken de woordenboekmethode fromkeys()om een ​​nieuw woordenboek samen te stellen met elke klinker als sleutel en alle waarden gelijk aan 0. Dit is de initialisatie van de telling.

Vervolgens herhalen we de invoerstring met een for-lus.

Bij elke iteratie controleren we of het teken in de woordenboeksleutels staat ( Trueals het een klinker is) en verhogen we de waarde met 1 indien waar.

Broncode: gebruik van een lijst en een woordenboekbegrip

 # Using dictionary and list comprehension ip_str = 'Hello, have you tried our tutorial section yet?' # make it suitable for caseless comparisions ip_str = ip_str.casefold() # count the vowels count = (x:sum((1 for char in ip_str if char == x)) for x in 'aeiou') print(count) 

De output van dit programma is hetzelfde als hierboven.

Hier hebben we een lijstbegrip genest in een woordenboekbegrip om de klinkers op één regel te tellen.

Het woordenboekbegrip wordt uitgevoerd voor alle klinkertekens en de lijstbegrip in het woordenboekbegrip controleert of er tekens in de tekenreeks overeenkomen met die specifieke klinker.

Aan het einde wordt een lijst met 1 s gegenereerd voor het nummer van elk klinkerteken. De sum()methode wordt gebruikt om de som van de elementen voor elke lijst te berekenen.

Dit programma is echter langzamer omdat we de hele invoerreeks voor elke klinker herhalen.

Interessante artikelen...