【发布时间】:2020-12-24 04:34:16
【问题描述】:
我有下面的代码,用 999 替换所有标点符号,用数字位置替换所有字母字符。我已包含确认标点符号已被替换的打印声明。但是,我似乎用剩余的代码覆盖以替换其他字符。
import string
def encode(text):
punct = '''!()-[]{};:'"\,<>./?@#$%^&*_~'''
for x in text.lower():
if x in punct:
text = text.replace(x, ".999")
print(text)
nums = [str(ord(x) - 96)
for x in text.lower()
if x >= 'a' and x <= 'z'
]
return ".".join(nums)
print(encode(str(input("Enter Text: "))))
输入:'Morning! \n'
输出:'13.15.18.14.9.14.7 \n'
预期输出:13.15.18.14.9.14.7.999
【问题讨论】:
-
您能否至少给出一个实际示例来说明您的输入、接收输出和预期输出?我不知道我应该在这里寻找什么问题。
-
例如早上!应该是 (13.15.18.14.9.14.7.999)
-
尝试提出一个单独函数,给定一个单个字符的输入,告诉你整数值 它应该代表。然后尝试使用该单独的函数一次性创建您想要的文本。
-
顺便说一句:您不需要到
import string来使用字符串方法 - 但您可能应该将它用于常量字符串它提供了,例如string.punctuation等于'!"#$%&\'()*+,-./:;<=>?@[\\]^_{|}~'. Also,input`已经返回一个字符串;在结果上使用str没有任何作用。
标签: python for-loop encode str-replace string-substitution