1. 程式人生 > >定義一個類:實現功能可以返回隨機的10個數字,隨機的10個字母, 隨機的10個字母和數字的組合;字母和數字的範圍可以指定,類似(1~100)(A~z)

定義一個類:實現功能可以返回隨機的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))