如何将给定数字字符串转换为对应ASCII可显示字符串?
调整方案与可运行代码
原代码问题点
- 无需反转原始数字串:输入串
"729799107101114"本身就是目标单词每个字符的ASCII值按顺序拼接的结果,反转操作会打乱原有顺序 - 固定按两位拆分逻辑错误:ASCII值存在两位(65-90大写、97-99小写、32空格)和三位(100-122小写)两种长度,硬拆两位会得到不符合规则的无效数值
修正后代码
s = "729799107101114" result = "" index = 0 str_len = len(s) while index < str_len: # 优先判断两位是否符合取值规则 two_bit = int(s[index:index+2]) if (65 <= two_bit <= 90) or (97 <= two_bit <= 99) or two_bit == 32: result += chr(two_bit) index += 2 # 不符合则取三位(对应100-122区间的小写字母) else: three_bit = int(s[index:index+3]) result += chr(three_bit) index += 3 print(result)
运行上述代码将直接输出期望结果Hacker。
内容的提问来源于stack exchange,提问作者Bordento22
相关产品推荐
相关产品推荐

