python之错题巩固
1.#把班级学⽣数学考试成绩录⼊到⼀个列表中: 并求平均值. 要求: 录⼊的时候 # 要带着⼈名录⼊, 例如: 张三_44 li = [] while 1: str_input = input('请输入你的姓名和分数(格式:张三_44),输入Q退出:') if str_input.lower() == 'q': break else: ret = str_input.split('_') li.append(ret[1]) sum_num = 0 for i in li: sum_num = sum_num + int(i) print(sum_num / len(li))
#2.编写程序. 完成⼼动⼥⽣的筛选. (升级题) # ⾸先. 程序会提示⽤户录⼊10位⼼仪⼥⽣的姓名. 然后把10位⼥⽣的名 # 字和序号展示出来. 由⽤户选择⼼动⼥⽣. 此时⽤户可以选择3个⼼动⼥⽣. 把⽤ # 户选中的三个⼼动⼥⽣的名字打印出来. 供⽤户继续选择. 这⼀次选择. 只能选 # 择⼀名⼥⽣. 然后输出⽤户的⼼动⼥⽣是xxx str = [] num = 1 while num <= 10: name = input("请输入10位心动女生的姓名(您还可以输入{}个):".format(11-num)) num += 1 str.append(name) #10个女生名字依次追加到str列表中 print("您当前心仪的女生有:") # print(str) for i in range(len(str)): print('编号:{},名字:{}'.format((i+1),str[i])) print("请输入你更喜欢的三个女人的编号:") j = 1 str_bh = [] while j <= 3: bh = input("请输入第{}个美眉的编号:".format(j)) j += 1 str_bh.append(bh) # print(str_bh) str_last = [] print("更喜欢的新鲜出炉:") for n in range(len(str_bh)): print("编号:{},名字:{}".format((n+1),str[int(str_bh[n])-1])) str_last.append(str[int(str_bh[n])-1]) # print(str_last) print("最后了,三选一") last_bh = int(input("输入你最喜欢的人的编号:")) print("程序帮你选出来了,你最喜欢的是{}妹子".format(str_last[last_bh - 1]))
#3 有如下列表 li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] # 循环打印列表中的每个元素,遇到列表则再循环打印出它⾥⾯的元素。 # 我想要的结果是: # 1 # 3 # 4 # "alex" # 3 # 7, # 8 # "taibai" # 5 # ritian # li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] li = [1, 3, 4, "alex", [3, 7, 8, "TaiBai"], 5, "RiTiAn"] for i in li: if type(i) == list: for el in i: if type(el) == str: print(el.lower()) else: print(el) else: if type(i) == str: print(i.lower()) else: print(i)
#4.车牌区域划分, 现给出以下车牌. # 根据车牌的信息, 分析出各省的车牌持有量. (升级题) cars = ["鲁A12345","鲁B12345", "沪B45678", "黑A12345", "黑A12345"] locals = {"鲁": "山东", "沪": '上海', "黑": '黑龙江'} result = {} for car in cars: result[locals[car[0]]]=result.get(locals[car[0]],0)+1 print(result)
# 5有字符串 "k:1|k1:2|k2:3|k3:4" 处理成字典 {'k':1,'k1':2....} s1='k:1|k1:2|k2:3|k3:4' disc={} s2=s1.split('|') print(s2) # s2=['k:1','k1:2','k2:3','k3:4'] for n in s2: # n='k:1'第一次循环后的结果 n1= n.split(":") # n1=['k' ,'1'] # disc.setdefault(n1[0], n1[1]) #setdefault:如果键不存在于字典中,将会添加键并将值设为默认值。 disc[n1[0]]=n1[1] print(disc)
#6.完成彩票36选7的功能. 从36个数中随机的产生7个数. # 最终获取到7个不重复的数据作为最终的开奖结果. # 随机数: from random import randint # # 0 - 36 的随机数 lst=[] while 1: a=randint(1,36) if len(lst)<7: lst.append(a) print(a) else: break s=set(lst) set=list(s) print(lst)
#7.判断一个数是否是水仙花数, 水仙花数是一个三位数, # 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, # 例如: 153 = 1**3 + 5**3 + 3**3 while 1: s = input("请输入一个数字:" ) if 99 <int(s) <1000: print("这个数字是三位数") sum = 0 # 和 for i in s: print(i) # '1','2','3', sum = sum + int(i) ** 3 if sum == int(s): print("%s是水仙花数" % s) print(s) else: print("您输入有误") break
#7,文件a1.txt内容(升级题) # 序号 部门 人数 平均年龄 备注 # 1 python 30 26 单身狗 # 2 Linux 26 30 没对象 # 3 运营部 20 24 女生多 # ....... # 通过代码,将其构建成这种数据类型: # [{'序号':'1','部门':Python,'人数':30,'平均年龄':26,'备注':'单身狗'}, # # ......] lst = [] with open("a6.txt",mode="r",encoding="utf-8") as f1: first = f1.readline().split() # print(first) #['序号', '部门', '人数', '平均年龄', '备注'] for line in f1: dic = {} ls = line.split() #['1', 'python', '30', '26', '单身狗'] for i in range(len(first)): dic[first[i]] = ls[i] lst.append(dic) print(lst)