# 1,老男孩好声选秀大赛评委在打分的时候呢, 可以输入分数. 假设, 老男孩有10个评委. 让10个评委进行打分, 要求, 分数必须高于5分, 低于10分.将每个评委的打分情况保存在列表中.
pingwei = ['alex', 'wusir', '麻花藤', '东风扇', '西风扇', '宝宝', '太白', '日天', '女神', '老弟']
#方法一:将分数添加到一个新列表中
score = []
for el in pingwei:
while 1:
uscore = input(f'{el}请打分(5~10):').strip()
if uscore.isdigit():
uscore = int(uscore)
if 5 < uscore < 10:
score.append(uscore)
break # 跳出 while 循环
else:
print('分数必须高于5分, 低于10分,请重新输入')
continue # 继续让当前的评委打分
else:
print('输入不合法,请重新输入') print(score)
#方法二:将分数直接拼接到评委的名字后面
for i in range(len(pingwei)):
while 1:
uscore = input(f'{pingwei[i]}请打分(5~10):').strip()
if uscore.isdigit():
uscore = int(uscore)
if 5 < uscore < 10:
pingwei[i] += f'-{str(uscore)}分' # ['alex-6分','wusir-7分', '麻花藤-8分', '东风扇', ...]
break # 跳出 while 循环
else:
print('分数必须高于5分, 低于10分,请重新输入')
continue # 继续让当前的评委打分
else:
print('输入不合法,请重新输入') print(pingwei) # 2.念数字.  给出一个字典. 在字典中标识出每个数字的发音. 包括相关符号. 然后由用户输入一个数字. 让程序读出相对应的发音(不需要语音输出. 单纯的打印即可) dic = {'-':'fu','':'ling','':'yi','':'er','':'san','':'si','':'wu','':'liu','':'qi','':'ba','':'jiu','.':'dian'}
num = input('请输入一个数:')
for k in num:
print(dic[k], end=' ') # 3.车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量.
#题意:判断 cars 列表中不同省份(简称)的车牌数量分别是多少,并以 省份名:车牌数量 的形式添加到字典中,并输出.
#方法一:使用get(也是老师讲解的方法,推荐使用的)
cars = ["鲁A32444", "鲁B12333", "京B8989M", "黑C49678", "黑C46555", "沪B25041"]
locals = {'沪': "上海", "黑": "黑龙江", "鲁": "山东", "鄂": "湖北", "湘": "湖南", "京": "北京"}
dic = {} # {"山东":2,"北京":1,...}
for el in cars:
city = locals[el[0]]
if dic.get(city): # "鲁"-->"山东" 城市已经存在,数量加1
dic[city] += 1
else:
dic[city] = 1
print(dic) # 方法二:使用setdefault (有坑,慎用!-->自己写的)
cars = ["鲁A32444", "鲁B12333", "京B8989M", "黑C49678", "黑C46555", "沪B25041"]
locals = {'沪': "上海", "黑": "黑龙江", "鲁": "山东", "鄂": "湖北", "湘": "湖南", "京": "北京"}
dic = {} # {"山东":2,"北京":1,...}
for el in cars:
city = locals[el[0]]
dic[city] = dic.setdefault(city, 0) + 1 #使用setdefault省略了判断key是否存在的过程,因为这个方法本身会先判断key是否存在而进行一系列的操作
print(dic) '''
分析:刚开始上面的 dic[city] = dic.setdefault(city, 0) + 1 我使用的是 dic.setdefault(city, 0) += 1 ,会报错(压根就不能写上,直接红线)为什么会报错?
dic.setdefault(city, 0) += 1 等价于
dic.setdefault(city, 0) = dic.setdefault(city, 0) + 1 #左右两端都是确定的数值,不能进行赋值操作
赋值操作的左边一定要是个变量,只有对变量才能赋值,而这里dic.setdefault(city, 0)得到的是个确定的数值,就相当于2=2+1这是不允许的.而使用 dic[city]
也是拿到了city的对应的值,还是个变量,比较好 ''' # 4.干掉主播. 现有如下主播收益信息, 按照要求, 完成相应操作:
zhubo = {'卢本伟': 122000, '冯提莫': 18999, '金老板': 99999, '吴老板': 25000000, 'alex': 126}
# 1.计算平均值
sum = 0
for v in zhubo.values():
sum += v
average = sum/len(zhubo)
print(average) # 2.干掉收益小于平均值的主播 #注意:字典不能在自己循环遍历的时候新增或者删除自己的元素,但是可以在别人遍历的时候删除
sum = 0
dic_del_list = [] # 暂时保存要删除的元素的key
for k, v in zhubo.items():
sum += v #总分
if v < sum/len(zhubo): #平均分
dic_del_list.append(k) #将小于平均分的 key 加入要删除的列表 for el in dic_del_list:
del zhubo[el]
# zhubo.pop(el) # 这俩都能删除
print(zhubo) #干掉卢本伟
del zhubo['卢本伟']
# zhubo.pop('卢本伟') # 这俩都能删除
print(zhubo) """
# 今日默写:
# 1, == 和is的区别
is 比较的是内存地址
== 比较的是内容
当两个变量指向同一个对象的时候. is是True, ==也是True # 2, gbk,utf-8的转化。
s = "我今天非常的困"
# 编码
bs = s.encode('utf-8') # utf-8 的bytes
# 解码
s = bs.decode('utf-8')
# print(s)
#
# 编码
bss = s.encode("gbk") # gbk 的bytes
# print(bss)
"""
# 1,老男孩好声选秀大赛评委在打分的时候呢, 可以输入分数. 假设, 老男孩有10个评委.
# 让10个评委进行打分, 要求, 分数必须高于5分, 低于10分.
# 将每个评委的打分情况保存在列表中. pingwei = ['alex', 'wusir', '麻花藤', '东风扇','西风扇','宝宝','太白','日天','女神','老弟'] lst = [] index = 0
while index < len(pingwei):
content = input("请%s评委打分" % pingwei[index])
if content.isdigit():
fen = int(content)
if fen >= 5 and fen <= 10: # 正确的分数
lst.append(fen)
index += 1 # 向后走一个人
else: # 分数是错误的. 重新打分
print("对不起, 您的分数有问题. 请重新打分.")
else:
print("输入的有问题. 请重新打分")
print(lst) # 2.念数字.  给出一个字典. 在字典中标识出每个数字的发音.
# 包括相关符号. 然后由用户输入一个数字.
# 让程序读出相对应的发音(不需要语音输出. 单纯的打印即可) dic = {
'-':'fu',
'':'ling',
'':'yi',
'':'er',
'':'san',
'':'si',
'':'wu',
'':'liu',
'':'qi',
'':'ba',
'':'jiu',
'.':'dian'
} content = input("请输入数字:") #
# 获取到字符串中的每一个字符
for c in content:
print(dic[c], end=" ") # 3. 车牌区域划分, 现给出以下车牌. 根据车牌的信息, 分析出各省的车牌持有量.
cars = ['鲁A32444','鲁B12333','京B8989M','黑C49678','黑C46555','沪B25041', "吉H12345"]
locals = {'沪': '上海', '京': "北京", '黑': '黑龙江', '鲁': '山东', '鄂': '湖北', '湘': '湖南', "吉":"吉林"} result = {} # 1. 获取导每一个车牌子
for car in cars: # '鲁A32444 鲁B12333'
# 车牌 简称
jian = car[0] # '鲁'
# 省份
prov = locals[jian] # '山东' if result.get(prov): # 已经出现过该车牌
result[prov] += 1 # result[prov] = result[prov] + 1 else: # 当前车牌还没出现过
result[prov] = 1 print(result) # 4.干掉主播. 现有如下主播收益信息, 按照要求, 完成相应操作:
zhubo = {'卢本伟':122000, '冯提莫':189999, '金老板': 99999, '吴老板': 25000000, 'alex': 126}
print(list(zhubo))
# 平均收益
sum = 0
for v in zhubo.values():
sum += v avg = sum / len(zhubo) # 平均收益 500W
# print(avg) # 2. 干掉收益小于平均值的主播.
# 错的
# for k, v in zhubo.items():
# if v < avg:
# zhubo.pop(k) # dictionary changed size during iteration # 解决. 把要删除的主播找到. 放在一个列表中
lst = ['卢本伟', "冯提莫", '金老板', 'alex'] # 准备要删除的主播
for k, v in zhubo.items(): # '卢本伟':122000
if v < avg: # 收益小于平均值的主播
lst.append(k) # 循环这个列表. 删除主播
for el in lst: # el就是你刚才保存的key
zhubo.pop(el) print(zhubo) # 3. 干掉卢本伟
zhubo.pop("卢本伟")
print(zhubo)

