九九乘法表
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)