我是否能够使用函数“count()”来查找密码中大写字母的数量((Python)

2024-05-28 18:22:20 发布

您现在位置:Python中文网/ 问答频道 /正文

当我输入下面的代码时,它说:

TypeError: must be str, not list

这是不是意味着我不能使用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))

Tags: 方法函数代码编程countnotpasswordbe
2条回答

只需检查密码中的每个字符,并检查它是否是大写字符。 例如:

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解决方案将只计算唯一字符,但是在密码强度度量的情况下,这可能不是一个坏主意

问题是方法count()需要一个string对象。现在,使用这一行(password.count(uppercase)),可以有效地将数组对象传递给函数。请参阅zeraien的答案以获得一个好的解决方案

相关问题 更多 >

    热门问题