[英]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.