Po兩段小程式碼,說幾個小細節____關於九九乘法表&國際象棋棋盤
阿新 • • 發佈:2019-02-13
# 歡迎拍磚、交流、指正
# 九九(9*9)乘法表:
code:
for i in range(1, 10):
j = 1
while j <= i:
print("%d * %d = %2d" % (j, i, i * j), end=" ")
j += 1
print()
1.上述程式碼使用 %2d 進行print的格式化輸出;還有一個思路是使用製表符(\t),只需要將上述print語句修改如下:
print("%d * %d = %d\t" % (j, i, i * j), end=" ")
print("%d * %d = %d"% (j, i, i * j), end="\t")
其實,“\t”就是 保持列對齊,從字元的最左側開始,所以有些時候,字元太長,用“\t”會超出。
執行結果如下:
注意: 對齊的差異。總之,這兩種方式都可以對齊,但是如果不做處理,執行的結果可能就是這樣:
細看之下,方可發現區別。
demo2:turtle庫繪製國際象棋棋盤
繪製結果: 實話說,太像馬賽克
code:
# 題目:要求輸出國際象棋棋盤。 import turtle as t t.hideturtle() t.speed(10) t.pu() t.goto(-100, -100) t.pd() color_list = ['black', 'white'] for v_square in range(1, 9): for l_square in range(1, 9): # 列印一行方塊 t.begin_fill() for line in range(1, 5): # 列印一個方塊 t.fd(25) t.left(90) if l_square % 2 != 0: t.fillcolor(color_list[0]) else: t.fillcolor(color_list[1]) t.end_fill() t.up() t.fd(line * 25 / 4) t.pd() t.pu() t.goto(-100, (-100 + v_square * 25)) t.pd() color_list[0], color_list[1] = color_list[1], color_list[0] t.done()
細節如下:
--1.幾個迴圈巢狀的情況,內部的for迴圈很容易執行最後結果是迭代的最後一個數據,這裡容易弄混,尤其再這個資料是大迴圈的某個變數的引數時。比如下列語句為何在程式中要”/4“,這裡關於這個細節後續會寫一個爬蟲案例,來更好的演示。
t.fd(line * 25 / 4)
--2. python的變數標記的資料相互交換,不需要使用傳統的”冒泡“法(引入一個空的變數c),只需要寫出如下語句。此題用了列表的元素交換。這是python語言的簡潔之處,實際上python這裡是用了 tuple 的思想。
a, b = b, a
--3. 最好用speed方法設定繪製速,不然容易等哭。