美文网首页
用python生成数字、字母和特殊字符混合的字符串

用python生成数字、字母和特殊字符混合的字符串

作者: 莫依痕 | 来源:发表于2018-02-02 19:11 被阅读0次

1、生成固定长度的数字、字母和特殊字符混合的字符串(定义一个类,写在方法里)

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)] + ['.','-','~','_'] #大写字母+小写字母+数字 +特殊字符.-_~ 
        num = random.sample(list,10)  #输出10个固定长度的组合字符 
        str1=''  
        value = str1.join(num) #将取出的十个随机数进行重新合并  
        print (value)
#这里定义了类和方法,如果只要功能,直接取方法里的内容即可
a = test()
a.function()

2、生成固定长度不以数字开头的数字、字母和特殊字符混合的字符串(直接写)

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)] + ['.','-','~','_'] #大写字母+小写字母+数字 +特殊字符.-_~ 
num = random.sample(list,10)  #输出10个固定长度的组合字符 
str1=''  
value = str1.join(num) #将取出的十个随机数进行重新合并  
if not value[0].isdigit():  
    print (value)

3、生成可自定义长度的数字、字母和特殊字符混合的字符串(写在方法里)

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]之间的数字

注意:

1、python类里的方法都要加个self变量,否则会报错
Traceback (most recent call last): TypeError: function() takes 0 positional arguments but 1 was given
2、方法写在类里,如果没有创建对象,会报找不到方法的错误
Traceback (most recent call last): NameError: name 'openUrl' is not defined

相关文章

网友评论

      本文标题:用python生成数字、字母和特殊字符混合的字符串

      本文链接:https://www.haomeiwen.com/subject/knwezxtx.html