(我为第一次也不清楚而道歉,美好的社区!我应该使用elif或if语句。)下面是我到目前为止的情况。
userInput = input("Write whatever you want: ")
newWord = " "
def strReplaced():
for letter in userInput[::-1]:
if letter == "a":
newWord = "@"
elif letter == "e":
newWord = "#"
elif letter == "i":
newWord = "%$"
elif letter == "0":
newWord = "*"
else:
pass
return strReplaced
print(newWord)
print(userInput) 必须相应地符合这些说明,也请解释代码
它必须有一个if和elif语句,就像我提交的代码一样,不需要一个函数。我不认为应该有一个范围。
发布于 2021-04-23 19:02:10
在使用newword = something的任何地方,都可以使用+=而不是=直接追加字符串。根据您的观点,您的其余代码似乎是正确的(顺便说一句,这是作业吗?)但是,您确实忘记了实际执行您的函数:您已经定义了它,但是您没有通过执行strReplaced()来使用它。
您还可以完全删除else: pass,newWord可能应该初始化为"" (空字符串),而不是" " (带空格的字符串)。如果您想拥有一个所谓的纯函数,请定义您的函数以便与def strReplaced(argument_name_goes_here)有一个参数。
编辑:忘了一些东西,你现在正在替换字母(假设你使用的是实现上面的点),但是你没有添加不需要替换的字母。所以不要删除else,而是用一个在新词后面添加字母的语句替换pass (我认为您可以自己解决这个问题)。
发布于 2021-04-23 19:05:51
不要乱搞循环。Python 3有内置的翻译功能.
userInput = input("Write whatever you want: ")[::-1].lower()
userInput.translate(str.maketrans({'a': '@', 'e': '#', 'i': '%$', 'o': '*'}))
Write whatever you want: This is A sentence to REPLACE
'#c@lp#r *t #cn#tn#s @ s%$ s%$ht'发布于 2021-04-23 19:35:13
也许这个解决方案更容易
def test(a):
dict_word={
'a':'@'
,'e':'#'
,'i':'%'
,'o':'*'
}
b=a[::-1]
print(b)
new_word = ''
c = []
for i in b:
if i in dict_word:
res = dict_word[i]
else:
res=i
c.append(res)
new_word=''.join(c)
return new_word
a='sdocisae'
b=test(a)
print(b)https://stackoverflow.com/questions/67235425
复制相似问题