首页 > 解决方案 > python itertools不打印10的倍数

问题描述

在我当前显示所有可能组合的 python 程序中,它没有显示 10 的倍数(10、20、30、40 等),我不明白为什么,我正在使用 itertools 库不知道是否有什么东西可以做到这一点?我在网上查了一下,没有找到类似的东西,所以也许它与我的安装有关?无论如何,这是代码。

import itertools
from pynput.keyboard import Controller
import time
keyboard = Controller()
loop = True
a = 1
input("Welcome to the Password Possibilities Test")
input("This test will tell you how many possible")
input("combinations a password can have")
input("*all answers must start with an uppercase*")
num_length = 0
alpha_length = 0
sym_length = 0
num = input("So lets start does your password have numbers?\n")
alpha = input("Does it have letters?\n")
sym = input("Does it have symbols?\n")
long = input("Do you know how long the password is?\n")

possibilities = []

if long == "Yes":
    length = input("How long is the password?\n")
elif long == "No":
    print("Then we will go off of the average password length which is 8\n")
    length = 8

if num == "Yes":
    num_length = 10
    possibilities.append(0)
    possibilities.append(1)
    possibilities.append(2)
    possibilities.append(3)
    possibilities.append(4)
    possibilities.append(5)
    possibilities.append(6)
    possibilities.append(7)
    possibilities.append(8)
    possibilities.append(9)

else:
    num_length = 0

if alpha == "Yes":
    alpha_length = 52
    possibilities.append("a")
    possibilities.append("b")
    possibilities.append("c")
    possibilities.append("d")
    possibilities.append("e")
    possibilities.append("f")
    possibilities.append("g")
    possibilities.append("h")
    possibilities.append("i")
    possibilities.append("j")
    possibilities.append("k")
    possibilities.append("l")
    possibilities.append("m")
    possibilities.append("n")
    possibilities.append("o")
    possibilities.append("p")
    possibilities.append("q")
    possibilities.append("r")
    possibilities.append("s")
    possibilities.append("t")
    possibilities.append("u")
    possibilities.append("v")
    possibilities.append("w")
    possibilities.append("x")
    possibilities.append("y")
    possibilities.append("z")
    possibilities.append("A")
    possibilities.append("B")
    possibilities.append("C")
    possibilities.append("D")
    possibilities.append("E")
    possibilities.append("F")
    possibilities.append("G")
    possibilities.append("H")
    possibilities.append("I")
    possibilities.append("J")
    possibilities.append("K")
    possibilities.append("L")
    possibilities.append("M")
    possibilities.append("N")
    possibilities.append("O")
    possibilities.append("P")
    possibilities.append("Q")
    possibilities.append("R")
    possibilities.append("S")
    possibilities.append("T")
    possibilities.append("U")
    possibilities.append("V")
    possibilities.append("W")
    possibilities.append("X")
    possibilities.append("Y")
    possibilities.append("Z")
else:
    alpha_length = 0

if sym == "Yes":
    sym_length = 32
    possibilities.append("!")
    possibilities.append("@")
    possibilities.append("#")
    possibilities.append("$")
    possibilities.append("%")
    possibilities.append("^")
    possibilities.append("&")
    possibilities.append("*")
    possibilities.append("(")
    possibilities.append(")")
    possibilities.append("_")
    possibilities.append("+")
    possibilities.append("{")
    possibilities.append("}")
    possibilities.append("|")
    possibilities.append(":")
    possibilities.append("\\")
    possibilities.append("?")
    possibilities.append(">")
    possibilities.append("<")
    possibilities.append("~")
    possibilities.append("`")
    possibilities.append("[")
    possibilities.append("]")
    possibilities.append("\"")
    possibilities.append(";")
    possibilities.append("'")
    possibilities.append("/")
    possibilities.append(".")
    possibilities.append(",")
    possibilities.append("`")
else:
    sym_length = 0

num_length = int(num_length)
alpha_length = int(alpha_length)
sym_length = int(sym_length)
length = int(length)



calc = num_length + alpha_length + sym_length
final = pow(calc,length)
print("This password has ",final, "possibilities")
input("Click the ENTER key to view all of the combonations")
time.sleep(2)
for i in itertools.combinations_with_replacement(possibilities,length):
    print(*i, sep='')
print("This password has ",final, "possibilities")
exit = input("Would you like to exit?\n")
if exit == "Yes":
    pass
