作业一:三迁举办选“帅气男孩”,评委打分可以输入打分,要求分数必须大于5,小于10;
- 方法一
1 i = 1 2 while i < 6: 3 score = input("请%d评委打分:"%i) 4 if int(score) > 5 and int(score)<10: 5 print("感谢您的打分") 6 else: 7 print("不在有效范围内") 8 continue 9 i += 1
- 方法二
1 import re 2 dic = {} #存储同学最终得分的字典 3 list_boy = [] # 存储参赛人员信息 4 def is_Chinese(word): #判断输入参数人员姓名是否合法 5 for ch in word: 6 if 'u4e00' <= ch <= 'u9fff': 7 return False 8 else: 9 print("输入姓名不合法,请重新输入") 10 return True 11 12 def participant(): # 输入参赛人员基本信息 13 print("输入Q/q退出输入") 14 while True: 15 name = input("请输入参赛人员姓名:") 16 if name.upper() == "Q": # 输入q 退出 17 break 18 if is_Chinese(name): # is_Chinese(name) 调用判断输入参数人员姓名是否合法函数;姓名合法,函数返回False,本语句不执行 19 continue 20 if name in list_boy: #判断输入的值是否已经存在 21 print("此参赛人员已经输入,请重新输入") 22 continue 23 else: 24 list_boy.append(name) 25 print("--------------------------------------") 26 print("本次评选大赛参赛人员有:") 27 print(list_boy) 28 print("--------------------------------------") 29 def grade(count): # 评委打分函数,count :需要传入评委个数 30 sum = 0 31 count_person = count #记录有几个评委,求平均数 32 while count : 33 count1 = count # 记录第几个评委 34 print("请评委",count,"打分") 35 g = input("请输入大于5且小于10的数字:") 36 value = re.compile(r'^[-+]?[0-9]+.[0-9]+$') 37 result1 = value.match(g) #检测字符串是否小数 38 result2 = g.isdigit() # 检测字符串是否只由数字组成 39 if (result1 or result2) and float(g) > 5 and float(g) < 10: # 输入合法 分数是整数,且大于5 ,且小于10 40 sum = sum + float(g) #求分数的和 41 else: # 输入不合法 42 print("错误提示!请输入正确数字!") 43 # print("---------------------------------------") 44 count = count1 # 调取前面存储的数字,重新让该评委评分 45 continue 46 count -=1; # 跳转到下一个评委打分 47 avg = round(sum / count_person,3)# 求分数平均数 round( x [, n]) 方法返回浮点数x的四舍五入值,n为保留几位小数。 48 return avg 49 50 # 定义最终得分函数 n为传入的形参,表示有几个评委 51 def final_score(n): 52 for i in list_boy: 53 print("---------------------------------------") 54 print("请为",i,"同学打分") 55 dic[i] = grade(n) # grade(4) # 调取打分函数grade(n),n为传入的形参,表示有几个评委 56 print(i,"同学的最终得分为",dic[i]) 57 print("---------------------------------------") 58 print("最终得分详情:") 59 print(dic) 60 # print("---------------------------------------") 61 62 def boy(): # 评选“帅气男孩” 63 max_avg = 0 64 for i in dic: #变量字典,获取键 65 if dic[i] > max_avg: # 判断哪个值最大 66 max_avg = dic[i] #找出最终得分的字典中的最大值 67 max_boy = i 68 return max_boy,max_avg 69 70 if __name__ == '__main__': 71 print("欢迎来到本次“帅气男孩”评选管理系统") 72 print("---------------------------------------") 73 participant() 74 while True: 75 n = input('请输入评委个数,输入Q/q退出:') 76 ''' 77 break作用:用来跳出最内层的for循环或者while循环,脱离该循环后程序从循环代码后面继续执行。 78 即break语句只能跳出当前层次的循环。 79 ''' 80 if n.upper() == "Q": # upper()函数 是把字母转换成大写 81 print("本次评选大赛完美结束!!") 82 break 83 if n.isdigit() and int(n) > 0: # 输入合法 数是整数,且大于0 84 n_input = int(n) 85 final_score(n_input)# 调取最终得分函数 n_input为传入参,表示有几个评委 86 else: 87 print("输入不合法") 88 continue #结束当前当次循环,即跳出循环体中还没有执行的语句,但是并不跳出当前循环。 89 print("三迁'帅气男孩'最终获得者是",boy()) #调用 boy()函数 90 print("---------------------------------------")
作业二:显示一个喜欢的电影列表,观看者给每个电影打分,最终将投票信息公布出来
例如:lst = ['变形金刚','哆啦A梦','我的野蛮女友','赤壁','天下无贼','无间道']
结果:lst = ['变形金刚' : 96 , '哆啦A梦' : 92 , '我的野蛮女友' : 88 , '赤壁' : 70 , '天下无贼' : 78 , '无间道' : 92]
- 方法一
1 lst = ['变形金刚','哆啦A梦','我的野蛮女友','赤壁','天下无贼','无间道'] 2 dic = {} 3 for ele in lst: 4 score = input("请给电影%s打分:" % ele) 5 dic[ele] = score 6 print(dic)
- 方法二
1 dic = {} 2 lst = ['变形金刚','哆啦A梦','我的野蛮女友','赤壁','天下无贼','无间道'] 3 for i in lst: 4 print("请对电影",i,"打分:") 5 g = float(input()) 6 dic[i] = round(g, 2) #四舍五入,保留两位有效数 7 print(dic)
作业三:输入一个整数,输出每个数字对应的拼音。
dic = { '-':'fu','1':'yi','2':'er','3':'san','4':'si','5':'wu','6':'liu','7':'qi','8':'ba','9':'jiu','0':'ling','.':'dian'}
(请输入数字 : 889 输出:ba ba jiu)
1 dic = {'-':'fu','1':'yi','2':'er','3':'san','4':'si','5':'wu','6':'liu', 2 '7':'qi','8':'ba','9':'jiu','0':'ling','.':'dian'} 3 while True: 4 num = input('请输入数字,输入q/Q退出程序:') 5 if num.upper() == "Q": 6 print("奴家恭送小主") 7 break 8 for i in num: 9 if i not in dic: 10 print("你输入的数据中查不到,请重新输入!!!") 11 continue 12 print(dic[i],end=" ") 13 print()
作业四:车牌区域划分,现给出一下车牌,根据车牌的信息,分析出各省的车牌持有量
cars = ["鲁A32444","鲁B12333","京B8989M","黑C49678","黑C46555","沪B25041"]
locals = {"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"}
结果是:{山东:2,黑龙江:2,北京:1,上海:1}
1 cars = ["鲁A32444","鲁B12333","京B8989M","黑C49678","黑C46555","沪B25041"] 2 locals = {"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"} 3 dic = {} 4 for car in cars: 5 dic[locals[car[0]]] = dic.get(locals[car[0]],0) + 1 6 print(dic)
作业五:现有演艺工作者的收入信息
YanYi = {"范冰冰": 10, "倪妮": 11, "姑姑": 12, "古校长": 4.5}
1 .计算平均收益
2 .小于平均值的演艺工作者删掉
3.响应党和国家号召,打击偷税漏税,删除范冰冰
- 方法一
1 list_yan = [] # 存储字典当中的 键 信息 2 def Test(): 3 sum = 0 4 avg = 0 5 for i in YanYi: 6 list_yan.append(i) 7 # 把字典中的键 遍历出来添加到集合中,目的:为了后面for循环删除字典中的信息 8 # 注意点:如果直接删除,会出现错误 9 sum += float(YanYi[i]) 10 avg = sum / len(YanYi) 11 for j in list_yan: 12 if float(YanYi[j]) < avg: 13 YanYi.pop(j) 14 if '范冰冰' in YanYi: #判断 范冰冰是否在字典中 15 del YanYi['范冰冰'] 16 print("演艺信息修改后为:") 17 print(YanYi) 18 print("------------------------------------") 19 print("平均收入为") 20 print(avg) 21 22 if __name__ == '__main__': 23 YanYi = {"范冰冰": 25, "倪妮": 20, "姑姑": 10, "古校长": 5} 24 # print(list(YanYi)) 25 print("演员初始信息为:") 26 print(YanYi) 27 print("------------------------------------") 28 Test()
- 方法二
1 YanYi = {} # 存储演员基本信息的字典 2 list_yan = [] #存储字典当中的 键 信息 3 list_name = [] #存储演员名称的列表 4 list_income = [] #存储演员收入的列表 5 def input_info(): # 建立演员基本信息 6 print("-"*68) 7 print("请按照要求输入演员基本信息,输入Q/q停止录入信息") 8 print("友情提示:") 9 print("为响应党和国家号召,打击偷税漏税,输入范冰冰信息,最后结果不显示") 10 print("-" * 68) 11 while True: # 循环输入演员基本信息 12 name = input("请输入演员名称:") 13 if name in list_name: # 如果输入的序号已经存在,请重新输入 14 print("此演员已有,请重新输入") 15 # python中break和continue的用法和区别详解 https://blog.csdn.net/wls666/article/details/90408393 16 continue # 只结束本次循环,并不终止整个循环(while循环)的执行 17 else: 18 list_name.append(name) 19 if name.upper() == "Q": # 如果输入的值等于q或Q,则停止录入景点信息 upper()函数是转换为大写字符 lower()小写 20 break # 跳出while循环 21 income = input("请输入演员收入:") 22 if income.upper() == "Q": 23 break 24 list_income.append(income) 25 26 def Test():# 题目中 要求的 信息的方法 27 sum = 0 28 avg = 0 29 for i in YanYi: # 把字典转换成集合 30 list_yan.append(i) 31 sum += float(YanYi[i]) 32 avg = round(sum / len(YanYi),3) 33 for j in list_yan: 34 if float(YanYi[j]) < avg : 35 YanYi.pop(j) 36 if '范冰冰' in YanYi: #判断 范冰冰是否在字典中 37 del YanYi['范冰冰'] 38 print("演艺信息修改后为:") 39 print(YanYi) 40 print("------------------------------------") 41 print("平均收入为") 42 print(avg) 43 if __name__ == '__main__': 44 input_info() 45 YanYi= dict(zip(list_name,list_income)) 46 print("演员初始信息为:") 47 print(YanYi) 48 print("------------------------------------") 49 Test() # 调用Test()函数