作业一:三迁举办选“帅气男孩”,评委打分可以输入打分,要求分数必须大于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 答案 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("---------------------------------------")

作业 1 答案 1 升级版

作业二:显示一个喜欢的电影列表,观看者给每个电影打分,最终将投票信息公布出来

例如: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)

作业 2 答案 1

  • 方法二
  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)

作业 2 答案 2

作业三:输入一个整数,输出每个数字对应的拼音。

    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','':'yi','':'er','':'san','':'si','':'wu','':'liu',
  2. '':'qi','':'ba','':'jiu','':'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()

作业 3 答案

作业四:车牌区域划分,现给出一下车牌,根据车牌的信息,分析出各省的车牌持有量

    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)

作业 4 答案

作业五:现有演艺工作者的收入信息

  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()

作业 5 答案 1

  • 方法二
  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()函数

作业 5 答案 2 升级版

Python习题004的更多相关文章

  1. Python练习题 004:判断某日期是该年的第几天

    [Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...

  2. Python [习题] 文件操作:目录间copy 文件

    [习题] 指定一个源文件,实现copy到目标目录.例如把/tmp/sample1.txt 拷贝到/tmp/sample2.txt原文件需要有读权限(默认rt权限),目标文件需要给写(w即可)权限. I ...

  3. python习题实例(上)_update18/07/03

    用以记录python学习过程中做过的小习题~ ヾ(◍°∇°◍)ノ゙ 1.生成两个列表,分别存放将100以内的偶数&奇数 odd_number=[] even_number=[] for i i ...

  4. 笨办法学Python - 习题11-12: Asking Questions & Prompting People

    目录 1.习题 11: 提问 2.习题 12: 提示别人 3.总结 1.习题 11: 提问 学习目标:了解人机交互场景,熟悉raw_input 的用法. 1.在 Python2.x 中 raw_inp ...

  5. 笨办法学Python - 习题8-10: Printing & Printing, Printing

    目录 1.习题 8: 打印,打印 2.习题 9: 打印,打印,打印 3.习题 10: 那是什么? 3.1.转义序列: 4.习题总结: 1.习题 8: 打印,打印 学习目标:继续学习 %r 的格式化输出 ...

  6. 笨办法学Python - 习题6-7: Strings and Text & More Printing

    目录 1.习题 6: 字符串(string) 和文本 2.加分习题: 3.我的答案 4.习题总结 5.习题 7: 更多打印 6.习题总结 1.习题 6: 字符串(string) 和文本 学习目标:了解 ...

  7. 笨办法学Python - 习题5: More Variables and Printing

    1.习题 5: 更多的变量和打印 学习目标:了解用户输入方法,明白pthon2和Python3之间的用户输入的区别.了解格式化字符串(format string)的概念,学会如何创建包含变量内容的字符 ...

  8. 笨办法学Python - 习题4: Variables and Names

    1.习题 4: 变量(variable)和命名 学习目标:了解Python中变量的定义,学习定义简明易记的变量名 变量:变量是存储内存中的值,就是每定义一个变量就会在内存中开辟一个空间.基于变量的类型 ...

  9. 笨办法学Python - 习题3: Numbers and Math

    目录 习题 3: 数字和数学计算 算术运算符 加分习题: 我的答案: 总结: 扩展: Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算 ...

随机推荐

  1. GO语言反射

    反射可以作为了解,不必深入! 反射介绍 Go语音提供了一种机制在运行时更新变量和检查它们的值.调用它们的方法和它们支持的内在操作,但是在编译时并不知道这些变量的具体类型.这种机制被称为反射.反射也可以 ...

  2. My algorithmic road

    序言 初窥门径 1 第一题 素数的烦恼 离开了家乡,你到达了数字之地,在这里数字2总感觉自己是自然数中最独特的一个,他只有一和它本身两个因数,为此它十分苦恼.为了不再寂寞,他建立了素数王国,他请求许多 ...

  3. Cesium入门-2-增加地形

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. TynSerial自定义对象的序列(还原)

    TynSerial自定义对象的序列(还原) TynSerial是咏南中间件封装的支持数据二进制序列(还原)的类. 对于ORM来说,序列类必须序列(还原)自定义对象. 1)定义一个自定义对象 type ...

  5. 【MyEclipse初级】Web项目的访问路径更改

    背景:MyEclipse 开发的Web项目,发布Web项目到Tomcat,从浏览器访问路径配置和工程名称一致,思考是否可以自定义访问虚拟路径. 目标:修改访问Web项目的虚拟路径 步骤:工程名右键-& ...

  6. 转:android DownloadManager: java.lang.SecurityException: Invalid value for visibility: 2

    1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...

  7. scope.row中属性值展示

    <el-table-column align="> <template slot-scope="scope"> {{ scope.$index } ...

  8. apk增加系统签名的方法

    1.命令行方法给apk加系统签名在Linux环境:java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 ...

  9. React——教程 && 零基础入门 && 从实践中学习(待续)

    Tutorial: Intro to React This tutorial doesn’t assume any existing React knowledge. Tip This tutoria ...

  10. 算法习题---4-3黑白棋(UVa220)

    一:题目 系统提示当前旗手W/B(白/黑)下子,例如W下子,那么W下的位置必须是夹住黑色棋子的位置才可以. 夹住方式:横向.竖向.斜向 注意落子后将夹住的黑棋吞噬变为白棋 (一)题目详解 .棋盘以数组 ...