输出中包括逗号、问号、感叹号(python)

2024-09-29 17:16:45 发布

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

这个程序的目标是获取用户输入并将其转换为ascii文本。你知道吗

代码按其应该的方式工作,但不包括逗号、句点、感叹号或问号。你知道吗

我试着包括:!, ?,'和逗号,作为一个单独的列表,并尝试在输入中调用它。但我不知道怎么做。你知道吗

目前我只使用了一堆else if语句,它是有效的,但我觉得必须有一个更简单的方法来解决这个问题。我真的不知道怎么做。小费是非常感谢!你知道吗


def asciiToLeet(c):
    l33tLetters = ["@", "8", "(", "|)", "3", "#", "6", "[-]", "|", "_|", "|<", "1", "[]\/[]", "[]\[]", "0", "|D", "(,)", "|Z", "$", "']['",
  "|_|", "\/", "\/\/", "}{", "`/", "2"]
    if c == ' ': return ' '
    elif c == '.': return '.'
    elif c == ',': return ','
    elif c == '?': return '?'
    elif c == '!': return '!'
    elif c == "'": return "'"
    asciiCode = ord(c)
    if asciiCode >= ord('a') and asciiCode <= ord('z'):
        return l33tLetters[asciiCode - ord('a')]
    if asciiCode >= ord('A') and asciiCode <= ord('Z'):
        return l33tLetters[asciiCode - ord('A')]
    return "" 

if __name__ == "__main__":
    inputString = input()
    outputString = ""
    for c in inputString:
        outputString += asciiToLeet(c)
    print(outputString)

我期望代码用标点符号显示输出,而不必使用if-else语句。你知道吗


Tags: and代码程序returnif语句else逗号
1条回答
网友
1楼 · 发布于 2024-09-29 17:16:45

方法末尾有return ""。因此,如果所有查找都失败,它将丢弃输入字符。相反,请执行return c。这将导致输入字符返回原样,如果查找使其“leet”不匹配。你知道吗

相关问题 更多 >

    热门问题