如何在python中生成具有某些规则的随机数或字母

时间:2016-05-07 23:02:46

标签: python random

我试图生成一个随机数,但有一定的规则。 前11个数字是00000001008所以我只是把它作为一个字符串并将其打印到屏幕然后在字符串后面,下一个数字是一个随机数字或一个字母,所以我使用随机数字字符串模块生成随机数字或字母。在随机生成的数字后,我想要一组三个1,所以我只是将它们打印成一个字符串,就像我用前十一个值一样。但是在这里,我被卡住了,在三个1之后,我想要生成另一个随机数字或字母而我无法弄明白,我尝试了相同的一行代码作为随机变量,带有一个新的变量名,然后我尝试将它与print语句中的新变量连接起来,它给了我一个错误。如何在三个1之后生成另一个随机数?

import random 
import string

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

    print ("00000001008")+ random + ("111")  

输出

00000001008U111

期望输出

00000001008(random)111(random)1(random)

错误

import random 
import string

random = ''.join([random.choice(string.ascii_letters + string.digits) for n in xrange(1)])
random1 = ''.join([random.choice(string.ascii_letters + string.digits) for n in xrange(1)])
print ("00000001008")+ random + ("111") + random1

random1 ='' .join([random.choice(string.ascii_letters + string.digits)for x in xrange(1)]) AttributeError:' str'对象没有属性'选择'

1 个答案:

答案 0 :(得分:4)

你可以简单地使用字符串格式和3个随机值

import random
import string

def gen():
  return random.choice(string.ascii_letters + string.digits)

print('00000001008%s111%s1%s' % (gen(), gen(), gen()))

并且您的代码无效的唯一问题是您将变量随机命名为模块随机无法访问,因此来自您的随机错误。选择调用现在指的是字符串。将变量重命名为“random_string”和“random_string1”,一切都会好的。