Skip to main content
 首页 » 编程设计

python之每次循环运行时的新字符串

2025年05月04日27freeliver54

我想证明兄弟错误,即计算机使用蛮力猜测特定字符串需要多长时间,即使输入的字符数正确。我可以让代码运行,但我不知道如何让它在每次运行时打印一个新字符串。我确定我正在寻找简单的东西。下面是我尝试过的几个代码示例。

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 移动到不同的地方,但没有用,我只是收到不同的错误消息。

谁能帮帮我。

请您参考如下方法:

random=''.join([random.choice(string.ascii_letters+string.digits) for n in xrange(5)]) 

这不会每次都创建一个新的随机字符串。此时 random 只是一个随机生成的字符串,它在 while 循环运行时不会改变。引用 random 不会创建新字符串,而只是获取您生成的第一个字符串,因为 random 只是您内存中的一个字符串,而不是一个函数。

将随机字符串创建移动到一个函数中:

import string 
from random import choice 
 
def make_random(): 
    return ''.join([choice(string.ascii_letters+string.digits) for n in xrange(5)]) 

然后运行循环:

while True: 
    random = make_random() 
 
    if random != "Steve": 
        print(random) 
    if random == "Steve": 
        print("Found") 

编辑:

将 import random 切换为 from random import choice 因为 random(变量)正在覆盖 random(库)并在您尝试调用时抛出属性错误 随机选择。