#python #string #replace
Вопрос:
Здравствуйте, я программист на C#, но я думаю, что тоже хорошо изучать python, поэтому я изучаю python, у меня есть этот код
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'))
Я объявил функцию, которая удаляет гласные из строки, я искал ее проблемы, но ничего не смог найти, я даже передал возвращаемое значение функции замены в строку, а затем передал ее. В чем проблема с моим кодом ? спасибо за ваши ответы
Ответ №1:
is
используется для сравнения идентификаторов. В вашем случае не обязательно, чтобы n и «a» имели одинаковую ячейку памяти. Вы можете изменить его на ==
для сравнения ЗНАЧЕНИЙ. Если значение n равно «a», то n==»a» должно вернуться True
. is
вернется True
, когда местоположение обоих будет одинаковым. Он вернется False
, даже если значение правильное. Или вы in
также можете использовать. in
вернет True
, если переменная в присутствует в строковых или повторяющихся типах данных. Ваш код был бы:
- с помощью
==
:
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'))
- с помощью
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'))
Ответ №2:
попробуйте это:
def disemvowel(string_): res = '' for n in string_: if n not in ['a' , 'e', 'u' ,'o' , 'i']: res = n return res print(disemvowel('Hello'))
Ответ №3:
def disemvowel(string_): for n in string_: if n in 'aeiouAEIOU': string_ = string_.replace(n, '') return string_ print(disemvowel('Hello')) Output: 'Hll'
Если вы пишете if n in 'aeiouAEIOU'
, вам не нужно использовать все операторы или.
Комментарии:
1. большое спасибо, но почему мой код не сработал?
2. Это из-за вашего заявления «если». Ваша версия будет выглядеть так — gt; если n = = » a «или n = =» e «или n = =» i «или n = =» o «или n = = «u»: …