如何实现自定义上下限且上半部分星号遮挡的乘法表?
实现带星号遮挡的自定义上下限乘法表
要解决重复数字的遮挡问题,核心逻辑是利用乘法交换律——i*j和j*i结果完全相同,所以只需要保留其中一侧的结果,另一侧用星号占位。具体来说,当行的数值i小于列的数值j时,输出星号代替乘积即可。
修改后的完整代码如下:
# 设置乘法表的上下限 lower_limit = int(input("Enter the minimum number for the multiplication table: ")) upper_limit = int(input("Enter the maximum number for the multiplication table: ")) # 生成乘法表的数值范围 table = range(lower_limit, upper_limit + 1) for i in table: for j in table: # 判断是否需要遮挡:i小于j时输出星号,否则输出乘积 if i < j: print("{:6s}".format("*"), end='') else: print("{:6d}".format(i * j), end='') print()
关键逻辑说明
- 内层循环中添加了条件判断:当
i < j时,用{:6s}格式化输出星号,保证和数字的6位宽度一致,避免表格错位; - 当
i >= j时,正常输出乘积,这样就只保留了乘法表的下半部分(含对角线)的有效数值,上半部分用星号遮挡重复项。
示例输出
假设输入下限为2,上限为5,输出效果如下:
2 4 6 8 * 4 6 10 * * 6 12 * * * 16
内容的提问来源于stack exchange,提问作者Bee Coolidge
相关产品推荐
相关产品推荐

