首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我需要查找变量字符串是否包含基于英国键盘的连续三个字母。

我需要查找变量字符串是否包含基于英国键盘的连续三个字母。
EN

Stack Overflow用户
提问于 2017-09-22 19:58:23
回答 1查看 2.5K关注 0票数 0

基本上,我是为了好玩而创建一个密码生成器,我使用一个记分系统来估计密码的强度。如果密码包含基于英国QWERTY键盘布局的连续三个字母,则从分数中减去5分,每组3.

目前我有这个,但不起作用:

代码语言:javascript
复制
        if password.isdigit():
            points = points - 5

        if password.islower():
            points = points - 5

        if password.isupper():
            points = points - 5

        from string import ascii_lowercase
        if password.lower() in ascii_lowercase == True:
            points = points - 5

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-22 21:34:14

你随机地把两个不同的程序拼接在一起,很惊讶它不起作用。这会造成一些不一致的情况,比如降低输入,但随后进行测试,以确保它不是全部小写;计算负points,而是一个正的score;等等。让我们重新排序这些步骤,并使点分配一致:

代码语言:javascript
复制
LINES = ["qwertyuiop", "asdfghjkl", "zxcvbnm"]

triples = []
for line in LINES:
    triples.extend(line[i:i + 3] for i in range(len(line) - 2))

password = input().strip()

points = 0

if password.isdigit() or password.islower() or password.isupper():
    points -= 5

for triple in triples:
    occurrences = password.count(triple)
    points -= 5 * occurrences

print("Your password earned {} points".format(points))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46372361

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档