home1.gif


说明: 1 x 1 = 1
1 x 2 = 2 2 x 2 = 4
1 x 3 = 3 2 x 3 = 6 3 x 3 = 9
1 x 4 = 4 2 x 4 = 8 3 x 4 = 12 4 x 4 = 16
1 x 5 = 5 2 x 5 = 10 3 x 5 = 15 4 x 5 = 20 5 x 5 = 25
1 x 6 = 6 2 x 6 = 12 3 x 6 = 18 4 x 6 = 24 5 x 6 = 30 6 x 6 = 36
1 x 7 = 7 2 x 7 = 14 3 x 7 = 21 4 x 7 = 28 5 x 7 = 35 6 x 7 = 42 7 x 7 = 49
1 x 8 = 8 2 x 8 = 16 3 x 8 = 24 4 x 8 = 32 5 x 8 = 40 6 x 8 = 48 7 x 8 = 56 8 x 8 = 64
1 x 9 = 9 2 x 9 = 18 3 x 9 = 27 4 x 9 = 36 5 x 9 = 45 6 x 9 = 54 7 x 9 = 63 8 x 9 = 72 9 x 9 = 81

1. 分析/思路


<空>

2. 程序


【实例 1-1】打印九九乘法表

  1. for i in range(1, 10):
  2. for j in range(1, i + 1):
  3. product = i * j
  4. if j > 1 and product < 10:
  5. product = str(product) + ' '
  6. else:
  7. product = str(product)
  8. print(str(j) + 'x' + str(i) + '=' + product, end=' ')
  9. print()

【实例 1-2】使用制表符对齐乘法表

  1. for i in range(1, 10):
  2. for j in range(1, i + 1):
  3. print(str(j) + 'x' + str(i) + '=' + str(i * j) + '\t', end=' ')
  4. print()

【实例 1-3】使用 format 函数格式化字符串,对齐打印

  1. for i in range(1, 10):
  2. for j in range(1, i + 1):
  3. print('{} x {} = {:<2}'.format(j, i, i * j), end=' ')
  4. print()

说明:{3:<2},冒号(:)之前的数字表示字符串的索引,冒号(:)之后的>、<表示右、左对齐,数字2表示所占的宽度。

如果打印九九乘法表方阵的上半部分(即翻转乘法表),如下所示怎么实现呢?
image.png
【实例 1-4】翻转打印乘法表 ( 2 种方法实现)

  1. for i in range(1, 10):
  2. line = ''
  3. for j in range(i, 10):
  4. product = i * j
  5. if product < 10:
  6. product = str(product) + ' '
  7. else:
  8. product = str(product)
  9. line += str(i) + 'x' + str(j) + '=' + product + ' '
  10. print('{:>63}'.format(line))
  1. for i in range(1, 10):
  2. print(' ' * 7 * (i - 1), end='')
  3. for j in range(i, 10):
  4. product = i * j
  5. if product < 10:
  6. end = ' '
  7. else:
  8. end = ' '
  9. print(str(i) + 'x' + str(j) + '=' + str(i * j), end=end)
  10. print()

2. 扩展


  • 字符串格式化 - format 函数
    1. str.format()
    在使用 format 函数格式化数字的方法:
数字 格式 输出 描述
13 {:>10d} 13 右对齐 (默认, 宽度为10)
13 {:<10d} 13 左对齐 (宽度为10)
13 {:^10d} 13 居中 (宽度为10)
5 {:0>2d} 05 数字补零 (填充左边, 宽度为2)
10 {:x<4d} 10xx 数字补x (填充右边, 宽度为4)
2.71828 {:.0f} 3 不带小数
3.1415926 {:.2f} 3.14 保留小数点后两位
0.25 {:.2%} 25.00% 百分比格式
1000000 {:,} 1,000,000 以逗号分隔的数字格式

11
‘{:b}’.format(11) 1011 二进制
‘{:d}’.format(11) 11 十进制
‘{:o}’.format(11) 13 八进制

‘{:x}’.format(11) ‘{:#x}’.format(11) ‘{:#X}’.format(11) | b
0xb
0XB | 十六进制 |

说明

  1. 冒号:前面表示索引值或引用之类;
  2. 冒号: 号后面带填充的字符,只能是一个字符,不指定则默认是用空格填充;
  3. ^, <, > 分别是居中、左对齐、右对齐,后面带宽度;
  4. b、d、o、x :分别是二进制、十进制、八进制、十六进制;
  5. 此外可以使用大括号 { } 来转义大括号,如下
    1. "{1} 对应的索引位置是 {{1}}".format("hello", "world") # 'world 对应的索引位置是 {1}'

end1.gif