# 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. 华为、华三 交换机 开启SNMP 简单网络管理协议

    [huawei]snmp-agent //使能SNMP代理 [huawei]snmp-agent sys-info version all //允许所有SNMP 支持 协议 [huawei]snmp- ...

  2. 手把手教你打造高效的 Kubernetes 命令行终端

    Kubernetes 作为云原生时代的操作系统,熟悉和使用它是每名用户的必备技能.本文将介绍一些提高操作 Kubernetes 效率的技巧以及如何打造一个高效的 Kubernetes 命令行终端的方法 ...

  3. ASP.NET SignalR 系列(一)之SignalR介绍

    一.SignalR介绍 ASP.NET SignalR 是一个面向 ASP.NET 开发人员的库,可简化将实时 web 功能添加到应用程序的过程. 实时 web 功能是让服务器代码将内容推送到连接的客 ...

  4. js预编译环节 变量声明提升 函数声明整体提升

    预编译四部曲 1.创建AO对象 2.找形参和变量声明,将变量和形参名作为AO属性名,值为undefined 3.将实参和形参统一 4.在函数体里面找函数声明,值赋予函数体 function fn(a) ...

  5. 继 首次使用DoNetCore EFCore DbFirst 更新数据实体

    //EFCore DB First 步骤 //第一步:Install-Package Microsoft.EntityFrameworkCore.SqlServer -version 2.1.1 // ...

  6. JS 小工具 MYSQL WHERE IN条件 去掉换行符(列转行)

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  7. docker中基于centos镜像部署lnmp环境 php7.3 mysql8.0 最新版

    Docker是一个开源的应用容器引擎,基于Go语言并遵从Apache2.0协议开源. Docker可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的Linux机器上 ...

  8. MySQL Replication--复制基本工作原理

    复制工作原理(1) master将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events):(2) slave将master的binary lo ...

  9. Docker容器网络篇

    Docker容器网络篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Docker的网络模型概述 如上图所示,Docker有四种网络模型: 封闭式网络(Closed conta ...

  10. 移动端初始化常用JavaScript代码

    移动端常用js分享 1.把手机屏幕等分10分(我用的是这种形式),用rem来计算那些需要自适应. <script type="text/javascript"> (fu ...