如何将ASCII字符多行输出合并为单行(使用print(end=''))
读取数字转ASCII字符并单行输出
需求:读取文件中的多个数字,转换为对应的ASCII字符,将结果合并为单个单行字符串输出(原代码循环打印会换行)。
原代码
fname = input("Enter filename: ") infile = open(fname,'r') numList = infile.read() for i in numList.split(): chr(eval(i))
当前输出
a b c d e f g
期望输出
abcdefg
修改方案
原代码仅计算了ASCII字符但未执行打印操作,且缺少控制换行的参数。可按以下方式调整:
- 用
int(i)替代eval(i):eval()存在安全风险,直接将字符串转换为整数更稳妥 - 使用
print(chr(int(i)), end=''):end=''会覆盖默认的换行符,让所有字符连续输出在同一行 - (可选)用
with语句管理文件:自动处理文件关闭,代码更健壮
修改后的完整代码
fname = input("Enter filename: ") with open(fname, 'r') as infile: numList = infile.read() for i in numList.split(): print(chr(int(i)), end='') # 可选:最后手动换行,让输出格式更规范 print()
运行这段代码后,所有转换后的ASCII字符会连续输出在同一行,符合期望效果。
内容的提问来源于stack exchange,提问作者Andy B.
相关产品推荐
相关产品推荐

