如何使用 Python 在输入字符串中移动元音

Nai*_*123 4 python string

我正在尝试编写一个函数,让我可以移动字符串中的单个字母。字符串来自输入。

我在看元音所以“a,e,i,o,u”

我希望将单个字母向右移动一位。即世界“m e ”将成为“m i ”,因为ie之后的下一个字母。

这是我到目前为止:

import random
vowels = ("a", "e", "i", "o", "u")

message = input("Enter a string")

new_message = ""

for letter in message:
    if letter not in vowels:
        new_message += letter
    else:
        new_message += random.choice(vowels)
        
print(new_message)
Run Code Online (Sandbox Code Playgroud)

然而,这会使单个元音的变化随机化,使其转移到下一个字母的最佳方法是什么?

Ham*_*son 6

如果你想翻译整个字符串,那么我会看str.translate.

这是一个使用元音的简单示例:

>>> v = "aeiou"
>>> vDict = {v[i]: v[(i+1)%len(v)] for i in range(len(v))}
>>> vDict
{'a': 'e', 'e': 'i', 'i': 'o', 'o': 'u', 'u': 'a'}
>>> "This is a test-string. hope it works!".translate(str.maketrans(vDict))
'Thos os e tist-strong. hupi ot wurks!'
Run Code Online (Sandbox Code Playgroud)