【问题标题】:Generate 25 psuedo-random strings生成25个伪随机字符串
【发布时间】:2015-07-12 13:55:26
【问题描述】:

我有伪随机生成字符串的代码。如何让我的代码输出 25 个随机字符串?

import random, string

special=['@','!','#','$','%','^','&','*','(',')','-','=','+','{','[','}',']',';',':','.','>','<',',','?','/',]

def id_generator(size=25, chars=string.ascii_uppercase + string.digits + random.choice(special) ):
    return ''.join(random.choice(chars) for _ in range(size))

count = 0

def create_and_save_pseudorand():
    for count in range(100):
        return id_generator()
        #print(id_generator())

create_and_save_pseudorand()

【问题讨论】:

  • 请注意return 将结束函数 - 你的意思是yield?

标签: python random


【解决方案1】:

我猜你要么想要

return [id_generator() for i in range(25)]

或将return 替换为yield,然后使用:

for i in create_and_save_pseudorand():
    print i

顺便说一句:您似乎混淆了字符串的长度和数量。哪一个应该是 25 岁?

【讨论】:

  • 两者都应该是 25. 25 个字符串,长度为 25 个字符
【解决方案2】:

您的函数create_and_save_pseudorand 当前在返回第一个随机生成的字符串后停止。将 return 更改为 yield 以解决该问题。然后可以引入count参数来确定要生成的随机字符串的个数。

def create_and_save_pseudorand(count):
    for count in range(count):
        yield id_generator()

然后您可以使用

在控制台上打印结果
print(list(create_and_save_pseudorand(25)))

示例输出:

['YAB*MT7CU29IY12QMVLNH4QI9', '1E1445DCN*5K7RZIJNKSIKX10', '53W06LS8NJEAE0X60MFW*ES*W', 'KK8WMRA3DMPRWWYQDG2M0ED0Q', 'ZFLBQ0V04Z*E1PVUF4DG04IJ2', '292VPZA3QDKLQ4UBTKJA3TY3H', 'A77426HK1HNZVMUT883CZABIX', 'I2M4I0IO9GRLNVAH9BWV52AYJ', '*VUU3DGHN79SG5XPELHCKSG29', '*KWM2BUPGIL4OV3TUZ7614OAT', '29JZ*Y59*O2SPL7CWL9BB3*5V', 'IVZ0MK0HPIVCJG039Y9GTM*ZH', 'ZF2QSL5VXYW6B4*FOE4KRL4LW', 'ZOK*Z508DD1JE5UYHLGGKORKS', 'L2XIBU8J3IMZO9Y2GFLQSB3W7', 'PA6ZJGXS4G96FDA771143TOMM', '2ZHK13LVZZQ878L1OR2LQ3TGV', 'QGYR2WNJ58GPD0*54CHI6AKAR', 'TKPBD27HQ0TZFFZCVMIDAYJX4', 'G7HH9YSZ4P3ETRGY9REB90WDC', 'G3PTXR376AGJHX4V5V4NRLL30', 'XHM1J0A5Z48*58RFVH9W3Z5*O', 'XHG8VGNF*YA4GBX1SBE*DVGKV', '39YNN1X719N*WZ9VBUPLTVC5P', 'XYMJ57DH*3WX589J9ZENGFP0O']

【讨论】:

  • 输出到网页怎么样?
  • @CodeTalk 呢?
  • 我该怎么办?这只会向网页输出 (1) 个值
猜你喜欢
  • 2010-09-08
  • 2013-10-10
  • 2014-11-22
  • 2015-07-05
  • 1970-01-01
  • 2017-08-01
  • 2011-06-30
相关资源
最近更新 更多