我在Python做了一个简单的程序来生成与5个号码中有一个随机字符串:随机字符串发生器蟒蛇
import random
numcount = 5
fstring = ""
for num in range(19): #strings are 19 characters long
if random.randint(0, 1) == 1:
x = random.randint(1, 26)
x += 96
fstring += (chr(x).upper())
elif not numcount == 0:
x = random.randint(0, 9)
fstring += str(x)
numcount -= 1
print(fstring)
不太难吧?除了一件令人难以置信的奇怪的事情:它返回的字符串是一个随机的长度。我已经运行代码几次,这里有一些我的结果:
>>> ================================ RESTART ================================
>>>
VQZ99HA5DER0CES4
>>> ================================ RESTART ================================
>>>
05PS0T86LOZS
>>> ================================ RESTART ================================
>>>
E2QX8296XK
>>> ================================ RESTART ================================
>>>
M5X9K457QDNBPX
我想不通这是怎么回事......任何人都可以点我在正确的方向?
没有做任何深层次的分析,可以看到,有时两者IFS将失败(导致更短的fstring),有时是随机的,他们不会。 – Malvolio
有时,*很少*,他们不会。平均来说,你会在数字分支中获得9.5次迭代,只有5次会做任何事情。相当不可能只有5次或更少的迭代。 –