模塊一 第一週 作業一 九九乘法表

九九乘法表

1 作業描述

使用while和for…in兩個循環分別輸出四種九九乘法表效果(共計8個)。

在這裏插入圖片描述

2 解題提示

本題是對循環結構的理解與簡單運用 【1 – 15】

  1. 流程控制循環結構(for…in, while)
  2. 注意初始值,步長值,控制條件等
  3. 格式化輸出參考第四節,建議使用format(使用空格填充,使格式整齊)
  4. 第三種格式的乘法表,可以循環與式子相同字節數的空格來進行填充

3 評分標準

  1. 本題共計30分
  2. while和for…in實現各12分(每個3分)
  3. 註釋以及格式6分。

4 要點解析

4.1 循環三要素

  • 起始值:從定義的變量的值開始計數
  • 判斷條件:while 後面跟的判斷
  • 步長:每次計多少數
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)


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章