How to Separate Vowels and Consonants in a String in Python | Previously, we had to check a character is a vowel or consonant. Here, we will discuss how to separate vowels and consonants in a string in Python.
In this program, we are using for loop and if-else statements to separate vowels and consonants in a string.
# Python program to separate vowels and consonants in a string
string = input['String: ']
print['Vowels: ']
for ch in string:
if ch in "AEIOUaeiou":
print[ch, end=', ']
print['\nConsonants: ']
for ch in string:
if ch not in "AEIOUaeiou ":
print[ch, end=', ']
Output for the input values test-case-1:-
String: Know Program
Vowels:
o, o, a,
Consonants:
K, n, w, P, r, g, r, m,
Output for the input values test-case-2:-
String: separate
Vowels:
e, a, a, e,
Consonants:
s, p, r, t,
How to Separate Vowels and Consonants in a String in Python
We use list comprehension methods to print the vowels and the consonants in the string.
# Python program to separate vowels and consonants in a string
def vowelsConsonants[string]:
# to count and print the vowels
vowels = [each for each in string if each in "aeiouAEIOU"]
print['Number of vowels:', len[vowels], vowels]
# to count and print the consonants
consonants = [each for each in string if each not in "aeiouAEIOU "]
print['Number of consonants:', len[consonants], consonants]
# inputs and call function
string = input['String: ']
vowelsConsonants[string]
Output:-
String: Vowels Consonants
Number of vowels: 5 [‘o’, ‘e’, ‘o’, ‘o’, ‘a’]
Number of consonants: 11 [‘V’, ‘w’, ‘l’, ‘s’, ‘C’, ‘n’, ‘s’, ‘n’, ‘n’, ‘t’, ‘s’]
Well done for writing a question and having some code to post.
You didn't say what you expect find[]
to do, but I guess you expect it to return how many times it found something? Nope; count[]
does that; you could [word.count['a'] + word.count['e']...
] to solve this, but your hint is to use find[]
, so that's out.
find[]
returns where it found something, or -1 if it found nothing.
You're going to have to word.find['a']
and then store the result, check if it's a location
in the string or a -1 to say it found nothing. Then word.find['a', location+1]
to search from just after the find location, and search the remaining characters. Check the return value of that to see if it found anything, then keep doing that in a loop until it finds nothing. Keep track of how many times it looped.
Then do that for 'e', 'i', 'o', 'u'. [a loop inside a loop].
Add them all up, that's the number of vowels. Take len[word] - num_vowels
and that's the number of consonants...
unfinished example:
word = 'alfalfa'
location = word.find['a']
if location > -1:
print 'found "a", count this'
while location > -1:
location = word.find['a', location + 1]
if location > -1:
print 'found another "a", count this'
View Discussion
Improve Article
Save Article
View Discussion
Improve Article
Save Article
Given a String, perform split on vowels.
Input : test_str = ‘GFGaBst’
Output : [‘GFG’, ‘Bst’]
Explanation : a is vowel and split happens on that.Input : test_str = ‘GFGaBstuforigeeks’
Output : [‘GFG’, ‘Bst’, ‘for’, ‘geeks’]
Explanation : a, u, i are vowels and split happens on that.
Method 1 : Using regex[] + split[]
In this, we use regex split[] which accepts multiple characters to perform split, passing list of vowels, performs split operation over string.
Python3
import
re
test_str
=
'GFGaBste4oCS'
print
[
"The original string is : "
+
str
[test_str]]
res
=
re.split[
'a|e|i|o|u'
, test_str]
print
[
"The splitted string : "
+
str
[res]]
Output
The original string is : GFGaBste4oCS The splitted string : ['GFG', 'Bst', '4', 'CS']
Method 2 : Using replace[] and split[].
First replace all vowels in string with “*” and then split the string by “*” as delimiter
Python3
test_str
=
'GFGaBste4oCS'
print
[
"The original string is : "
+
str
[test_str]]
vow
=
"aeiouAEIOU"
for
i
in
test_str:
if
i
in
vow:
test_str
=
test_str.replace[i,
"*"
]
res
=
test_str.split[
"*"
]
print
[
"The splitted string : "
+
str
[res]]
Output
The original string is : GFGaBste4oCS The splitted string : ['GFG', 'Bst', '4', 'CS']
The Time and Space Complexity for all the methods are the same:
Time Complexity: O[n]
Auxiliary Space: O[n]