为什么我的输入变量会自动添加?python

2024-09-26 22:09:02 发布

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

我制作了这个简单的密码生成器,可以选择密码的长度。但是,它似乎会随机添加长度,因此如果我继续选择长度5,它会偶尔输出10个字符的密码,然后返回到5

import random

randomnums = []
checker = [0, 0, 0, 0] ##Make sure there are upper, lower case, symbols and numbers.

while True:

    length = input("How long do you want your password?: ")
    
    if length.isdigit() == False:
        print("please enter a number..\n")
    elif int(int(length)) < 4:
        print("Please enter a length of 4 or greater...\n")
    else:
        break


while checker[0] == 0 or checker[1] == 0 or checker[2] == 0 or checker[3] == 0:
    for i in range(0,int(length)):
        x = random.randrange(0, 4)    
        if   x ==  1: 
            randomnums.append(random.randrange(0, 10))
            checker[0] = 1
        elif x == 2:
            randomnums.append(random.choice('abcdefghijklmnopqrstuvwxyz'))
            checker[1] = 1
        elif x == 3:
            randomnums.append(random.choice('ABCDEFGHIJKLMNPQRSTUVWXYZ'))
            checker[2] = 1
        else:
            randomnums.append(random.choice('!@#$%^&*()_+:"}|<>?'))
            checker[3] = 1
    

password = ''.join(map(str, randomnums)) ##join list to string
print(password)`

Tags: or密码ifcheckerrandompasswordlengthint
1条回答
网友
1楼 · 发布于 2024-09-26 22:09:02

使用此代码可以获得length的任意倍数。它在正文中添加length个字符,直到获得所需的长度。您应该生成一个密码并检查它,如果密码不正确,请重复

相关问题 更多 >

    热门问题