Python习题004
作业一:三迁举办选“帅气男孩”,评委打分可以输入打分,要求分数必须大于5,小于10;
- 方法一
- i = 1
- while i < 6:
- score = input("请%d评委打分:"%i)
- if int(score) > 5 and int(score)<10:
- print("感谢您的打分")
- else:
- print("不在有效范围内")
- continue
- i += 1
作业 1 答案 1
- 方法二
- import re
- dic = {} #存储同学最终得分的字典
- list_boy = [] # 存储参赛人员信息
- def is_Chinese(word): #判断输入参数人员姓名是否合法
- for ch in word:
- if '\u4e00' <= ch <= '\u9fff':
- return False
- else:
- print("输入姓名不合法,请重新输入")
- return True
- def participant(): # 输入参赛人员基本信息
- print("输入Q/q退出输入")
- while True:
- name = input("请输入参赛人员姓名:")
- if name.upper() == "Q": # 输入q 退出
- break
- if is_Chinese(name): # is_Chinese(name) 调用判断输入参数人员姓名是否合法函数;姓名合法,函数返回False,本语句不执行
- continue
- if name in list_boy: #判断输入的值是否已经存在
- print("此参赛人员已经输入,请重新输入")
- continue
- else:
- list_boy.append(name)
- print("--------------------------------------")
- print("本次评选大赛参赛人员有:")
- print(list_boy)
- print("--------------------------------------")
- def grade(count): # 评委打分函数,count :需要传入评委个数
- sum = 0
- count_person = count #记录有几个评委,求平均数
- while count :
- count1 = count # 记录第几个评委
- print("请评委",count,"打分")
- g = input("请输入大于5且小于10的数字:")
- value = re.compile(r'^[-+]?[0-9]+\.[0-9]+$')
- result1 = value.match(g) #检测字符串是否小数
- result2 = g.isdigit() # 检测字符串是否只由数字组成
- if (result1 or result2) and float(g) > 5 and float(g) < 10: # 输入合法 分数是整数,且大于5 ,且小于10
- sum = sum + float(g) #求分数的和
- else: # 输入不合法
- print("错误提示!请输入正确数字!")
- # print("---------------------------------------")
- count = count1 # 调取前面存储的数字,重新让该评委评分
- continue
- count -=1; # 跳转到下一个评委打分
- avg = round(sum / count_person,3)# 求分数平均数 round( x [, n]) 方法返回浮点数x的四舍五入值,n为保留几位小数。
- return avg
- # 定义最终得分函数 n为传入的形参,表示有几个评委
- def final_score(n):
- for i in list_boy:
- print("---------------------------------------")
- print("请为",i,"同学打分")
- dic[i] = grade(n) # grade(4) # 调取打分函数grade(n),n为传入的形参,表示有几个评委
- print(i,"同学的最终得分为",dic[i])
- print("---------------------------------------")
- print("最终得分详情:")
- print(dic)
- # print("---------------------------------------")
- def boy(): # 评选“帅气男孩”
- max_avg = 0
- for i in dic: #变量字典,获取键
- if dic[i] > max_avg: # 判断哪个值最大
- max_avg = dic[i] #找出最终得分的字典中的最大值
- max_boy = i
- return max_boy,max_avg
- if __name__ == '__main__':
- print("欢迎来到本次“帅气男孩”评选管理系统")
- print("---------------------------------------")
- participant()
- while True:
- n = input('请输入评委个数,输入Q/q退出:')
- '''
- break作用:用来跳出最内层的for循环或者while循环,脱离该循环后程序从循环代码后面继续执行。
- 即break语句只能跳出当前层次的循环。
- '''
- if n.upper() == "Q": # upper()函数 是把字母转换成大写
- print("本次评选大赛完美结束!!")
- break
- if n.isdigit() and int(n) > 0: # 输入合法 数是整数,且大于0
- n_input = int(n)
- final_score(n_input)# 调取最终得分函数 n_input为传入参,表示有几个评委
- else:
- print("输入不合法")
- continue #结束当前当次循环,即跳出循环体中还没有执行的语句,但是并不跳出当前循环。
- print("三迁'帅气男孩'最终获得者是",boy()) #调用 boy()函数
- print("---------------------------------------")
作业 1 答案 1 升级版
作业二:显示一个喜欢的电影列表,观看者给每个电影打分,最终将投票信息公布出来
例如:lst = ['变形金刚','哆啦A梦','我的野蛮女友','赤壁','天下无贼','无间道']
结果:lst = ['变形金刚' : 96 , '哆啦A梦' : 92 , '我的野蛮女友' : 88 , '赤壁' : 70 , '天下无贼' : 78 , '无间道' : 92]
- 方法一
- lst = ['变形金刚','哆啦A梦','我的野蛮女友','赤壁','天下无贼','无间道']
- dic = {}
- for ele in lst:
- score = input("请给电影%s打分:" % ele)
- dic[ele] = score
- print(dic)
作业 2 答案 1
- 方法二
- dic = {}
- lst = ['变形金刚','哆啦A梦','我的野蛮女友','赤壁','天下无贼','无间道']
- for i in lst:
- print("请对电影",i,"打分:")
- g = float(input())
- dic[i] = round(g, 2) #四舍五入,保留两位有效数
- 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)
- dic = {'-':'fu','':'yi','':'er','':'san','':'si','':'wu','':'liu',
- '':'qi','':'ba','':'jiu','':'ling','.':'dian'}
- while True:
- num = input('请输入数字,输入q/Q退出程序:')
- if num.upper() == "Q":
- print("奴家恭送小主")
- break
- for i in num:
- if i not in dic:
- print("你输入的数据中查不到,请重新输入!!!")
- continue
- print(dic[i],end=" ")
- print()
作业 3 答案
作业四:车牌区域划分,现给出一下车牌,根据车牌的信息,分析出各省的车牌持有量
cars = ["鲁A32444","鲁B12333","京B8989M","黑C49678","黑C46555","沪B25041"]
locals = {"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"}
结果是:{山东:2,黑龙江:2,北京:1,上海:1}
- cars = ["鲁A32444","鲁B12333","京B8989M","黑C49678","黑C46555","沪B25041"]
- locals = {"沪":"上海","黑":"黑龙江","鲁":"山东","鄂":"湖北","湘":"湖南","京":"北京"}
- dic = {}
- for car in cars:
- dic[locals[car[0]]] = dic.get(locals[car[0]],0) + 1
- print(dic)
作业 4 答案
作业五:现有演艺工作者的收入信息
YanYi = {"范冰冰": 10, "倪妮": 11, "姑姑": 12, "古校长": 4.5}
1 .计算平均收益
2 .小于平均值的演艺工作者删掉
3.响应党和国家号召,打击偷税漏税,删除范冰冰
- 方法一
- list_yan = [] # 存储字典当中的 键 信息
- def Test():
- sum = 0
- avg = 0
- for i in YanYi:
- list_yan.append(i)
- # 把字典中的键 遍历出来添加到集合中,目的:为了后面for循环删除字典中的信息
- # 注意点:如果直接删除,会出现错误
- sum += float(YanYi[i])
- avg = sum / len(YanYi)
- for j in list_yan:
- if float(YanYi[j]) < avg:
- YanYi.pop(j)
- if '范冰冰' in YanYi: #判断 范冰冰是否在字典中
- del YanYi['范冰冰']
- print("演艺信息修改后为:")
- print(YanYi)
- print("------------------------------------")
- print("平均收入为")
- print(avg)
- if __name__ == '__main__':
- YanYi = {"范冰冰": 25, "倪妮": 20, "姑姑": 10, "古校长": 5}
- # print(list(YanYi))
- print("演员初始信息为:")
- print(YanYi)
- print("------------------------------------")
- Test()
作业 5 答案 1
- 方法二
- YanYi = {} # 存储演员基本信息的字典
- list_yan = [] #存储字典当中的 键 信息
- list_name = [] #存储演员名称的列表
- list_income = [] #存储演员收入的列表
- def input_info(): # 建立演员基本信息
- print("-"*68)
- print("请按照要求输入演员基本信息,输入Q/q停止录入信息")
- print("友情提示:")
- print("为响应党和国家号召,打击偷税漏税,输入范冰冰信息,最后结果不显示")
- print("-" * 68)
- while True: # 循环输入演员基本信息
- name = input("请输入演员名称:")
- if name in list_name: # 如果输入的序号已经存在,请重新输入
- print("此演员已有,请重新输入")
- # python中break和continue的用法和区别详解 https://blog.csdn.net/wls666/article/details/90408393
- continue # 只结束本次循环,并不终止整个循环(while循环)的执行
- else:
- list_name.append(name)
- if name.upper() == "Q": # 如果输入的值等于q或Q,则停止录入景点信息 upper()函数是转换为大写字符 lower()小写
- break # 跳出while循环
- income = input("请输入演员收入:")
- if income.upper() == "Q":
- break
- list_income.append(income)
- def Test():# 题目中 要求的 信息的方法
- sum = 0
- avg = 0
- for i in YanYi: # 把字典转换成集合
- list_yan.append(i)
- sum += float(YanYi[i])
- avg = round(sum / len(YanYi),3)
- for j in list_yan:
- if float(YanYi[j]) < avg :
- YanYi.pop(j)
- if '范冰冰' in YanYi: #判断 范冰冰是否在字典中
- del YanYi['范冰冰']
- print("演艺信息修改后为:")
- print(YanYi)
- print("------------------------------------")
- print("平均收入为")
- print(avg)
- if __name__ == '__main__':
- input_info()
- YanYi= dict(zip(list_name,list_income))
- print("演员初始信息为:")
- print(YanYi)
- print("------------------------------------")
- Test() # 调用Test()函数
作业 5 答案 2 升级版
Python习题004的更多相关文章
- Python练习题 004:判断某日期是该年的第几天
[Python练习题 004]输入某年某月某日,判断这一天是这一年的第几天? ---------------------------------------------- 这题竟然写了 28 行代码! ...
- Python [习题] 文件操作:目录间copy 文件
[习题] 指定一个源文件,实现copy到目标目录.例如把/tmp/sample1.txt 拷贝到/tmp/sample2.txt原文件需要有读权限(默认rt权限),目标文件需要给写(w即可)权限. I ...
- python习题实例(上)_update18/07/03
用以记录python学习过程中做过的小习题~ ヾ(◍°∇°◍)ノ゙ 1.生成两个列表,分别存放将100以内的偶数&奇数 odd_number=[] even_number=[] for i i ...
- 笨办法学Python - 习题11-12: Asking Questions & Prompting People
目录 1.习题 11: 提问 2.习题 12: 提示别人 3.总结 1.习题 11: 提问 学习目标:了解人机交互场景,熟悉raw_input 的用法. 1.在 Python2.x 中 raw_inp ...
- 笨办法学Python - 习题8-10: Printing & Printing, Printing
目录 1.习题 8: 打印,打印 2.习题 9: 打印,打印,打印 3.习题 10: 那是什么? 3.1.转义序列: 4.习题总结: 1.习题 8: 打印,打印 学习目标:继续学习 %r 的格式化输出 ...
- 笨办法学Python - 习题6-7: Strings and Text & More Printing
目录 1.习题 6: 字符串(string) 和文本 2.加分习题: 3.我的答案 4.习题总结 5.习题 7: 更多打印 6.习题总结 1.习题 6: 字符串(string) 和文本 学习目标:了解 ...
- 笨办法学Python - 习题5: More Variables and Printing
1.习题 5: 更多的变量和打印 学习目标:了解用户输入方法,明白pthon2和Python3之间的用户输入的区别.了解格式化字符串(format string)的概念,学会如何创建包含变量内容的字符 ...
- 笨办法学Python - 习题4: Variables and Names
1.习题 4: 变量(variable)和命名 学习目标:了解Python中变量的定义,学习定义简明易记的变量名 变量:变量是存储内存中的值,就是每定义一个变量就会在内存中开辟一个空间.基于变量的类型 ...
- 笨办法学Python - 习题3: Numbers and Math
目录 习题 3: 数字和数学计算 算术运算符 加分习题: 我的答案: 总结: 扩展: Python比较运算符 Python赋值运算符 Python位运算符 Python逻辑运算符 Python成员运算 ...
随机推荐
- GO语言反射
反射可以作为了解,不必深入! 反射介绍 Go语音提供了一种机制在运行时更新变量和检查它们的值.调用它们的方法和它们支持的内在操作,但是在编译时并不知道这些变量的具体类型.这种机制被称为反射.反射也可以 ...
- My algorithmic road
序言 初窥门径 1 第一题 素数的烦恼 离开了家乡,你到达了数字之地,在这里数字2总感觉自己是自然数中最独特的一个,他只有一和它本身两个因数,为此它十分苦恼.为了不再寂寞,他建立了素数王国,他请求许多 ...
- Cesium入门-2-增加地形
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- TynSerial自定义对象的序列(还原)
TynSerial自定义对象的序列(还原) TynSerial是咏南中间件封装的支持数据二进制序列(还原)的类. 对于ORM来说,序列类必须序列(还原)自定义对象. 1)定义一个自定义对象 type ...
- 【MyEclipse初级】Web项目的访问路径更改
背景:MyEclipse 开发的Web项目,发布Web项目到Tomcat,从浏览器访问路径配置和工程名称一致,思考是否可以自定义访问虚拟路径. 目标:修改访问Web项目的虚拟路径 步骤:工程名右键-& ...
- 转:android DownloadManager: java.lang.SecurityException: Invalid value for visibility: 2
1.问题描述 今天使用Android系统的DownloadManager进行下载操作时,爆了如下所示的错误: java.lang.RuntimeException: Unable to start s ...
- scope.row中属性值展示
<el-table-column align="> <template slot-scope="scope"> {{ scope.$index } ...
- apk增加系统签名的方法
1.命令行方法给apk加系统签名在Linux环境:java -Djava.library.path=. -jar signapk.jar platform.x509.pem platform.pk8 ...
- React——教程 && 零基础入门 && 从实践中学习(待续)
Tutorial: Intro to React This tutorial doesn’t assume any existing React knowledge. Tip This tutoria ...
- 算法习题---4-3黑白棋(UVa220)
一:题目 系统提示当前旗手W/B(白/黑)下子,例如W下子,那么W下的位置必须是夹住黑色棋子的位置才可以. 夹住方式:横向.竖向.斜向 注意落子后将夹住的黑棋吞噬变为白棋 (一)题目详解 .棋盘以数组 ...