Python编写字符转数字编码程序时重复字符仅输出一次如何解决?
问题修复说明
你现有代码的核心问题是仅判断整个输入字符串是否包含某类字符,只要存在就仅输出一次对应编码,没有逐个处理输入的每一个字符,自然无法匹配重复出现的字符输出对应编码。
修复逻辑改为遍历输入的每一个字符,逐个转换即可,参考代码如下:
print("input a message you would like to be converted to a number code") inpi = input("") for char in inpi: # 匹配原代码空格输出空行的逻辑 if char == " ": print("") continue # 仅处理小写字母,如需支持大写可先加 char = char.lower() if char.islower(): # 利用ASCII码连续的特性计算对应数字,a对应1、b对应2...z对应26 code = ord(char) - ord('a') + 1 print(f"{code}.", end="")
修改点说明:
- 新增
for循环遍历输入的每一个字符,同一个字符重复出现时也会被单独处理,输入abab时会按顺序输出1.2.1.2 - 不需要为每个字母单独写
if判断,利用字符ASCII码的特性自动计算对应数值,自动支持a到z所有字母的转换,无需手动补充规则 - 保留了你原代码中空格的处理逻辑,输入遇到空格时会输出空行
内容的提问来源于stack exchange,提问作者Meredith Hodous
相关产品推荐
相关产品推荐

