gpt4 book ai didi

python - 如何使这段代码与其他程序交互?

转载 作者:行者123 更新时间:2023-12-01 05:14:43 24 4
gpt4 key购买 nike

所以我编写了一个类似于强力密码猜测器的代码,用于猜测 3 个字母的密码。

我知道这段代码不正确,因为 while 语句显然是错误的,所以我该如何解决这个问题?

另外我怎样才能让这段代码与其他程序交互?

例如:

Winrar 有一些文件需要 3 个字的密码,并且有一个输入屏幕,您可以在其中输入密码。我怎样才能使我的代码在密码输入框中进行交互或“输入”?

import random
import string

while password != correct:
letter 1 = random.choice(string.letters)
letter 2 = random.choice(string.letters)
letter 3 = random.choice(string.letters)
word = '%s%s%s'%(letter1, letter2, letter3)
if word == password:
print "The code is %s"%(word)
else:
break;

最佳答案

这是一个糟糕的方法,但是......

import random
import string

while True:
# Do it until the `if` block says it's right, then break.
word = ''.join([random.choice(string.letters) for _ in range(3)])
if word == password:
print "The code is %s" % (word)
break

编辑:''.join([random.choice(string.letters) for _ in range(3)]) 解释,按照您在评论中的要求。

[x for x in list_of_xs] 是列表理解。您可以对结果项进行转换(例如,从根 1-10 开始的所有完美平方都是 [x**2 for x in range(1,11)] 或更简单的 [ x**2 for x in [1,2,3,4,5,6,7,8,9,10] ].有很多关于这方面的信息,以及大量规范的答案。

random.choice(string.letters) 你已经使用了,所以你得到了这么多。 ''.join 使用 str.join 命令,该命令将可迭代的字符串组合成一个字符串,并使用 str 作为分隔符。 ", ".join(["鸡蛋","奶酪","面包","牛奶"]) 结果为"鸡蛋、奶酪、面包、牛奶"。在本例中,我使用空字符串进行组合。

基本上,我正在构建一个由三个 random.choice(string.letters) 组成的列表(_ 没有什么特别的,它只是下一个程序员的符号随之而来的是,这个变量不是必需的。[do_something for _ in range(x)]do_something 列表的常见习惯用法 x long),然后将它们组合在一起,并在它们之间插入一个空字符串(换句话说,它们之间没有任何内容)

也许

import random
import string

while word != password:
# do the same stuff

但说实话,你想做的是:

import itertools as it
for attempt in (''.join(combo) for combo in it.combinations(string.letters,3)):
if attempt == password:
print "success:",attempt
else:
print "failure"

为了预先解决您的问题,itertools(我将其导入为it)有一个方法combinations,它返回所有唯一的组合您将序列长度r的可迭代对象交给它。表示法是itertools.combinations(iterable,r)。它返回一个元组列表,然后需要按照与上面相同的方式进行组合。

此方法的唯一失败是它无法捕获像 "aaa" 这样的密码。任何重复的字符都不会出现在组合中。

就您的标题而言:“如何使此代码与其他程序交互”对于这个问题来说太宽泛了。不幸的是,这不太合适。

关于python - 如何使这段代码与其他程序交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23434449/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com