Python春節特訓營06:電腦也會九九乘法口訣

第6天 電腦也會九九乘法口訣

在這裏插入圖片描述

上一節課我們寫了第一個 Python 程序,並使用了輸入和輸出函數 —— input 和 print。今天我們將進一步學習輸出函數 print 的用法,還會學習程序的控制流程,並在此基礎上讓電腦爲我們打印出《九九乘法表》。

print 輸出格式

print 默認輸出是換行的,如果不想換行,需要加上 end 參數來指定結束符,就像這樣:

print("Hello World", end="")

前面我們通過這種方式打印一句話和你的名字:

name = input("你好,請問你叫什麼名字?")
print("很高興認識你,", name)

今天我們會學習一種新的表達方式,我們暫時稱呼它爲 “字符串格式化輸出”,上面這行代碼就可以改寫爲:

name = input("你好,請問你叫什麼名字?")
print("很高興認識你,{}".format(name))

字符串 "很高興認識你,{}" 中的花括號是佔位符,意思是等一下這裏要打印其他內容,先佔個位。至於填充什麼內容,就由字符串後的 .format() 中的內容決定。

如果還想讓它喊你的名字三遍,就可以預留三個坑,然後在 format 中填充。

name = input("你好,請問你叫什麼名字?")
print("很高興認識你,{}, {}, {}".format(name, name, name))

我們可以給佔位符編個號,表示這個坑使用 format 函數中的第幾個參數。下面代碼的執行效果與上面是一樣的。

name = input("你好,請問你叫什麼名字?")
print("很高興認識你,{0}, {1}, {2}".format(name, name, name))

也許你已經想到了,name 變量其實不需要寫三遍,這樣就行了!

name = input("你好,請問你叫什麼名字?")
print("很高興認識你,{0}, {0}, {0}".format(name))

除此之外,我們還可以爲不同的坑指定不同的效果,比如左對齊、右對齊、居中。

name = input("你好,請問你叫什麼名字?")
print("很高興認識你,{0:<8}, {0:^8}, {0:>8}".format(name))

執行效果如下:

在這裏插入圖片描述

佔位符的序號和其需要的效果操作之間用冒號 : 隔開。< 表示左對齊(默認),> 表示右對齊,^ 表示中間對齊。後面的數字8表示這裏佔了八個字符長度,你也可以改成你需要的長度。

關於 print 的格式化輸出,我們先瞭解到這裏就可以了!

在這裏插入圖片描述

循環語句

前面的代碼都是順序執行的,也就是執行完第一行,再執行第二行,直到最後一行結束。在程序中,我們還經常使用循環來讓代碼重複執行,先把下面的代碼執行一遍看看。

for x in range(10):
    print(x)

沒錯,你會看到屏幕上打印出0~9,一共十行數字。

函數 range(10) 幫我們創建了0~9這十個數字,我們通過 for ... in ... 語句將這十個數字依次取出來,放在變量 x 中,然後再使用 print 函數把它們打印出來。

需要注意的是,第二行代碼有一些空白位置,這是因爲按了 Tab 鍵。在你輸入代碼的時候,你使用的編輯器可能也已經幫你添加上了。這個空白叫做代碼縮進,表示代碼之間的從屬關係,在這裏就表示 print(x) 這行代碼是在 for 循環中被執行的。

range 函數默認從0開始,如果想從1開始,則可以使用兩個參數,分別表示開始和結束。

for x in range(1, 10):
    print(x)

循環是可以嵌套的,也就是說,一層循環中可以包括另一層循環,下一層循環中由可以包含下一層循環,但建議不要嵌套太多層,不然會暈的。。。

在這裏插入圖片描述

下面的代碼中有兩層循環,第一層循環5次,第二層循環10次。第3行的 print 語句屬於第二層循環,第4行的 print 則屬於第一層,可以看到代碼縮進其實是在表達這種層次關係。

for x in range(5):
    for y in range(10):
        print("*", end=" ")
    print("")

執行代碼,看看是不是打印出了5行10列的小星星。

* * * * * * * * * * 
* * * * * * * * * * 
* * * * * * * * * * 
* * * * * * * * * * 
* * * * * * * * * * 

除了 for in 循環語句,在 Python 中我們還可以使用 while 循環語句。同樣是打印0~9十個數字,使用 while 循環可以這樣來寫:

x = 0
while x<10:
    print(x)
    x = x + 1

這裏我們藉助了 x 變量來記錄當前的數字,緊跟 while 後面的是判斷條件,比如這裏的 x<10 表示當 x 小於 10 的時候,執行循環中的代碼。換句話說,就是當 x 大於等於 10,就跳出 while 循環,此時程序就結束了。

同樣,while 循環也可以嵌套,for in 循環和 while 循環之間也可以相互嵌套。

九九乘法表

在這裏插入圖片描述

學習完前面的內容,我們已經完全有能力使用 Python 來打印一張九九乘法表啦!緊不緊張,興不興奮?

你先想十分鐘,想不出來再看看我下面給的代碼。

在這裏插入圖片描述

這裏使用 for in 循環來實現,打開編輯器輸入如下代碼,並保存爲 99Table.py 文件。

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

在終端執行 python3 99Table.py,看看小九九有沒有打印出來。

在這裏插入圖片描述

代碼說明

  • 代碼縮進是指一行代碼開始前的空白區域,表達程序的格式框架,一個程序中可能會存在單行縮進或多行縮進。縮進是程序語法的一部分,需要嚴格明確;縮進表明了代碼間的層次關係,縮進不正確會導致程序運行錯誤;通常使用1個Tab來縮進。
  • 九九乘法表可以看做一個九行九列的表格,因此使用兩層循環可以很方便地實現。第一行代碼表示變量i的值從1到9循環執行。
  • 因爲九九乘法表的形狀是三角形,也就是說內容是逐行增加的,所以第二行的循環範圍從1開始,到 i+1 結束,隨着第一層循環中 i 的變化,第二層循環中的長度也會發生變化。
  • Python 中可以直接做數值運算,所以第三行代碼使用 i*j 來得出乘法表中的各項結果,需要注意的是可能是輸出的格式。
  • 第四行代碼屬於第一層循環,它的作用是每打印完一行就換一個新行。

作業

(1)自己動手練習一遍,看看能否輸出九九乘法表。

(2)嘗試使用 while 循環語句來輸出九九乘法表。

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