如何用嵌套循环重构带分隔线的指定格式乘法表?
Python乘法表实现:左列、分隔线及格式化代码解析
一、格式化代码print('{:>5}'.format(i * j),end='')的作用
这行是Python的字符串格式化操作,拆解细节:
{:>5}:格式化占位符,>表示右对齐,5指定总宽度为5个字符。比如乘积是3会变成3(前补4个空格),乘积是24会变成24(前补3个空格),确保所有数字排版整齐,不会因位数差异打乱对齐。.format(i * j):把i*j的计算结果代入占位符,生成格式化后的字符串。end='':默认print()会在末尾加换行符,用这个参数改成空字符串,让同一行的所有乘积连续输出,不会自动换行。
二、添加左列与分隔线的实现方案
基于你已有的循环逻辑,只需补充左列输出、分隔线和行间空行即可,具体步骤如下:
1. 输出顶部固定表头与分隔线
先直接打印顶部两行常量,和后续行的格式对齐:
print(' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |') print('------+-----+-----+-----+-----+-----+-----+-----+-----+-----+')
2. 循环实现带左列的乘法表
外层循环遍历行号,每行开头先输出左列行号+分隔线,再用内层循环输出对应列的乘积+分隔线,最后添加行间空行:
for i in range(1, 10): # 输出左列行号:右对齐占5位,后跟|分隔 print(f'{i:>5} |', end='') # 内层循环遍历列,输出乘积与分隔线 for j in range(1, 10): print(f'{i*j:>5} |', end='') # 换行结束当前行的数字内容 print() # 输出行间空行(最后一行后不输出) if i != 9: print(' | | | | | | | | | |')
完整可运行代码
把两部分整合,就是符合需求的完整实现:
# 输出顶部表头与分隔线 print(' | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |') print('------+-----+-----+-----+-----+-----+-----+-----+-----+-----+') # 外层循环遍历行 for i in range(1, 10): # 输出左列行号与分隔线 print(f'{i:>5} |', end='') # 内层循环遍历列,输出乘积与分隔线 for j in range(1, 10): print(f'{i*j:>5} |', end='') # 换行 print() # 输出行间空行(最后一行除外) if i != 9: print(' | | | | | | | | | |')
内容的提问来源于stack exchange,提问作者Kenny
相关产品推荐
相关产品推荐

