1. 程式人生 > >Po兩段小程式碼,說幾個小細節____關於九九乘法表&國際象棋棋盤

Po兩段小程式碼,說幾個小細節____關於九九乘法表&國際象棋棋盤

# 歡迎拍磚、交流、指正

# 九九(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方法設定繪製速,不然容易等哭。