Python實現九九乘法口訣表及一點擴展 以文本相似度遍歷爲例

多數人在入門編程語言的時候, 都接觸過用代碼實現九九乘法口訣表。以便大家儘快熟悉列表的遍歷。

先手敲一遍

正三角形

# -*- coding: utf-8 -*-


def multiplication_tables():
    for i in range(1, 10):
        for j in range(1, i + 1):
            print('%d * %d = %2d  ' % (i, j, i * j), end='')
        print('')


if __name__ == '__main__':
    multiplication_tables()

輸出結果:請注意排版的細微差異

1 * 1 =  1   
2 * 1 =  2   2 * 2 =  4   
3 * 1 =  3   3 * 2 =  6   3 * 3 =  9   
4 * 1 =  4   4 * 2 =  8   4 * 3 = 12   4 * 4 = 16   
5 * 1 =  5   5 * 2 = 10   5 * 3 = 15   5 * 4 = 20   5 * 5 = 25   
6 * 1 =  6   6 * 2 = 12   6 * 3 = 18   6 * 4 = 24   6 * 5 = 30   6 * 6 = 36   
7 * 1 =  7   7 * 2 = 14   7 * 3 = 21   7 * 4 = 28   7 * 5 = 35   7 * 6 = 42   7 * 7 = 49   
8 * 1 =  8   8 * 2 = 16   8 * 3 = 24   8 * 4 = 32   8 * 5 = 40   8 * 6 = 48   8 * 7 = 56   8 * 8 = 64   
9 * 1 =  9   9 * 2 = 18   9 * 3 = 27   9 * 4 = 36   9 * 5 = 45   9 * 6 = 54   9 * 7 = 63   9 * 8 = 72   9 * 9 = 81 

擴展

應用場景:
有一個文本文件, 其中很多的句子句式相同,想通過相似度的算法, 只保留其中的一個句子。
將文本中, 每一句都進行相似度比較,若超過閾值, 則刪除被對比的句子。低於閾值則保留。
最終得到的文件, 每一行之間的相似度都低於閾值。

Tips:

文本中, 其中一句與其餘句子對比的算法,需要遍歷文檔,思路同乘法口訣表,只是形狀是一個倒三角形。

倒三角形

# -*- coding: utf-8 -*-


def multiplication_tables_reverse():
    for i in range(1, 10):
        print(' ' * 13 * (i -1), end='')  # 爲了倒三角形比較明顯
        for j in range(i, 10):
            print('%d * %d = %2d   ' % (i, j, i * j), end='')
        print('')


if __name__ == '__main__':
    multiplication_tables_reverse()

輸出結果:請注意排版的細微差異

1 * 1 =  1   1 * 2 =  2   1 * 3 =  3   1 * 4 =  4   1 * 5 =  5   1 * 6 =  6   1 * 7 =  7   1 * 8 =  8   1 * 9 =  9   
             2 * 2 =  4   2 * 3 =  6   2 * 4 =  8   2 * 5 = 10   2 * 6 = 12   2 * 7 = 14   2 * 8 = 16   2 * 9 = 18   
                          3 * 3 =  9   3 * 4 = 12   3 * 5 = 15   3 * 6 = 18   3 * 7 = 21   3 * 8 = 24   3 * 9 = 27   
                                       4 * 4 = 16   4 * 5 = 20   4 * 6 = 24   4 * 7 = 28   4 * 8 = 32   4 * 9 = 36   
                                                    5 * 5 = 25   5 * 6 = 30   5 * 7 = 35   5 * 8 = 40   5 * 9 = 45   
                                                                 6 * 6 = 36   6 * 7 = 42   6 * 8 = 48   6 * 9 = 54   
                                                                              7 * 7 = 49   7 * 8 = 56   7 * 9 = 63   
                                                                                           8 * 8 = 64   8 * 9 = 72   
                                                                                                        9 * 9 = 81

文本相似度

請移步閱讀該文:Python模塊之 difflib 文本對比 html文件生成 一致性對比 文本差異對比

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