Python字符串与列表代码排错:实现指定格式乘法行输出需求
问题排查与修复方案
问题根源
- 错误将数字列表直接转为字符串后逐字符拼接:列表转字符串会自带方括号、逗号和元素间隔空格,逐字符插入
|会把这些无关符号也一并分隔,同时两位数的数字会被拆分为单个字符,导致出现1|0这类错误输出。 - 没有做数字对齐处理,无法匹配要求的输出格式。
修复后代码
# 读取输入转为整数列表 row1 = [int(i) for i in input().split()] # 生成三行数据 rows = [ [n * i for i in row1] for n in (1, 2, 3) ] # 逐行格式化输出 for row in rows: # 每个数字右对齐占2位,用|连接后去掉左侧多余空格 line = '|'.join(f"{num:2d}" for num in row).lstrip() print(line)
代码说明
- 先对每个数字做宽度为2的右对齐格式化,保证一位数前面带空格、两位数占满宽度
- 直接对格式化后的字符串列表用
|拼接,避免无关符号插入 - 用
lstrip()去掉行首多余的空格,完全匹配期望的输出格式
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

