繁体   English   中英

在输出中包含逗号,问号,感叹号(python)

[英]Including commas, question marks, exclamation marks in output (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语句。

您在方法末尾已return "" 因此,如果您所有的查找都失败,它将丢弃输入字符。 相反,请return c 如果使输入字符“保持”的查找不匹配,则将按原样返回输入字符。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM