2024-06-28 11:38:27 发布
网友
请告知以下代码是否有效。我的好像一点也不管用
string = str(input('Enter something to change')) replacing_words = 'aeiou' for i in replacing_words: s = string.replace('replacing_words', ' ') print(s)
我的意思是用一个空格替换字符串中的所有元音。 如果这是一个错误的代码,有人可以帮助正确的代码和解释,为什么它没有工作?
谢谢你
你可以定义一个translation table。下面是Python2代码:
>>> import string >>> vowels = 'aeiou' >>> remove_vowels = string.maketrans(vowels, ' ' * len(vowels)) >>> 'test translation'.translate(remove_vowels) 't st tr nsl t n'
它快速,简洁,不需要任何循环。
对于Python3,你会写:
'test translation'.translate({ord(ch):' ' for ch in 'aeiou'}) # Thanks @JonClements.
这是正确的密码。
string = input('Enter something to change') vowels = 'aeiouy' for i in vowels: string = string.replace(i, ' ') print(string)
另外,我认为input返回一个字符串“type”。所以调用str不会有任何效果。不确定。另外,y也是元音(如果你想更彻底的话,还有åääää和其他的元音和奇怪的字符)。
您不正确地使用了replace方法。因为要分别替换每个字符,所以每次都应该传递一个字符。
replace
这里有一句话可以说明问题:
string = ''.join(' ' if ch in vowels else ch for ch in string)
你可以定义一个translation table。下面是Python2代码:
它快速,简洁,不需要任何循环。
对于Python3,你会写:
这是正确的密码。
另外,我认为input返回一个字符串“type”。所以调用str不会有任何效果。不确定。另外,y也是元音(如果你想更彻底的话,还有åääää和其他的元音和奇怪的字符)。
您不正确地使用了
replace
方法。因为要分别替换每个字符,所以每次都应该传递一个字符。这里有一句话可以说明问题:
相关问题 更多 >
编程相关推荐