zoukankan      html  css  js  c++  java
  • 定义一个类:实现功能可以返回随机的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))
  • 相关阅读:
    CSS基础应用学习系列(3)——图像的CSS阴影效果
    激活flash控件
    用一句SQL取出第 m 条到第 n 条记录的方法
    javascript检测浏览器和操作系统detect.js
    开始学习VS2008+.net3.5咯 :)
    用GridView编辑更新独立的单元格
    征服ASP.NET Ajax典型应用 (试读)
    CSS基础应用学习系列(4)――用CSS对列表应用样式
    Android SQLite学习指南
    Java内部类使用总结
  • 原文地址:https://www.cnblogs.com/xiaoxiao075/p/10251700.html
Copyright © 2011-2022 走看看