python测试题2_python练习题(二)

1 #!/usr/bin/env python

2 #-*- coding: utf-8 -*-

3 #@File : DoubleColorBall.py

4 #@Author: xuemin.feng

5 #@Date : 2019/7/15

6

7 """

8 已知以下几期双色球号码(最后一个数字为蓝球),9 2019080 03 06 08 20 24 32 0710 2019079 01 03 06 09 19 31 1611 2019078 01 17 27 29 31 33 1212 2019077 09 11 13 18 21 22 1513 2019076 12 15 19 20 29 32 1414 2019075 05 08 20 22 31 33 0315 2019074 12 21 27 29 31 33 0416 2019073 01 02 06 12 16 18 0817 2019072 02 09 13 15 22 30 1518 2019071 01 08 19 24 29 30 0419

20 要求:21 一、运行后展示:22 1.查询双色球号码:23 2.查询出现号码次数24 3.输入新号码25 q.退出26

27 如果输入1:28 1.201908029 2.201907930 3.·····(效果同上)31 q.退出32 输入号码后展示对应的结果;如果号码不存在或者非数字提示请重新输入33

34 如果输入235 结果展示 红球中各个号码出现的次数、蓝球中各个号码出现的次数;36

37 如果输入3(附加题,选做)38 新增的号码支持前面功能 1、2;退出后新增的号码不会保存;如果输入非数字或红球大于33 蓝球大于16 提示请重新输入39 如果输入q 退出40

41 思路:42 1、拆成dict{"2019071":"01 08 19 24 29 30 04",,,,,,,},根据key取value43 2、红球、篮球分别放list里,遍历记录次数44 """

45

46

47 #将原始字符串变换为list,再转换成dict,方便按期数取值

48 defballs2dict():49 s1 = "2019080 03 06 08 20 24 32 07"

50 s2 = "2019079 01 03 06 09 19 31 16"

51 s3 = "2019078 01 17 27 29 31 33 12"

52 s4 = "2019077 09 11 13 18 21 22 15"

53 s5 = "2019076 12 15 19 20 29 32 14"

54 s6 = "2019075 05 08 20 22 31 33 03"

55 s7 = "2019074 12 21 27 29 31 33 04"

56 s8 = "2019073 01 02 06 12 16 18 08"

57 s9 = "2019072 02 09 13 15 22 30 15"

58 s10 = "2019071 01 08 19 24 29 30 04"

59 #先转换成list

60 balllist =[s1, s2, s3, s4, s5, s6, s7, s8, s9, s10]61

62 #根据题意,转换成dict,方便根据期数取值

63 balldict =[]64 for i inrange (len (balllist)):65 dic = {balllist[i][:7]: balllist[i][8:]}66 balldict.append (dic)67

68 returnballdict69

70 #取出key生成列表,按期数倒序

71 defgetKeys():72 balldict =balls2dict ()73 keys =[]74 for i inrange (len (balldict)):75 keys.append (balldict[i].keys ())76 keys.sort (reverse=True)77 returnkeys78

79 #根据输入数字,输出期数

80 deffromNum2Key():81 num_date =[]82 keys =getKeys ()83 for i inrange (len (keys)):84 num_date.append (str (i + 1) + "." + str (keys[i]).replace ("['", "").replace ("']", ""))85 printnum_date[i]86

87 #将红篮球拆分,分别计算重复次数

88 defgetValues():89 balldict =balls2dict ()90 values =[]91 redballs =[]92 blueballs =[]93

94 #将每组红蓝球放一个集合

95 for i inrange (len (balldict)):96 values.append (str (balldict[i].values ()).replace ("['", "").replace ("']", "").split (" "))97 #return values

98

99 #将所有红球放一个大集合,准备计算次数

100 for i in range (10):101 for j in range (6):102 redballs.append (values[i][j])103 printredballs104

105 #红球出现的次数(网上查的set去重方法,简单的一笔,sorted排序)

106 redballs_set =sorted (set (redballs))107

108 for redball inredballs_set:109 print ("红球 %s 出现过 %s 次" %(redball, redballs.count (redball)))110

111 #篮球出现的次数

112 for i in range (10):113 for j in range (7, 8):114 blueballs.append (values[i][j])115 #print blueballs

116 blueballs_set =sorted (set (blueballs))117 for blueball inblueballs_set:118 print ("蓝球 %s 出现过 %s 次" %(blueball, blueballs.count (blueball)))119

120 defentranceEx():121 whileTrue:122 one = raw_input ("1.查询双色球号码:" + "\n" + "2.查询出现号码次数" + "\n" + "3.输入新号码" + "\n" + "q.退出" + "\n" + "输入以上序号进入:")123 if one == 'q':124 exit ()125 elif int (one) == 1:126 fromNum2Key ()127 two = input ("#输入序号查看开奖结果:")128 balldict =balls2dict ()129 two_value = str (balldict[two - 1].values ()).replace ("['", "").replace ("']", "")130 print two_value + "\n" + "---------------------" + "\n"

131 elif int (one) == 2:132 #print "TODO-查询出现号码次数"

133 getValues ()134 print "---------------------" + "\n"

135

136 elif int (one) == 3:137 print "TODO-输入新号码"

138 print "---------------------" + "\n"

139

140 else:141 print "#输入有误"

142

143 if __name__ == '__main__':144 #print balls2dict()

145 #print fromNum2Key()

146 printgetValues()147 #print entranceEx ()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值