定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)

Posted xiaoxiao075

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)相关的知识,希望对你有一定的参考价值。

#习题2:定义一个类:实现功能可以返回随机的10个数字,随机的10个字母,
#随机的10个字母和数字的组合;字母和数字的范围可以指定

class RandomString():
        
    #随机数选择的范围作为参数,如(1~100)字母 (‘A‘~‘z‘),大写字母在前 按ascii值排列先后
    def __init__(self,start_num=0,end_num=100,start_alpha=A,end_alpha=z):
        import string
        if not isinstance(start_num,int) or not isinstance(end_num,int) or         not isinstance(start_alpha,str) or not isinstance(end_alpha,str) or         (start_alpha not in string.ascii_letters or end_alpha not in string.ascii_letters):
            print(参数类型错误,请重新输入!)
            return None
        self.start_num=start_num
        self.end_num=end_num
        self.start_alpha=start_alpha
        self.end_alpha=end_alpha

    #生成要求数量随机数字,num 随机数的数量
    def random_digits(self,num):
        print(self.start_num,self.end_num:,self.start_num,self.end_num)
        if not isinstance(num,int):
            print(数字类型输入错误,请重新输入)
            return None
        from random import randint
        num_list=[]
        for i in range(num):
            num_list.append(randint(self.start_num,self.end_num))
        return num_list

    #生成要求数量随机字母,大小写混合
    def random_letters(self,num):
        if not isinstance(num,int):
            print(数字类型输入错误,请重新输入)
            return None
        from random import randint
        import string
        all_letters=string.ascii_uppercase+string.ascii_lowercase
        start_position=all_letters.find(self.start_alpha)
        end_position=all_letters.find(self.end_alpha)
        if start_position>end_position:
            start_position,end_position=end_position,start_position

        letters_list=[]
        for i in range(num):
            letters_list.append(string.ascii_letters[randint(start_position,end_position)])
        return letters_list

    def random_digits_letters(self,num):
        digits_string=list(range(self.start_num,self.end_num+1))
        print(digits_string,digits_string)
        import string
        all_letters=string.ascii_uppercase+string.ascii_lowercase
        print(all_letters,all_letters)
        print(self.start_alpha,self.start_alpha)
        print(self.end_alpha,self.end_alpha)
        start_position=all_letters.find(self.start_alpha)
        end_position=all_letters.find(self.end_alpha)
        letters_string=list(all_letters[start_position:end_position+1])
        print(letters_string,letters_string)
        
        from random import choice
        all_string=digits_string+letters_string
        print(all_string,all_string)
        all_list=[]
        for i in range(num):
            
            all_list.append(choice(all_string))
        return all_list


randomdigitalpha=RandomString(2,100,W,e) #
print(randomdigitalpha.start_num)
print(randomdigitalpha.random_digits(10))

print(randomdigitalpha.random_letters(5))

print(randomdigitalpha.random_digits_letters(15))

 

以上是关于定义一个类:实现功能可以返回随机的10个数字,随机的10个字母, 随机的10个字母和数字的组合;字母和数字的范围可以指定,类似(1~100)(A~z)的主要内容,如果未能解决你的问题,请参考以下文章

java如何实现这样的随机数字呢?

c# 如何产生 随机的1-10位的包【数字】或【英文字母】字符串

JS中,输出1-10之间的随机整数,用Math.random()咋搞呢

php生成随机数字,范围1-100,每次生成一个数字,可以重复

PPT随机抽题

如何用KEIL C实现随机数字的产生