在Python3中,如何反向声明代码并用特定字符替换字母?

2024-09-30 06:19:38 发布

您现在位置:Python中文网/ 问答频道 /正文

(我很抱歉第一次不清楚,太棒了,社区!我想使用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)    

必须符合这些说明,也请解释代码

  • 获取inputWord的用户输入
  • 用于说明输入的大写和小写的代码
  • 将新词赋给空字符串
  • 向后遍历inputWord中的字母。在迭代时将每个字母添加到新词中
  • 将这些字母替换为“@”,“e”替换为“#”,“i”替换为“%”,“o”替换为“*”(提示:使用if、elif、else)
  • 印刷新词

它必须有一个if和elif语句,就像我提交的代码一样,不必有函数。我认为不应该有一个范围


Tags: 代码if字母情况语句社区elseprint
3条回答

不要乱搞循环。Python3有一个内置的translate函数

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'

也许这个解决方案会变得更简单

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)
```

在使用newword = something的任何地方,都可以使用+=而不是=直接附加到字符串。根据您的观点,代码的其余部分似乎是正确的(顺便问一下,这是家庭作业吗?)。但是,您确实忘记了实际执行函数:您已经定义了函数,但是您没有通过执行strReplaced()来使用它

您还可以完全删除else: pass,并且newWord可能应该初始化为""(空字符串),而不是" "(带空格的字符串)。如果想要一个所谓的纯函数,请将函数定义为具有def strReplaced(argument_name_goes_here)参数


编辑:忘记了什么,您当前正在替换字母(假设您使用实现上述要点),但您没有添加不需要替换的字母。因此,不要删除else,而是用一条语句将pass替换为将字母附加到新词后的语句(我认为您可以自己解决这个问题)

相关问题 更多 >

    热门问题