zoukankan      html  css  js  c++  java
  • Python习题004

    作业一:三迁举办选“帅气男孩”,评委打分可以输入打分,要求分数必须大于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','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()
    作业 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 升级版
  • 相关阅读:
    20172324 结对编程项目-四则运算 第三周 阶段总结
    20172324 结对编程项目-四则运算 第一周 阶段总结
    20172324 2017-2018-2《程序设计与数据结构》实验2报告
    20172324 2017-2018-2 《程序设计与数据结构》第七周学习总结
    2017-2018-2学期 20172324《Java程序设计》第六周学习总结
    20172307 2017-2018-2 《程序设计与数据结构》实验1报告
    20172307 2017-2018-2 《程序设计与数据结构》第3周学习总结
    23007 2017-2018-2 《程序设计与数据结构》第2周学习总结
    .20172307 2017-2018-2 《程序设计与数据结构》第1周学习总结
    寒假作业03
  • 原文地址:https://www.cnblogs.com/oito/p/11210582.html
Copyright © 2011-2022 走看看