程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python入门到脱坑经典案例—九九乘法表

hfteth 2025-07-03 15:23:34 技术文章 3 ℃

九九乘法表是学习Python循环和格式化输出的经典案例。下面我将介绍几种不同的实现方式,帮助初学者掌握循环嵌套和字符串格式化的技巧。

方法一:基础双重循环实现


# 基础版九九乘法表
for i in range(1, 10):      # 外层循环控制行数
    for j in range(1, i+1): # 内层循环控制列数
        print(f"{j}×{i}={i*j}", end="\t")  # 使用f-string格式化输出
    print()  # 每行结束后换行

方法二:使用字符串格式化对齐

# 对齐优化版九九乘法表
for i in range(1, 10):
    for j in range(1, i+1):
        # 使用format方法格式化,保持对齐
        print("{}×{}={:<2}".format(j, i, i*j), end=" ")  
    print()

方法三:单层循环实现(使用字符串拼接)

# 单层循环实现
for i in range(1, 10):
    row = ""
    for j in range(1, i+1):
        row += f"{j}×{i}={i*j}\t"
    print(row)

方法四:倒序九九乘法表

# 倒序九九乘法表
for i in range(9, 0, -1):    # 从9到1倒序
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()

方法五:使用列表推导式

# 列表推导式实现
table = [" ".join(f"{j}×{i}={i*j}" for j in range(1, i+1)) for i in range(1, 10)]
for row in table:
    print(row)

方法六:带边框的九九乘法表

print("+" + "-"*70 + "+")
for i in range(1, 10):
    row = "| "
    for j in range(1, i+1):
        row += f"{j}×{i}={i*j:2} | "
    print(row.ljust(71) + "|")
    print("+" + "-"*70 + "+")

方法七:函数封装版

def multiplication_table(n=9, reverse=False):
    """生成乘法表
    :param n: 乘法表的大小
    :param reverse: 是否倒序
    """
    range_i = range(n, 0, -1) if reverse else range(1, n+1)
    
    for i in range_i:
        for j in range(1, i+1):
            print(f"{j}×{i}={i*j}", end="\t")
        print()

# 使用示例
multiplication_table()       # 正常顺序
print("\n倒序乘法表:")
multiplication_table(9, True) # 倒序

案例扩展:任意大小的乘法表

# 任意大小的乘法表
size = int(input("请输入乘法表的大小: "))
for i in range(1, size+1):
    for j in range(1, i+1):
        print(f"{j}×{i}={i*j}", end="\t")
    print()

总结

通过这个九九乘法表案例,我们学习了:

  1. 嵌套循环的使用方法
  2. 字符串格式化的多种方式(f-string、format方法)
  3. 列表推导式的应用
  4. 函数的封装和参数传递
  5. 输出对齐和美化技巧

这个经典案例很好地展示了Python中循环结构和字符串处理的基本用法,是初学者练习编程思维的绝佳材料。

Tags:

最近发表
标签列表