【发布时间】:2025-11-27 09:30:01
【问题描述】:
希望通过使用蛮力来证明计算机可以花费多长时间来猜测特定字符串,即使输入了正确数量的字符。我可以让代码运行,但我不知道如何让它每次运行时打印一个新字符串。我确定我在寻找一些简单的东西。下面是我尝试过的代码的几个示例。
import string
import random
random=''.join([random.choice(string.ascii_letters+string.digits) for n in xrange(5)])
while True:
if random != "Steve":
print(random)
if random == "Steve":
print("Found")
这将不断地反复打印相同的字符串。我也试过这个没有while 声明只是if,它似乎不起作用。
我很清楚,一旦random 选择了这 5 个随机字符,它就不会改变,直到有东西改变它,但就像我说的那样,我不知道该怎么做。我尝试将random 移动到不同的地方,但不起作用,我只是收到不同的错误消息。
谁能帮帮我。
【问题讨论】:
-
你需要在循环内计算随机数
-
我试图在 while 语句中加入 `random=''.join([random.choice(string.ascii_letters+string.digits) for n in xrange(5)])' 但我不断收到以下错误。回溯(最后一次调用):文件“C:/Users/craig.walker/Desktop/new.py”,第 9 行,在
random=''.join([random.choice(string.ascii_letters+string .digits) for n in xrange(5)]) AttributeError: 'str' object has no attribute 'choice' -
将变量名称从
random更改为其他名称,并在while循环中进行相应更改,或者将导入从import random更改为import random as rand并使用rand.choice。您正在使用关键字作为变量名。 -
您可能还想看看Weasel 程序,它的运行速度比蛮力运行快很多。
标签: python string python-2.7 random brute-force