题目:
1 已知以下几期双色球号码(最后一个数字为蓝球), 2 2019080 03 06 08 20 24 32 07 3 2019079 01 03 06 09 19 31 16 4 2019078 01 17 27 29 31 33 12 5 2019077 09 11 13 18 21 22 15 6 2019076 12 15 19 20 29 32 14 7 2019075 05 08 20 22 31 33 03 8 2019074 12 21 27 29 31 33 04 9 2019073 01 02 06 12 16 18 08 10 2019072 02 09 13 15 22 30 15 11 2019071 01 08 19 24 29 30 04 12 13 要求: 14 一、运行后展示: 15 1.查询双色球号码: 16 2.查询出现号码次数 17 3.输入新号码 18 q.退出 19 20 如果输入1: 21 1.2019080 22 2.2019079 23 3.·····(效果同上) 24 q.退出 25 输入号码后展示对应的结果;如果号码不存在或者非数字提示请重新输入 26 如果输入2 27 结果展示 红球中各个号码出现的次数、蓝球中各个号码出现的次数; 28 如果输入3(附加题,选做) 29 新增的号码支持前面功能 1、2;退出后新增的号码不会保存;如果输入非数字或红球大于33 蓝球大于16 提示请重新输入 30 如果输入q 退出
小余的答案:
1 #!/opt/python27/bin/python 2 # -*- coding:utf-8 -*- 3 # author:why 4 # date:20190715 5 6 ''' 7 已知以下几期双色球号码(最后一个数字为蓝球), 8 2019080 03 06 08 20 24 32 07 9 2019079 01 03 06 09 19 31 16 10 2019078 01 17 27 29 31 33 12 11 2019077 09 11 13 18 21 22 15 12 2019076 12 15 19 20 29 32 14 13 2019075 05 08 20 22 31 33 03 14 2019074 12 21 27 29 31 33 04 15 2019073 01 02 06 12 16 18 08 16 2019072 02 09 13 15 22 30 15 17 2019071 01 08 19 24 29 30 04 18 19 要求: 20 一、运行后展示: 21 1.查询双色球号码: 22 2.查询出现号码次数 23 3.输入新号码(暂不实现) 24 q.退出 25 26 如果输入1: 27 1.2019080 28 2.2019079 29 3.·····(效果同上) 30 q.退出 31 输入号码后展示对应的结果;如果号码不存在或者非数字提示请重新输入 32 33 如果输入2 34 结果展示 红球中各个号码出现的次数、蓝球中各个号码出现的次数; 35 36 如果输入3(附加题,选做) 37 新增的号码支持前面功能 1、2;退出后新增的号码不会保存;如果输入非数字或红球大于33 蓝球大于16 提示请重新输入 38 39 如果输入q 退出 40 ''' 41 42 43 class doubleSle: 44 def __init__(self): 45 douData = {2019080: [03, 06, 8, 20, 24, 32, 07], 46 2019079: [01, 03, 06, 9, 19, 31, 16], 47 2019078: [01, 17, 27, 29, 31, 33, 12], 48 2019077: [9, 11, 13, 18, 21, 22, 15], 49 2019076: [12, 15, 19, 20, 29, 32, 14], 50 2019075: [05, 8, 20, 22, 31, 33, 03], 51 2019074: [12, 21, 27, 29, 31, 33, 04], 52 2019073: [01, 02, 06, 12, 16, 18, 8], 53 2019072: [02, 9, 13, 15, 22, 30, 15], 54 2019071: [01, 8, 19, 24, 29, 30, 04]} 55 self.douData = douData 56 seleOne = ['1.查询双色球号码:', '2.查询出现号码次数:', 'q.退出'] 57 seleTwo = sorted(self.douData.keys()) 58 self.seleOne = seleOne 59 self.seleTwo = seleTwo 60 61 def doubleSleCount(self): 62 ''' 63 统计红球、篮球出现次数 64 :return: 65 ''' 66 countRed=[0] 67 countBlue = [0] 68 for i in range(1,34): 69 countRed.append(0) 70 for j in range(0,len(self.douData.values()[0])-1): 71 for k in range(0,len(self.douData.keys())): 72 if i == self.douData.values()[k][j]: 73 countRed[i] +=1 74 75 for i in range(1,17): 76 countBlue.append(0) 77 for j in range(0, len(self.douData.keys() )): 78 if i == self.douData.values()[j][len(self.douData.values()[0])-1]: 79 countBlue[i] +=1 80 81 print countRed,countBlue 82 return [countRed,countBlue] 83 84 def doubleSleRaw(self,liRes,num): 85 ''' 86 将列表转成str,并换行 87 :param liRes: 88 :return: 89 ''' 90 s = '' 91 if num == 0: 92 for i in liRes: 93 s += i+'\t\n' 94 elif num == 1: 95 for i in range(0,len(liRes)): 96 s += '{a}.{b}\t\n'.format(a=(i+1),b=liRes[i]) 97 return s 98 99 def begin(self): 100 ''' 101 z循环开始 102 :return: 103 ''' 104 while True: 105 # doubleSleC = doubleSle() 106 numOne = raw_input(self.doubleSleRaw(self.seleOne,0)) 107 # 判断是否是整数 108 if numOne.isdigit() : 109 numOneInt = int(numOne) 110 if numOneInt == 1: 111 numTwo = raw_input(self.doubleSleRaw(self.seleTwo,1)) 112 if numTwo.isdigit(): 113 numTwoInt = int(numTwo) 114 if numTwoInt >0 and numTwoInt <= len(sorted(self.douData.keys())): 115 print('查询结果:{a} {b}'.format(a=(sorted(self.douData.keys()))[numTwoInt-1],b=self.douData[(sorted(self.douData.keys()))[numTwoInt-1]])) 116 else: 117 print('请重新输入') 118 continue 119 else: 120 print('请重新输入') 121 continue 122 elif numOneInt == 2: 123 doubleSleCount = self.doubleSleCount() 124 print('红球出现的次数:') 125 for i in range(0,len(doubleSleCount[0])-1): 126 print('{a}出现的次数:{b}').format(a=(i+1),b=doubleSleCount[0][i+1]) 127 print('篮球出现的次数:') 128 for i in range(0, len(doubleSleCount[1])-1): 129 print('{a}出现的次数:{b}').format(a=(i+1),b=doubleSleCount[1][i+1]) 130 else: 131 print('请重新输入') 132 continue 133 else: 134 if numOne == 'q': 135 exit() 136 else: 137 print('请输入数字') 138 139 if __name__ == '__main__': 140 s = doubleSle() 141 s.begin()