# -*- coding: utf-8 -*-
# @Time : 2019/08/08 17:38
# @Author : Liu
# @File : zuoye.py# 一、
# 将此功能定义成一个函数,
# 电脑随机生成1~100随机数,用户输入一个数字,电脑提示用户大或者小,猜错,继续提示;猜对,则程序终止
# # (因为在用户猜数字的时候会发生输入的是非数字)
# 在调用函数的时候进行异常处理。
# import random
#
# flag = True
# num = random.randint(1, 100)
# print(num)
#
# class inputError(BaseException):
# # def __init__(self, *args, **kwargs): # real signature unknown
# pass
#
#
# def guess():
# number = input("请输入猜测数字:")
# if number.isdigit():
# if int(number) > num:
# print("大")
# elif int(number) < num:
# print("小")
# else:
# global flag
# flag = False
# else:
# raise inputError("Number input is ERROR!")
#
#
# try:
# while flag == True:
# guess()
# else:
# print("正确")
# except BaseException as e:
# print(e)#
# 二、
# 定义一个函数,参数是列表(比如是姓名),函数的功能是:将列表的第一项和最后一下进行拼接,并返回拼接后的结果。
# 在调用函数的时候进行异常处理。
#
# class PinjieERROR(BaseException):
# pass
#
#
# list = ['liu', 'wasda', 'wang']
#
#
# def pinjie(list):
# str = list[0] + list[-1]
# return str
#
#
# try:
# p = pinjie(list)
# print(p)
# except Exception as e:
# raise PinjieERROR("拼接有误")
# 三、
# 定义一个函数func(listinfo) listinfo:为列表,listinfo=[133,88,33,22,44,11,44,55,33,22,11,11,444,66,555]
# 返回一个列表包含小于100的偶数(使用filter完成添加上异常处理)
# '
# listinfo = [133, 88, 33, 22, 44, 11, 44, 55, 33, 22, 11, 11, 444, 66, 555]
#
#
# def func(x):
# return x < 100 and x % 2 == 0
#
#
# class funcError(BaseException):
# pass
#
#
# try:
# newlist = list(filter(func, listinfo))
#
# print(newlist)
# except Exception as e:
# raise funcError("...异常")
# 四. 定义一个异常类,继承Exception类, 捕获下面的过程:判断input()输入的字符串长度是否小于5,如果小于5,比如输入长度为3则输出yes,大于5输出no
# class Error(Exception):
# pass
#
# def func():
# x =input("请输入字符串:")
# if len(x)<5:
# return str("yes")
# else:
# return str("no")
# while True:
# try:
# print(func())
# except Exception as err:
# raise Error("异常?")# 五、简述python中的异常,并举例说明# 六、其他练习题
# 1、把列表中所有姓周的人的信息删掉:
# lst = ['周老二', '周星星', '麻花藤', '周扒皮']
# 结果: lst = ['麻花藤']
# list = ['周老二','周星星', '麻花藤', '周扒皮']
# list2 = []
# for i in list:
# if i[0]== '周':
# list2.append(i)
# print(list2)
# for i in list:
# for j in list2:
# if j in list2:
# list.remove(j)
# print(list)# 2、车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量.
# cars = ['鲁A32444','鲁B12333','京B8989M','黑C49678','黑C46555','沪 B25041'.....]
# locals = {'沪':'上海', '黑':'黑龙江', '鲁':'山东', '鄂':'湖北', '湘':'湖南', '京': '北京'.....}
# 结果: {'山东': 2, '北京': 1, '黑龙江': 2, '上海': 1}cars = ['鲁A32444','鲁B12333','京B8989M','黑C49678','黑C46555','沪 B25041']
locals = {'沪':'上海', '黑':'黑龙江', '鲁':'山东', '鄂':'湖北', '湘':'湖南', '京': '北京'}dict ={}
count = 0
for i in cars:key = i[0]if key in locals:count+=1dict[key] =dict.get(key,0)+1print(dict)# dic = {}
# for car in cars:
# key = car[0] # 获取车牌的第一个字
# if key in locals:
# new_key = locals[key]
# dic[new_key] = dic.get(new_key, 0) + 1 # 设默认值为0
# print(dic)
# 3. 干掉主播. 现有如下主播收益信息:
# zhubo = {'卢本伟':522000, '冯提莫':189999, '金老板': 99999, '吴老板': 250000, 'alex': 126}
# 1.计算主播平均收益值
# 2.干掉收益小于平均值的主播
# 3.干掉卢本伟
#
# zhubo = {'卢本伟':522000, '冯提莫':189999, '金老板': 99999, '吴老板': 250000, 'alex': 126}
# allmoney = 0
# list= []
# for name,money in zhubo.items():
# allmoney +=money
# ave = allmoney / len(zhubo)
# # print(ave )
# if ave >money:
# list.append(name)
# print(list)
# list3 = []
# for name in list:
# for name2 in zhubo.keys():
# if name == name2:
# list3.append(name)
# # del zhubo[name2] #RuntimeError: dictionary changed size during iteration
# del zhubo[name2]
# print("小于平均",list)
# print(zhubo)
# del zhubo['卢本伟']
# print(zhubo)
# 4.有如下两个集合,pythons是报名python课程的学员名字集合,linuxs是报名linux课程的学员名字集合
# pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
# linuxs={'wupeiqi','oldboy','gangdan'}
# 1. 求出即报名python又报名linux课程的学员名字集合
# 2. 求出所有报名的学生名字集合
# 3. 求出只报名python课程的学员名字
# 4. 求出没有同时这两门课程的学员名字集合
pythons={'alex','egon','yuanhao','wupeiqi','gangdan','biubiu'}
linuxs={'wupeiqi','oldboy','gangdan'}# set1 = []
# a =list(pythons)
# b =list(linuxs)
# for i in a:
# for j in b:
# if i == j:
# set1.append(i)
#
#
# set1 = set(set1)
# print(set1)
#
# a = a+b
# print(set(a)) #求出所有报名的学生名字集合
#####set1 = []
a =list(pythons)
b =list(linuxs)
for i in a:for j in b:if i == j:set1.append(i)
for i in set1:for j in a:if i == j:pythons.remove(i)
print(pythons)#只报名python
###set2 = []
a =list(pythons)
b =list(linuxs)
for i in a:for j in b:if i == j:set2.append(i)
for i in set1:for j in a:if i == j:linuxs.remove(i)
print(linuxs) #只报名linux#