簡體   English   中英

我可以使用函數 'count()' 來查找密碼中的大寫字母數量嗎? (蟒蛇)

[英]Am I able to use the function 'count()' to find the amount of upper cases in a password? (PYTHON)

當我輸入下面的代碼時,它說:

類型錯誤:必須是 str,而不是列表

這是否意味着我不能使用函數 count() 或者還有其他方法可以對其進行編程嗎?

password = "CheeseMakesMeHappy"
uppercase =["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"]
print (password.count(uppercase))

只需檢查密碼中的每個字符並檢查它是否是大寫字符。 例如:

password = "FoOoObA"
print(len([c for c in password if c.isupper()]))
>> 4

另一種方法是使用集合和位掩碼來計算唯一大寫字符的數量。

password = "CheeseMakesMeHappy"
uppercase = set(["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"])
print(len(set(password)&uppercase))
>> 3

然而, set解決方案只會計算 UNIQUE 字符,但在密碼強度計量的情況下,這可能不是一個壞主意。

問題在於方法count()需要一個字符串對象。 現在,通過這一行(password.count(uppercase)) ,您可以有效地將 Array 對象傳遞給您的函數。 請參閱 zeraien 的答案以獲得一個好的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM