Python Program to Remove Vowels from String

This article is created to cover some programs in Python, that removes vowels from a string entered by user. Here are the list of approaches used:

  • Remove vowels from a string using for loop
  • Using string slicing
  • Using replace() method

Note - a, e, i, o, u, A, E, I, O, U are all vowels.

Remove Vowels from String using for Loop

To remove all vowels from a string in Python, you have to ask from user to enter a string, then remove all vowels from it as shown in the program given below. The question is, write a Python program to remove vowels from string. Here is its answer:

print("Enter the String: ")
text = input()

vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
newtext = ""
textlen = len(text)

for i in range(textlen):
    if text[i] not in vowels:
        newtext = newtext + text[i]

print("\nString after removing Vowels: ")
text = newtext
print(text)

Here is the initial output produced by this Python program:

remove vowels from string python

Now supply the input say codescracker.com and press ENTER key to remove all vowels from this string and print new string without vowel as shown in the snapshot given below:

delete vowels from string python

The above program works in a way that:

  • I've created a list of all 10 vowels. 5 lowercase and 5 uppercase vowels
  • Then initializes characters, one by one to a new string say newtext, only if character (that is going to initialize) does not present in (or equal to) any of 10 vowels available in the list

Note - The len() method returns length of string passed as its argument.

Note - The range() method returns a sequence of values. By default, starts with 0 and increments by 1 each time. Continues until the value provided as its argument.

The dry run of above program with user input codescracker.com goes like:

  • Initial values, text = "codescracker.com" (entered by user), newtext = "", and textlen = 16 (since length of given string is 16)
  • Now the execution of for loop begins, that is initially i=0 and since 0 is less than textlen or 16, therefore condition evaluates to be true, and program flow goes inside the loop
  • The condition (of if) text[i] not in vowels or text[0] not in vowels or "c" not in vowels evaluates to be true, because "c" is the character that does not available in the list named vowels. Therefore program flow goes inside this if's body and newtext + text[i] or "" + text[0] or "" + "c" or "c" gets initialized to newtext
  • Now the value of i gets incremented, so i=1, since 1 is again less than 16, therefore condition again evaluates to be true, therefore program flow again goes inside the loop
  • This time, text[i] not in vowels or text[1] not in vowels or "o" not in vowels evaluates to be false, since "o" is the character that is available in the list named vowels. Therefore program flow doesn't goes inside the if's body
  • Now i=2 and this time, the condition of if, that is text[i] not in vowels or text[2] not in vowels or "d" not in vowels evaluates to be true, therefore newtext + text[i] or "c" + "d" or "cd" gets initialized to newtext
  • This process continues, until the value of i becomes 16
  • In this way, the variable newtext holds the string value entered by user, but without any vowels
  • So, initialized its value to text and the value of text gets printed as string without vowels

Modified Version of Previous Program

This is the modified version of previous program. This program uses for loop in a way that, each and every characters of string gets copied to c one by one, and using c's value, I've checked and does the job of removing vowels just like previous program. The only difference is c is treated as text[i] here.

print("Enter String: ", end="")
text = input()

vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
newtext = ""

for c in text:
    if c not in vowels:
        newtext = newtext + c

print("\nWith Vowels =", text)
text = newtext
print("\nWithout Vowels =", text)

Here is its sample run with string input Welcome to codescracker.com:

python remove vowels from string

Note - The end= is used to skip inserting newline using print()

Remove Vowels from String using String Slicing

This program uses string slicing to do the job of removing vowels from a string. This program removes vowels from string without using any other (second) variable.

print("Enter String: ", end="")
text = input()

vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
i = 0
for c in text:
    if c in vowels:
        text = text[:i] + text[i+1:]
        i = i-1
    i = i+1

print("\nWithout Vowels =", text)

Here is its sample run with same string input as previous sample run:

remove vowels from string using for loop python

In above program, the following statement:

text = text[:i] + text[i+1:]

states that, except character at ith index, all characters before and after ith index, gets added and initialized to text as its new value.

Note - While slicing string using index pairs inside square brackets, that is [:], index number before colon is included, and index number after colon is excluded.

Note - Empty before : (colon) in [:] refers to 0, and empty after : (colon) in [:] refers to the length value of string.

Remove Vowels from String using replace()

This program uses replace() method to replace the vowel with nothing (""). So that, one by one all vowels gets removed with "", that is empty. Let's have a look at the program

print("Enter String: ", end="")
text = input()

vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']
for c in text:
    if c in vowels:
        text = text.replace(c, "")

print("\nWithout Vowels =", text)

Same Program in Other Languages

Python Online Test


« Previous Program Next Program »