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成员运算 ...
随机推荐
- 更新Xcode 8后运行时,在打印台会输出一堆东西(Xcode 8日志输出问题)
使用 Xcode 8 运行工程的时候,在打印台会发现如下这些奇怪的日志输出: 2016-09-19 10:43:44.001757 Demo[7100:171568] subsystem: com.a ...
- HttpClient学习(三)—— AsyncHttpClient使用
一.介绍 This class support asynchronous and synchronous HTTP requests. AsyncHttpClient 支持同步.异步Http请求. 二 ...
- 8. String to Integer (atoi) ---Leetcode
Implement atoi to convert a string to an integer. 题目分析: 题目本身很简单就是将一个字符串转化成一个整数,但是由于字符串的千差万别,导致在实现的时候 ...
- idea JRebel
JRebel 链接:https://pan.baidu.com/s/11LI0RkPtrfEWQENns6cWAA 提取码:ndsu settings -> plugins -> inst ...
- jQuery插件fontIconPicker配合FontAwesome字体图标库的使用
同样先上效果图: 怎么样,是不是很好看,jquery fontIconPicker这个插件做的很不错,支持分类,搜索,还有分页功能,可以自定义分页,具体的使用方法我就不一介绍了,我只说一下如何使用fo ...
- zabbix 定义触发器,并使用邮件,微信消息报警。
触发器可根据监控项获取到的值来进行一些操作,如监控项获取到的values为0,触发器可判断为正常,如果获取到了1,就触发报警. 定义报警方式比较简单,但是用shell脚本实现起来,总是有格式问题,所以 ...
- Mybatis xml mapper 特殊写法总结
项目告一段落,业务代码也写得差不多了,框架仍然用的是 ssm ,为了省去单表数据库操作的代码编写,继续用 mybatis generator 生成单表对应的实体类.dao层映射关联及配置文件,私下还尝 ...
- Angular中的routerLink 跳转页面和默认路由
1.创建新项目 2.创建home news newscontent 组件 3.找到app-rounting-moudle.ts配置路由 1)引入组件 import { HomeComponent } ...
- osg Shader 着色器
#ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include <osg/Group> #include <os ...
- linux修改配置文件解决mysql中文乱码和指定数据库存储引擎
如题,mysql数据库的中文显示乱码: 先看下原来数据库里的字符编码: mysql> show variables like '%character_set%'; +-------------- ...