user14967012
user14967012

Reputation:

string method doesn't work even if I pass it to a parameter python

Hello I am a C# programmer but I think it's good to learn python too so I am learning python I have this code

def disemvowel(string_):
    for n in string_:
        if(n is 'a' or 'e' or 'u' or 'o' or 'i'):
            string_ = string_.replace('n' , '')
    return string_
print(disemvowel('Hello'))

I declared a function that removes vowels from a string I searched its problems but I couldn't find anything I even passed the return value of the replace function to string and then pass it what is my code problem ? thanks for you answers

Upvotes: 0

Views: 135

Answers (3)

user17083192
user17083192

Reputation:

is is used to compare the ID's. In your case, it is not necessary that n and "a" have same memory location. You can change it to == to compare the VALUES. If the value of n is "a" then n=="a" should return True. is will return True when the location of both will be same. It will return False even if the value is correct. Or you can use in as well. in will return True if the variable in present in a string or iterable datatypes. Your code would be:

  1. using ==:
def disemvowel(string_):
    for n in string_:
        if n.lower()=="a" or n.lower()=="e" or n.lower()=="i" or n.lower()=="o" or n.lower()=="u":
            string_ = string_.replace(n,'')
    return string_
print(disemvowel('Hello'))
  1. using in
def disemvowel(string_):
    for n in string_:
        if n.lower() in ["a","e","i","o","u"]:
            string_ = string_.replace(n,'')
    return string_
print(disemvowel('Hello'))

Upvotes: 1

Maximilian Freitag
Maximilian Freitag

Reputation: 1049

def disemvowel(string_):
    for n in string_:
        if n in 'aeiouAEIOU':
            string_ = string_.replace(n, '')
    return string_

print(disemvowel('Hello')) 


Output: 'Hll'

If you write if n in 'aeiouAEIOU' you don't have to use all the or operators.

Upvotes: 0

prof_FL
prof_FL

Reputation: 162

try this:

def disemvowel(string_):
    res = ''
    for n in string_:
        if n not in ['a' , 'e',  'u' ,'o' , 'i']:
            res += n
    return res
print(disemvowel('Hello'))

Upvotes: 1

Related Questions