2023年5月17日 星期三

Python 學習筆記 : 字集排列的過濾 (十七)

本篇為追加過濾規則的最後一個關於字數的限制, 本系列之前的筆記參考 : 


第十五道過濾的規則是 : "每12個字的排列中,這12字加起來的字母總數介於64~85個字母". 此規則不需要用到正規式, 用 Python 的 len() 函式就能搞定. 

第一個測試語料是字母總數少於 64 個字元的情況 (應排除) :

#  perm_test_15.py
#  字母總數須介於 64~85 個字母
words=('air', 'root', 'arch', 'try', 'close', 'amber', 'silent', 'beauty', 'trial', 'engage', 'more', 'after')
chars=''.join(words)
print(chars)
print(len(chars))
if len(chars) < 64 or len(chars) > 85:  # 須 64~85 個字母才入選                      
    print('the permutation is excluded')       
else:      
    print('the permutation is included')     

執行結果為排除 (正確) :

>>> %Run perm_test_15.py   
airrootarchtrycloseambersilentbeautytrialengagemoreafter
56
the permutation is excluded

第二個測試語料是字母總數等於 64 個字元的情況 (應入選) :

#  perm_test_15.py
#  字母總數須介於 64~85 個字母
words=('air', 'root', 'machine', 'jacket', 'close', 'country', 'silent', 'beauty', 'trial', 'engage', 'more', 'after')
chars=''.join(words)
print(chars)
print(len(chars))
if len(chars) < 64 or len(chars) > 85:  # 須 64~85 個字母才入選                      
    print('the permutation is excluded')       
else:      
    print('the permutation is included')    

執行結果為入選 (正確) :

>>> %Run perm_test_15.py   
airrootmachinejacketclosecountrysilentbeautytrialengagemoreafter
64
the permutation is included

第三個測試語料是字母總數等於 85 個字元的情況 (應入選) :

#  perm_test_15.py
#  字母總數須介於 64~85 個字母
words=('abandon', 'negative', 'machine', 'jacket', 'champion', 'country', 'balance', 'beauty', 'obscure', 'engage', 'shoulder', 'identify')
chars=''.join(words)
print(chars)
print(len(chars))
if len(chars) < 64 or len(chars) > 85:  # 須 64~85 個字母才入選                      
    print('the permutation is excluded')       
else:      
    print('the permutation is included')
   
執行結果為入選 (正確) :

>>> %Run perm_test_15.py   
abandonnegativemachinejacketchampioncountrybalancebeautyobscureengageshoulderidentify
85
the permutation is included

第四個測試語料是字母總數多於 85 個字元的情況 (應排除) :

#  perm_test_15.py
#  字母總數須介於 64~85 個字母
words=('abandon', 'negative', 'machine', 'jacket', 'champion', 'country', 'balance', 'kangaroo', 'obscure', 'engage', 'shoulder', 'identify')
chars=''.join(words)
print(chars)
print(len(chars))
if len(chars) < 64 or len(chars) > 85:  # 須 64~85 個字母才入選                      
    print('the permutation is excluded')       
else:      
    print('the permutation is included')
   
執行結果為排除 (正確) :

>>> %Run perm_test_15.py   
abandonnegativemachinejacketchampioncountrybalancekangarooobscureengageshoulderidentify
87
the permutation is excluded


2023-05-19 補充 :

規則改為這 12 個字用空格串起來後長度要在 64~88 個之間, 故上面的測試程式改成如下 : 

chars=' '.join(words)     # 以空格串接排列中的 12 個字母
print(chars)
print(len(chars))
if len(chars) < 64 or len(chars) > 88:  # 含空格長度須 64~88 個字母才入選                      
    print('the permutation is excluded')       
else:      
    print('the permutation is included')

沒有留言 :