如何解决python itertools无法打印10的倍数
在我目前显示所有可能组合的python程序中,它没有显示10的倍数(10、20、30、40等),我也不明白为什么,我正在使用itertools库don'不知道这是否有事吗?我在网上看过,但没有找到类似的东西,所以也许与我的安装有关?无论如何,这是代码。
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 ","possibilities")
exit = input("Would you like to exit?\n")
if exit == "Yes":
pass
elif exit == "No":
while loop == True:
a = 1
解决方法
当您想显示所有可能的组合时,您的意思是关于重复排列的数学概念。在 itertools 库中的 python 中,只有排列,就像数学中的排列一样,没有重复。在 python 中,您可以使用 itertools.product 来交换它。我附在下面的完整功能代码:
POST "https://westus.api.cognitive.microsoft.com/formrecognizer/v2.1-preview.3/custom/models/{modelId}/analyze?includeTextDetails={boolean}
GET "https://westus.api.cognitive.microsoft.com/formrecognizer/v2.1-preview.3/custom/models/{modelId}/analyzeResults/{resultId}]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。