九九乘法表是一个经典的编程案例,通过这个案例可以帮助初学者理解循环、条件判断以及字符串格式化等基本概念。本文将介绍用Python实现九九乘法表的7种不同方式,从基础的循环控制到高级的库应用,涵盖了不同层次的编程技巧。


【Python】python经典编程案:用python打印九九乘法表的若干种方式

【Python】python经典编程案:用python打印九九乘法表的若干种方式_python

1. 使用嵌套for循环

这是最常见和直观的方式,使用嵌套的for循环来生成九九乘法表。

# 方法一:使用嵌套for循环
for i in range(1, 10):
    for j in range(1, i + 1):
        print(f"{j} * {i} = {j * i}", end='\t')
    print()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

解释

外层循环控制行数,内层循环控制每行的列数。使用f-string格式化输出乘法表。

2. 使用while循环

使用while循环实现九九乘法表,主要是为了展示while循环的用法。

# 方法二:使用while循环
i = 1
while i < 10:
    j = 1
    while j <= i:
        print(f"{j} * {i} = {j * i}", end='\t')
        j += 1
    print()
    i += 1
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

解释

while循环和for循环的逻辑类似,但需要手动控制循环变量的增减。

3. 列表生成式(List Comprehension)

使用列表生成式生成乘法表,并通过切片和字符串拼接来输出。

# 方法三:列表生成式(List Comprehension)
result = [f"{j} * {i} = {j * i}" for i in range(1, 10) for j in range(1, i + 1)]
for i in range(1, 10):
    print('\t'.join(result[i * (i - 1) // 2:(i + 1) * i // 2]))
  • 1.
  • 2.
  • 3.
  • 4.

解释

列表生成式可以在一行代码中生成所有乘法表的项,然后通过切片和拼接进行输出。

4. 使用字符串格式化

使用字符串的format方法进行格式化输出。

# 方法四:使用字符串格式化
for i in range(1, 10):
    for j in range(1, i + 1):
        print("{0} * {1} = {2}".format(j, i, j * i), end='\t')
    print()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.

解释

字符串的format方法是另一种格式化输出的方式,与f-string相比更为通用。

5. 使用函数进行封装

将打印乘法表的逻辑封装到一个函数中,方便复用。

# 方法五:使用函数进行封装
def multiplication_table():
    for i in range(1, 10):
        for j in range(1, i + 1):
            print(f"{j} * {i} = {j * i}", end='\t')
        print()

multiplication_table()
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.

解释

将逻辑封装到函数中,提高代码的复用性和可维护性。

6. 使用递归

通过递归函数来实现九九乘法表。

# 方法六:使用递归
def print_line(n):
    if n > 0:
        print_line(n - 1)
        for i in range(1, n + 1):
            print(f"{i} * {n} = {i * n}", end='\t')
        print()

print_line(9)
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.

解释

递归函数调用自身,逐行打印乘法表。递归的深度由参数控制。

7. 使用Pandas库进行格式化输出

利用Pandas库的DataFrame进行格式化输出。

# 方法七:使用Pandas库进行格式化输出
import pandas as pd

data = []
for i in range(1, 10):
    row = []
    for j in range(1, i + 1):
        row.append(f"{j} * {i} = {j * i}")
    data.append(row)

df = pd.DataFrame(data)
print(df.to_string(index=False, header=False, na_rep=''))
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

解释

Pandas库可以方便地进行数据处理和格式化,通过DataFrame对象来组织和输出乘法表。

结论

通过这七种方法,我们可以看到Python的多样性和灵活性。