小数据池/is和==/再谈编码作业的更多相关文章

  1. 小数据池 is和== 再谈编码

    昨日回顾 上节课内容回顾 1. 字典 {key:value, key:value.....} 成对的保存数据 字典没有索引. 不能切片, 字典的key必须是可哈希的.不可变的 1. 增加: dic[新 ...

  2. python -- 小数据池 is和 == 再谈编码

    1.小数据池 python程序是由代码块构成的,一个代码块的文本作为python程序的执行单元. 代码块:一个模块,一个函数,一个类,甚至一个command命令都是一个代码块,一个文件也是一个代码块, ...

  3. python小数据池 is和 == 再谈编码

    1. 小数据池, id() 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. id() 查看变量的内存地址 2. is和==的区别 is 比较的是内存地址 == ...

  4. python基础之小数据池,is和==区别 编码问题

    主要内容 小数据池,is和==区别 编码问题 小数据池 一种缓存机制,也称为驻留机制,是为了能更快提高一些字符串和整数的处理速度is 和 == 的区别 == 主要指对变量值是否相等的判断,只要数值相同 ...

  5. python基础之小数据池、代码块、编码和字节之间换算

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  6. python基础之小数据池、代码块、编码

    一.代码块.if True: print(333) print(666) while 1: a = 1 b = 2 print(a+b) for i in '12324354': print(i) 虽 ...

  7. id,is的用法,小数据池的概念及编码知识进阶

    一:id 查询内存地址 name = 'alex' print(id(name)) li = [1,2,3] print(id(li)) 二:is  判断的是内存地址 name1 = 'alex@' ...

  8. python之路--小数据池,再谈编码,is和 == 的区别

    一 . 小数据池 # 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. # id() 查看变量的内存地址 s = 'attila' print(id(s)) 二 ...

  9. python的小数据池 is和== 以及再谈编码

    ---恢复内容开始--- 1. 小数据池, id() 小数据池针对的是: int, str, bool 在py文件中几乎所有的字符串都会缓存. id() 查看变量的内存地址 # a = 10 # b ...

随机推荐

  1. Outlook 邮件助手

    Outlook 邮件助手 1 Overview 2 C# 编程 3 Outlook 设置 3.1 Outlook 2013 3.2 Outlook 2010 1 Overview 本章将示例如何开发一 ...

  2. C# vb .net实现过度曝光效果滤镜

    在.net中,如何简单快捷地实现Photoshop滤镜组中的过度曝光效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第 ...

  3. 2019 央视网java面试笔试题 (含面试题解析)

    本人3年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.央视网等公司offer,岗位是Java后端开发,最终选择去了央视网. 面试了很多家公司,感觉大部分公司考察的点都差 ...

  4. P2472 [SCOI2007]蜥蜴 (最大流)

    题目 P2472 [SCOI2007]蜥蜴 解析 这个题思路比较清晰,本(qi)来(shi)以(jiu)为(shi)无脑建图跑最大流,结果挂了,整了一个小时后重新建图才过的. 建立一个超级源点和一个超 ...

  5. Matlab观察者模式

    要点: 1.服务端(Subject)维护一个观察者的列表,以便能够向所有的观察者(Observer)推送信息 2.观察者可以获取服务端的状态 3.服务端和观察者可抽象,可以有多个不同实现 Subjec ...

  6. AudioToolbox--利用AudioQueue音频队列,通过缓存对声音进行采集与播放

    都说iOS最恶心的部分是流媒体,其中恶心的恶心之处更在即时语音. 所以我们先不谈即时语音,研究一下,iOS中声音采集与播放的实现. 要在iOS设备上实现录音和播放功能,苹果提供了简单的做法,那就是利用 ...

  7. linux修改当前用户环境变量永久生效

    在linux环境中,修改当前用户环境变量,且永久生效的方法如下. 1,编辑~/.bash_profile文件 1 2 3 # Get the aliases and functions 4 if [ ...

  8. Linux内核:关于中断你需要知道的

    1.中断处理程序与其他内核函数真正的区别在于,中断处理程序是被内核调用来相应中断的,而它们运行于中断上下文(原子上下文)中,在该上下文中执行的代码不可阻塞.中断就是由硬件打断操作系统. 2.异常与中断 ...

  9. Hive性能优化【核心思想、运行模式、并行计算】

    一.核心思想 把HQL当做MapReduce程序去优化. 注意,以下SQL不会转为MapReduce执行: 1.select仅查询本表字段. 2.where仅对本表字段做条件过滤. 二.启动Hive ...

  10. Oracle 11g新特性direct path read引发的系统停运故障诊断处理

    黎俊杰 | 2016-07-28 14:37 声明:部分表名为了脱敏而用XX代替 1.故障现象 (1)一个业务系统输入用户名与密码后无法进入首页,表现为一直在运行等待,运行缓慢 (2)整个系统无法正常 ...