首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何避免生成3个数字而不是在一起生成3个字母和数字

如何避免生成3个数字而不是在一起生成3个字母和数字
EN

Stack Overflow用户
提问于 2021-12-18 20:22:25
回答 2查看 55关注 0票数 1

这是一个生成3个随机字母、数字和符号的代码。我试着用"if“公式来避免三个字母后面的点,它对我起了作用:

代码语言:javascript
复制
if password[length-1] == dot:
        dot_password = password.replace(password[length-1],"" .join(random.sample(alll,new_length)))
        file.write(dot_password+"\n")

但是,当我试图避免只生成3个数字时,我没有这样做:

代码语言:javascript
复制
elif password == NUMBERS:
        number_password = password.replace(password,"" .join(random.sample(allll,length)))
        file.write(number_password+"\n")

所以我才来找你的解决方案。有关信息,这是Python语言

这是完整的代码:

代码语言:javascript
复制
import random

file = open(r"C:\******\******\******\******\******\******\******\Users.txt", "r+")

for i in range(10000): # I set it to 10000 to test only.
    lower = "abcdefghijklmnopqrstuvwxyz_"
    NUMBERS = "0123456789"
    dot = "."

    all = lower + NUMBERS + dot
    alll = lower + NUMBERS
    allll = lower + dot
    length = 3
    new_length = 1
    password = "".join(random.sample(all,length))

    if password[length-1] == dot:
        dot_password = password.replace(password[length-1],"" .join(random.sample(alll,new_length)))
        file.write(dot_password+"\n")
    elif password == NUMBERS:
        number_password = password.replace(password,"" .join(random.sample(allll,length)))
        file.write(number_password+"\n")
    else:
        file.write(password+"\n")
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-12-18 20:42:55

这里的NUMBERS = '0123456789'数字是一个数字字符串。

elif password == NUMBERS:这里的密码必须为“0123456789”才能使此条件变为真

这就是为什么上述代码不能工作的原因。

试试看

代码语言:javascript
复制
   elif password.is_numeric():

测试整个密码是否只包含数字

票数 0
EN

Stack Overflow用户

发布于 2021-12-18 20:37:43

我假设您想知道生成的密码是否只包含数字:

代码语言:javascript
复制
def is_all_number(password):
    numbers = '1234567890'
    for i in password:
        if not i in numbers:
            return False
    return True

然后你可以在你的条件下使用它:

代码语言:javascript
复制
if is_all_number(password):
    ...

或者您可以使用password.isdecimal()作为条件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70406835

复制
相关文章

相似问题

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