2013-03-01 67 views

回答

3

使用string.ascii_uppercase代替:

>>> import random 
>>> import string 
>>> 'RF' + ''.join(random.choice(string.ascii_uppercase) for i in xrange(6)) 
'RFOCJTGN' 

使用random.choice()將導致隨機字符串,它可以有重複字符:

>>> 'RF' + ''.join(random.choice(string.ascii_uppercase) for i in xrange(6)) 
'RFBYBXHM' 

注意兩個B個字符。如果你不想字符重複,然後使用random.sample()代替:

>>> 'RF' + ''.join(random.sample(string.ascii_uppercase, 6)) 
'RFEVKZHD' 

和6個隨機字符,保證不包含重複。

+0

全線將前面: '代碼= 「RF」 + '' 在x範圍。加入(random.choice(string.ascii_uppercase),其中i(6 ))' – 2013-03-01 18:54:59

+1

@WestonOdom:更新。 – 2013-03-01 18:57:37

2

使用random.samplestring.ascii_uppercase

>>> "RF" + ''.join(random.sample(string.ascii_uppercase, 6)) 
'RFBGHZMW' 
+0

'random.sample()'將排除任何重複的字符。這一定是明確的選擇! – 2013-03-01 19:02:10

0
>>> def getCode(length = 10, char = string.ascii_uppercase): 
     return ''.join(random.choice(char) for x in range(length)) 

>>> import random 
>>> import string 
>>> getCode(6) 
'ADKCGW' 

如果您希望其他字符和長度

>>> getCode(5, "mychars") 
'ahssh' 

codepade

編輯一個運行3210添加 「RE」 在隨機字符

>>> "RE" + getCode(6) 
REIUXWUE 
相關問題