# 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. kafka使用SASL_PLAINTEXT做用户认证

    使用SASL/PLAIN认证 server端1.配置brokerkafka_server_jaas.conf内容KafkaServer {org.apache.kafka.common.securit ...

  2. 【代码优化】C#遍历所有控件(Control方法)

    直接上代码: /// <summary> /// 判断价格是否可以购买技能的方法 /// </summary> /// <param name="btnBuyA ...

  3. java之hiberante之集合映射之list映射

    这篇讲解 集合映射之List映射 1.通常对于集合,在hibernate中的处理都是使用set来完成.但是hibernate也提供了对于其他几种集合的映射. 在这里实现List的映射,List是有序的 ...

  4. 自己使用的jquery公用common.js

    /*解决ie8中js数组没有indexOf方法*/ jQuery.extend({ exportResport : function(url, method, params){ var paramCo ...

  5. P3121 [USACO15FEB]审查(AC自动机)

    题目: P3121 [USACO15FEB]审查(黄金)Censoring (Gold) 解析: 多字符串匹配,首先想到AC自动机 建立一个AC自动机 因为有删除和拼接这种操作,考虑用栈维护 顺着文本 ...

  6. 【DATAGUARD】物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置

    [DATAGUARD]物理dg配置客户端无缝切换 (八.1)--Data Guard Broker 的配置 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读 各位技 ...

  7. Mysql 常见数据类型及约束

    Mysql 常见数据类型及约束 最近在跟几个不太懂技术的同事(哈哈, 其实我也不懂), 要整一个数据库项目, 然后前端, 后端, 都没有像样的, 数据输出还不是由我们控制.... 这可难受了, 然后总 ...

  8. Oracle 数据块

    以emp表为例 SYS@ prod>select * from scott.emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO --------- ...

  9. CENTOS6.5源码安装LNMP

    CENTOS6.5源码安装LNMP 一.安装前准备 ########################################################################## ...

  10. 卓越Code第一次作业

    第一次团队作业 序言 所属课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign 作业要求 https://w ...