elif exit == "No":
    while loop == True:
        a = 1

标签: pythonitertools

解决方案


当您想显示所有可能的组合时,您的意思是关于重复排列的数学概念。在 itertools 库中的 python 中,只有排列,就像在数学中没有重复的排列一样。在 python 中,您可以使用 itertools.product 来换取它。我附在下面的完整功能代码:

import itertools
from pynput.keyboard import Controller
import time

keyboard = Controller()
loop = True
a = 1
input("Welcome to the Password Possibilities Test")
input("This test will tell you how many possible")
input("combinations a password can have")
input("*all answers must start with an uppercase*")
num_length = 0
alpha_length = 0
sym_length = 0
num = input("So lets start does your password have numbers?\n")
alpha = input("Does it have letters?\n")
sym = input("Does it have symbols?\n")
long = input("Do you know how long the password is?\n")

possibilities = []

if long == "Yes":
    length = input("How long is the password?\n")
elif long == "No":
    print("Then we will go off of the average password length which is 8\n")
    length = 8

if num == "Yes":
    num_length = 10
    possibilities.append("0")
    possibilities.append("1")
    possibilities.append("2")
    possibilities.append("3")
    possibilities.append("4")
    possibilities.append("5")
    possibilities.append("6")
    possibilities.append("7")
    possibilities.append("8")
    possibilities.append("9")

else:
    num_length = 0

if alpha == "Yes":
    alpha_length = 52
    possibilities.append("a")
    possibilities.append("b")
    possibilities.append("c")
    possibilities.append("d")
    possibilities.append("e")
    possibilities.append("f")
    possibilities.append("g")
    possibilities.append("h")
    possibilities.append("i")
    possibilities.append("j")
    possibilities.append("k")
    possibilities.append("l")
    possibilities.append("m")
    possibilities.append("n")
    possibilities.append("o")
    possibilities.append("p")
    possibilities.append("q")
    possibilities.append("r")
    possibilities.append("s")
    possibilities.append("t")
    possibilities.append("u")
    possibilities.append("v")
    possibilities.append("w")
    possibilities.append("x")
    possibilities.append("y")
    possibilities.append("z")
    possibilities.append("A")
    possibilities.append("B")
    possibilities.append("C")
    possibilities.append("D")
    possibilities.append("E")
    possibilities.append("F")
    possibilities.append("G")
    possibilities.append("H")
    possibilities.append("I")
    possibilities.append("J")
    possibilities.append("K")
    possibilities.append("L")
    possibilities.append("M")
    possibilities.append("N")
    possibilities.append("O")
    possibilities.append("P")
    possibilities.append("Q")
    possibilities.append("R")
    possibilities.append("S")
    possibilities.append("T")
    possibilities.append("U")
    possibilities.append("V")
    possibilities.append("W")
    possibilities.append("X")
    possibilities.append("Y")
    possibilities.append("Z")
else:
    alpha_length = 0

if sym == "Yes":
    sym_length = 32
    possibilities.append("!")
    possibilities.append("@")
    possibilities.append("#")
    possibilities.append("$")
    possibilities.append("%")
    possibilities.append("^")
    possibilities.append("&")
    possibilities.append("*")
    possibilities.append("(")
    possibilities.append(")")
    possibilities.append("_")
    possibilities.append("+")
    possibilities.append("{")
    possibilities.append("}")
    possibilities.append("|")
    possibilities.append(":")
    possibilities.append("\\")
    possibilities.append("?")
    possibilities.append(">")
    possibilities.append("<")
    possibilities.append("~")
    possibilities.append("`")
    possibilities.append("[")
    possibilities.append("]")
    possibilities.append("\"")
    possibilities.append(";")
    possibilities.append("'")
    possibilities.append("/")
    possibilities.append(".")
    possibilities.append(",")
    possibilities.append("`")
else:
    sym_length = 0

num_length = int(num_length)
alpha_length = int(alpha_length)
sym_length = int(sym_length)
length = int(length)



calc = num_length + alpha_length + sym_length
print(calc)
final = pow(calc,length)
print("This password has ",final, "possibilities")
input("Click the ENTER key to view all of the combonations")
time.sleep(2)
for i in itertools.product(possibilities, repeat = length):
    print(*i, sep='')
print("This password has ",final, "possibilities")
exit = input("Would you like to exit?\n")
if exit == "Yes":
    pass
elif exit == "No":
    while loop == True:
        a = 1

推荐阅读