歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

Python 中的map any all 函數

最近想學Python,就一直比較關注Python,昨天在Python吧看到有個帖子提問怎麼在Python中怎麼判斷密碼是否符合規范,回帖中有很多用循環的,除此外還有一個沒有用循環,代碼非常簡練,下面是代碼:

def volid(pwd):
    a = any(map(str.isupper,pwd))
    b = any(map(str.islower,pwd))
    c = any(map(str.isdigit,pwd))
    d = not all(map(str.isalnum,pwd))
    return all([a,b,c,d])

這裡的isupper islower  isdigit  isalnum 函數都很好理解,就是判斷是不是大寫,是不是小寫,是不是數字,是不是全是數字和字母(反過來就是判斷有沒有其他符號),而這裡的map函數就是把後面那個集合的每個元素用第一個參數的函數執行一遍,返回一個bool類型的集合,最外層的any和all函數就比較容易理解了,可以用“或”和“與”來理解,如果參數集合有一個為真,any函數就返回true,相當於把所有元素“或”一下,只有當參數集合全部為真,all函數才返回true,其他情況都是返回false ,所以如果volid函數傳入一個包含大寫小寫字母數字和特殊符號的字符串後,abcd就被賦值為true,最後return true,所以這個函數就可以判斷密碼夠復雜。  給自己留個問題吧,如果要求四項中只需要滿足兩項,函數該怎麼寫比較簡練。

--------------------------------------分割線 --------------------------------------

CentOS上源碼安裝Python3.4  http://www.linuxidc.com/Linux/2015-01/111870.htm

《Python核心編程 第二版》.(Wesley J. Chun ).[高清PDF中文版] http://www.linuxidc.com/Linux/2013-06/85425.htm

《Python開發技術詳解》.( 周偉,宗傑).[高清PDF掃描版+隨書視頻+代碼] http://www.linuxidc.com/Linux/2013-11/92693.htm

Python腳本獲取Linux系統信息 http://www.linuxidc.com/Linux/2013-08/88531.htm

在Ubuntu下用Python搭建桌面算法交易研究環境 http://www.linuxidc.com/Linux/2013-11/92534.htm

Python 語言的發展簡史 http://www.linuxidc.com/Linux/2014-09/107206.htm

Python 的詳細介紹:請點這裡
Python 的下載地址:請點這裡 

Copyright © Linux教程網 All Rights Reserved