给定一个字符串,我只想颠倒元音,而让剩下的字符串保持原样。如果输入为fisherman
,则输出应为fashermin
。我尝试了以下代码:
a=input()
l=[]
for i in a:
if i in 'aeiou':
l.append(i)
siz=len(l)-1
for j in range(siz,-1,-1):
for k in a:
if k in 'aeiou':
a.replace(k,'l')
print(a)
应该对此代码进行哪些更改才能获得所需的输出?
发布于 2021-03-18 11:54:42
代码中的逻辑错误很少。
您需要在另一个字符串a= a.replace(k,'l')
中保存
a= a.replace(k,l[j])
使用与您使用的相同的变量名,以下是正确的方法之一:
a=input()
l=""
for i in a:
if i in 'aeiouAEIOU':
l+=i
new_a = ""
for k in a:
if k in "aeiouAEIOU":
new_a += l[-1]
l = l[:-1]
else:
new_a += k
print(a)
print(new_a)
发布于 2021-03-18 11:58:51
将你的单词转换成一个字母列表并返回会更容易一些:
a=input('Enter word: ')
l=[]
for i in a:
if i in 'aeiou':
l.append(i)
letters = list(a)
for i in range(len(letters)):
if letters[i] in 'aeiou':
letters[i] = l.pop(-1)
print(''.join(letters))
https://stackoverflow.com/questions/66688611
复制相似问题