用python生成數(shù)字、字母和特殊字符混合的字符串

1、生成固定長度的數(shù)字、字母和特殊字符混合的字符串(定義一個類,寫在方法里)

import string  
import random  
class test():
    def function(self):
        list = [chr(i) for i in range(65,91)] + [chr(i) for i in range(97,123)] + [ str(i) for i in range(10)] + ['.','-','~','_'] #大寫字母+小寫字母+數(shù)字 +特殊字符.-_~ 
        num = random.sample(list,10)  #輸出10個固定長度的組合字符 
        str1=''  
        value = str1.join(num) #將取出的十個隨機數(shù)進行重新合并  
        print (value)
#這里定義了類和方法,如果只要功能,直接取方法里的內(nèi)容即可
a = test()
a.function()

2、生成固定長度不以數(shù)字開頭的數(shù)字、字母和特殊字符混合的字符串(直接寫)

import random
list = [chr(i) for i in range(65,91)] + [chr(i) for i in range(97,123)] + [ str(i) for i in range(10)] + ['.','-','~','_'] #大寫字母+小寫字母+數(shù)字 +特殊字符.-_~ 
num = random.sample(list,10)  #輸出10個固定長度的組合字符 
str1=''  
value = str1.join(num) #將取出的十個隨機數(shù)進行重新合并  
if not value[0].isdigit():  
    print (value)

3、生成可自定義長度的數(shù)字、字母和特殊字符混合的字符串(寫在方法里)

import random
def strGen(num):
        list1= [chr(i) for i in range(65,91)] + [chr(i) for i in range(97,123)] + [ str(i) for i in range(10)] + ['.','-','~','_']
        value=""
        for i in range(num):
            value = value + list1[random.randint(0, len(list1)-1)]
        return value
strGen(random.randint(1,100)) #隨機取[1,100]之間的數(shù)字

注意:

1、python類里的方法都要加個self變量,否則會報錯
Traceback (most recent call last): TypeError: function() takes 0 positional arguments but 1 was given
2、方法寫在類里,如果沒有創(chuàng)建對象,會報找不到方法的錯誤
Traceback (most recent call last): NameError: name 'openUrl' is not defined

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容