九九乘法表
1 作业描述
使用while和for…in两个循环分别输出四种九九乘法表效果(共计8个)。
2 解题提示
本题是对循环结构的理解与简单运用 【1 – 15】
- 流程控制循环结构(for…in, while)
- 注意初始值,步长值,控制条件等
- 格式化输出参考第四节,建议使用format(使用空格填充,使格式整齐)
- 第三种格式的乘法表,可以循环与式子相同字节数的空格来进行填充
3 评分标准
- 本题共计30分
- while和for…in实现各12分(每个3分)
- 注释以及格式6分。
4 要点解析
4.1 循环三要素
i = 1 # 起始值
while i <= 9: # 判断条件
print('%s .九九乘法表'%i)
i += 1 # 步长
4.2 range()
range() 函数可创建一个整数列表,一般用在 for 循环中,使用for 循环进行迭代。
其中我们循环三要素对应着range() 函数的三个参数
for i in range(1, 10, 1): #(start,stop,step) ===》for i in [1,2,3,4,5,6,7,8,9]:
print('%s .九九乘法表'%i)
# start【起始值】: 计数从start开始。默认是从 0 开始。例如range(5)等价于range(0, 5);
# stop【终止值】: 计数到stop结束,但不包括stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5
# step【步长】:默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)
4.3 format()
format()格式化输出
format()常见的用法
其实就是format()后面的内容,填入大括号中(可以按位置,或者按变量)
print('{} {} {}'.format("123",456,'789'))
print('{2} {1} {0}'.format("123",456,'789'))
# 补位
print('{}X{}={:<3}$$'.format('a', 'i', 'a'))
print('{}X{}={:^3}$$'.format('a', 'i', 'a'))
print('{}X{}={:>3}$$'.format('a', 'i', 'a'))
4.4 print()
print('九九乘法表')
print('九九',end= '')
print('乘法表')
5 代码实现
# 九九乘法表
# 使用while实现,方式一
# 定义变量i的初始值为1
i = 1
# 使用while循环,当i小于等于9时,持续循环状态
while i <= 9:
# 定义变量a为1,放在循环内是为了让新的一行a从1开始
a = 1
# 使用while循环,当a的值大于i跳出循环,因为99乘法表中a始终不大于i
while a <= i:
# i和a的初始值是1,直接计算1*1的值,format方法替换{}内容,end=''让打印结果不换行
# 使用format占位,使得输出效果整齐
print('{}*{}={:<4}'.format(a, i, a*i), end= '')
# 计算完以后让a的值加上1
a += 1
# 让i加1,i的规律就是加1
i += 1
# 只是为了换行【到达终止值,换一行】
print()
# 小分割线
print('-'* 80)
# 使用while实现,方式二
# 定义变量i的初始值为1
i = 9
# 使用while循环,当i小于等于9时,持续循环状态,为了防止无限循环设置当i的值为0是退出循环
while i >= 1 :
# 定义变量a为1,放在循环内是为了让新的一行a从1开始
a = 1
# 使用while循环,当a的值大于i跳出循环,因为99乘法表中a始终不大于i
while a <= i:
# 使用format占位,使得输出效果整齐,end=''为了不换行
print('{}*{}={:<4}'.format(a, i, a*i), end= '')
# 计算完以后让a的值加上1
a += 1
# 让i加1,没换一行,i的规律就是加1
i -= 1
# 只是为了换行
print()
# 小分割线
print('-'* 80)
"""
# 方式三 第一种
# 定义变量i的初始值
i = 1
# 使用while循环
while i <= 9:
# 定义 空格变量
j = 8
# while循环,当初始值大于i时,输出空格
while j >= i:
# 输出与式子相对应的空格
print('{:<8}'.format(''), end='')
# 步长,每次减一
j -= 1
# 定义变量k的初始值
k = i
# k大于1 时,输出
while k >= 1:
# 输出乘法表
print('{}*{}={:<4}'.format(k, i, i * k), end='')
# k每次减一
k -= 1
# i 每次+ 1
i += 1
# 换行
print()
print('-'* 80)
"""
# 使用while实现,方式三 第二种
# 定义变量i的初始值为1
i = 1
# 使用while循环
while i <= 9:
# 定义变量a为9
a = 9
# 使用while循环,当a的值大于0跳出循环,因为99乘法表中a始终不大于0
while a > 0:
# 当a小于等于i的时候打印乘法
if a <= i:
# 使用format占位,使得输出效果整齐,end=''为了不换行
print('{}*{}={:<4}'.format(a, i, a*i), end= '')
# 否则,打印空格填充
else:
print(' ' * 8, end= '')
# a的值减去1
a -= 1
# 让i加1,没换一行,i的规律就是加1
i += 1
# 只是为了换行
print()
# 小分割线
print('-'*80)
# 使用while实现,方式四
# 定义变量为9
i = 9
# 使用while循环
while i > 0:
# 定义变量a为9
a = 9
# 使用while循环,当a的值大于0跳出循环,因为99乘法表中a始终不大于0
while a > 0:
# 当a小于等于i的时候打印乘法
if a <= i:
# 使用format占位,使得输出效果整齐,end=''为了不换行
print('{}*{}={:<4}'.format(a, i, a*i), end='')
# 否则,打印空格填充
else:
print(' ' * 8, end='')
# a的值减去1
a -= 1
# 让i减1,每换一行,i的规律就是加减1
i -= 1
# 只是为了换行
print()
# 大分割线
print('='*100)
# 使用for...in,方式一:
# 生成1到9的整数,并遍历
for i in range(1,10):
# 生成1到(i+1)的整数,并遍历
for a in range(1,i+1):
# 使用format占位,使得输出效果整齐,end=''为了不换行
print('{}*{}={:<4}'.format(a, i, i*a), end= '')
# 打印完一行开始换行
print()
# 小分割线
print('-'*80)
# 使用for...in,方式二(方式基本同上,只需要改变生成整数的倒序)
# 生成9到1的整数
for i in range(9, 0, -1):
# 生成1到(i+1)的整数
for a in range(1, i+1):
# 使用format占位,使得输出效果整齐,end=''为了不换行
print('{}*{}={:<4}'.format(a, i, i*a), end= '')
# 打印完一行开始换行
print()
# 小分割线
print('-'*80)
#第三个
# 生成 9 到1 的数q
for i in range(9, 0, -1):
# 生成 1-8 的数
for j in range(1,i):
# 生成空格
print('{:<8}'.format(''),end='')
# 生成 10-i 到 1 的数
for j in range(10-i,0,-1):
# 输出表达式
print('{}*{}={:<4}'.format(j, i, i*j), end= '')
# 换行
print()
# 分隔符
print('-'*80)
#第四个
# 生成 9 到 1 的数
for i in range(9, 0, -1):
# 生成 9-i 到 1 个数 ,控制空格的输出
for j in range(9-i, 0, -1 ):
# 输出空格
print('{:<8}'.format(''), end= '')
# 生成 i 到 1 的数
for j in range(i, 0, -1):
# 输出表达式
print('{}*{}={:<4}'.format(j, i, j*i), end= '')
# 换行
print()
# 分隔符
print('-'*80)