python之道07
2.用户输入一个数字,判断一个数是否是水仙花数。
水仙花数是一个三位数, 三位数的每一位的三次方的和还等于这个数. 那这个数就是一个水仙花数, 例如: 153 = 13 + 53 + 3**3
答案
# 方法一:
while 1:
my_input = input('>>>')
li = list(my_input)
sum = int(li[0])**3 + int(li[1])**3 + int(li[-1])**3
if sum == int(my_input):
print('是水仙花')
else:
print('不是水仙花')
'''
个人见解
使用while循环列表加切片,将列表中的每个值都切出来进行计算,这种方法能实现但是比较low,这个可以持续输入判断,是不是水仙花数,常见的水仙花三位数的有4个:153,370,371,407
'''
# 方法二:
count = 0
my_input = input('>>>')
for i in my_input:
x = int(i)
count += x ** 3 # 1 #5**3 +1 #5**3+3**+1
if count == int(my_input):
print('是水仙花')
else:
print('不是水仙花')
'''
输出结果
>>>370
是水仙花
>>>125
不是水仙花
'''
'''
个人见解
该方法简单高效,推荐使用
'''
3.请说出下面a,b,c三个变量的数据类型。
a = ('太白金星')
b = (1,)
c = ({'name': 'barry'})
答案
a是字符型
b是元组
c是字典
4.按照需求为列表排序:
l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
从大到小排序
答案
l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
l1.sort(reverse=True)
print(l1)
'''
输出结果
[9, 8, 7, 6, 5, 4, 3, 2, 1]
'''
从小到大排序
答案
l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
l1.sort()
print(l1)
'''
输出结果
[1, 2, 3, 4, 5, 6, 7, 8, 9]
'''
反转l1列表
答案
l1 = [1, 3, 6, 7, 9, 8, 5, 4, 2]
l1.reverse()
print(l1)
'''
输出结果
[2, 4, 5, 8, 9, 7, 6, 3, 1]
'''
5.看代码写结果:
dic = dict.fromkeys('abc',[])
dic['a'].append(666)
dic['b'].append(111)
print(dic)
答案
{'a': [666, 111], 'b': [666, 111], 'c': [666, 111]}
'''
个人见解
第一次做错了,字典中的列表是可变的,一个变都变
'''
6.完成彩票36选7的功能. 从36个数中随机的产生7个数. 最终获取到7个不重复的数据作为最终的开奖结果.
随机数:
from random import randint
randint(0, 20) # 0 - 20 的随机数
答案
from random import randint
s = set()
while int(len(s)) < 7:
s.add(randint(0,36))
print(s)
'''
输出结果
{0, 32, 2, 16, 17, 21, 25}
'''
# 讲解方法:
from random import randint
s = set() # 设置一个集合
while len(s) != 7: # 如果集合的长度不等于7,就将1,36之间的随机数添加到集合中,等于7就停止添加
s.add(randint(1,36))
print(s)
7.字符串和字节转换
s1 = '太白金星'
将s1转换成utf-8的bytes类型。
答案
s1 = '太白金星'
s2 = s1.encode('utf-8')
print(s2)
'''
b'\xe5\xa4\xaa\xe7\x99\xbd\xe9\x87\x91\xe6\x98\x9f'
'''
将s1转化成gbk的bytes类型。
答案
s1 = '太白金星'
s2 = s1.encode('gbk')
print(s2)
'''
b'\xcc\xab\xb0\xd7\xbd\xf0\xd0\xc7'
'''
b = b'\xe5\xae\x9d\xe5\x85\x83\xe6\x9c\x80\xe5\xb8\x85'
b为utf-8的bytes类型,请转换成gbk的bytes类型。
答案
b = b'\xe5\xae\x9d\xe5\x85\x83\xe6\x9c\x80\xe5\xb8\x85'
b1 = b.decode('utf-8')
print(b1)
'''
宝元最帅
'''
b2 = b1.encode('gbk')
print(b2)
8.把列表中所有姓周的⼈的信息删掉(升级题:此题有坑, 请慎重):
lst = ['周⽼⼆', '周星星', '麻花藤', '周扒⽪']
结果: lst = ['麻花藤']
答案
# 方法一:
lst = ['周⽼⼆', '周星星', '麻花藤','周扒⽪']
new_li = []
for i in lst:
if '周' in i:
new_li.append(i)
for i in new_li:
lst.remove(i)
print(lst)
'''
['麻花藤']
'''
# 方法二:
lst = ['周⽼⼆', '周星星', '麻花藤','周扒⽪']
new_li = []
for i in lst:
if i[0] == '周':
new_li.append(i)
for i in new_li:
lst.remove(i)
print(lst)
# 方法三:
lst = ['周⽼⼆', '周星星', '麻花藤','周扒⽪']
for i in range(len(lst)-1,-1,-1):
if lst[i][0] == '周':
lst.pop(i) # 倒序删除
print(lst)
9.⻋牌区域划分, 现给出以下⻋牌. 根据⻋牌的信息, 分析出各省的⻋牌持有量. (升级题)
cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041'.....]
locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南','京':'北京'}
结果: {'⿊⻰江':2, '⼭东': 2, '北京': 1,'上海':1}
答案
cars = ['鲁A32444','鲁B12333','京B8989M','⿊C49678','⿊C46555','沪 B25041']
locals = {'沪':'上海', '⿊':'⿊⻰江', '鲁':'⼭东', '鄂':'湖北', '湘':'湖南','京':'北京'}
dic = {}
lst = []
for i in cars:
lst.append(i[0])
for k,v in locals.items():
if k in lst:
dic.setdefault(k,lst.count(k))
print(dic)
'''
输出结果
{'沪': 1, '黑': 2, '鲁': 2, '京': 1}
'''
# 讲解方法
dic1 = {}
for i in cars:
# print(i[0]) 鲁鲁京⿊⿊沪
dic1[locals[i[0]]] = dic1.get(locals[i[0]],0) +1 #意思就是get到就+1 get不到就返回0
print(dic1)
'''
{'⼭东': 2, '北京': 1, '⿊⻰江': 2, '上海': 1}
'''
10.⼲掉主播. 现有如下主播收益信息: zhubo = {'卢本伟':122000, '冯提莫':189999, '⾦⽼板': 99999, '吴⽼板': 25000000, 'alex': 126} 1. 计算主播平均收益值 2. ⼲掉收益⼩于平均值的主播 3. ⼲掉卢本伟
答案
1.
zhubo = {'卢本伟':122000, '冯提莫':189999, '⾦⽼板': 99999, '吴⽼板': 25000000, 'alex': 126}
count = 0
for k,v in zhubo.items():
count += v
print(count / len(zhubo))
2.
zhubo = {'卢本伟':122000, '冯提莫':189999, '⾦⽼板': 99999, '吴⽼板': 25000000, 'alex': 126}
count = 0
lst = []
for k,v in zhubo.items():
count += v
avg = count / len(zhubo)
for k,v in zhubo.items():
if v < avg:
lst.append(k)
for i in lst:
zhubo.pop(i)
print(zhubo)
'''
{'吴⽼板': 25000000}
'''
3.
# 方法一:
zhubo = {'卢本伟':122000, '冯提莫':189999, '⾦⽼板': 99999, '吴⽼板': 25000000, 'alex': 126}
lst = []
for k,v in zhubo.items():
if v == 122000:
lst.append(k)
for i in lst:
zhubo.pop(i)
print(zhubo)
'''
{'冯提莫': 189999, '⾦⽼板': 99999, '吴⽼板': 25000000, 'alex': 126}
'''
'''
这个实在有点儿周了
'''
# 方法二 # 删除卢本伟
zhubo = {'卢本伟':122000, '冯提莫':189999, '⾦⽼板': 99999, '吴⽼板': 25000000, 'alex': 126}
zhubo.pop("卢本伟")
print(zhubo)
python之道07的更多相关文章
- Python补充06 Python之道
作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录 ...
- 彩蛋 Python之道
彩蛋 Python之道 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 使用下面的语句可以调出Python中的一个彩蛋, impo ...
- 【转】Python之道
作者:Vamei 出处:http://www.cnblogs.com/vamei Python有一个彩蛋,用下面语句调出: import this 该彩蛋的文档记录于PEP 20. 语句执行之后,终端 ...
- Python之道(一)之安装Python
"Python之道"首先介绍一下在windows系统下怎样安装Python开发环境. (1)下载MSI安装文件 进入网址www.python.org,点击Downloads进入下载 ...
- Python web前端 07 函数及作用域
Python web前端 07 函数及作用域 一.函数 1.有名函数和匿名函数 #函数是由事件驱动的或者当它被调用时执行的可重复使用的代码块 #函数就是包裹在花括号里面的代码块,前面使用了关键字fun ...
- 一入python深似海--python之道
python社区不乏幽默.先来看"python之道"这首诗. 导入this包: import this 输出是一首诗,这首诗总结了Python的风格,能够指导Python程序猿的编 ...
- Python 30道高频面试题及详细解答
开学啦,开学啦!周末坐地铁的时候看到很多同学推着行李箱,拎着大包小包的穿梭在人群中,哎新的一学期又开始啦,同时也意味着很多同学要准备毕业啦,尤其是准大四,准研三的同学. 今年的招聘行情并不乐观,小公司 ...
- Python 多道技术以及进程、线程和协程
多道技术 并发:看起来像同时运行 并行:真正意义上的同时运行,并行肯定是并发 空间的复用与时间复用 空间复用 多个程序用一套计算机硬件 时间复用 程序切换节省时间 ''' 切换(cup)分为两种情况 ...
- .Net程序员Python之道---Python基础
最近对动态语言比较好奇.所以选择了学习Python这门语言.话不多说开始学习笔记. 一. Python 基础: 1. print对Python进行数据输出, #号后面是队友的输出结果, 通过encod ...
随机推荐
- CSA Round #53 (Div. 2 only) Histogram Partition(模拟)
传送门 题意 给出一个数组A,你有一个数组B(一开始全为0),询问多少次操作后B转化为A 一次操作:选择一段区间,加上某个正整数 分析 构建一个栈, 输入一个数,若当前栈空或栈顶元素比输入小,则加入栈 ...
- Codevs 1018 单词接龙
1018 单词接龙 2000年NOIP全国联赛普及组NOIP全国联赛提高组 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描 ...
- 企业级应用,如何实现服务化三(dubbo入门案例)
今天是六一儿童节,从千里之外的广州,回到了贵州老家,真好!好山好水好心情,好了接着写点东西.这是企业级应用,如何实现服务化系列的第三篇.在上一篇:企业级应用,如何实现服务化二(dubbo架构)中,认识 ...
- 51Nod 1127 最短的包含字符串 (尺取法)
#include <iostream> #include <algorithm> #include <string> #include <cstring> ...
- js_jquery
引用 jQuery 是一个 JavaScript 库,不需要安装,直接引用就行 <!-- jQuery --> <script src="/static/vendors/j ...
- AKOJ-2021-逆序对(归并,二分)
链接:https://oj.ahstu.cc/JudgeOnline/problem.php?id=2021 题意: 在一个排列中,如果一对数的前后位置与大小顺序相反,即前面的数大于后面的数,那么它们 ...
- ssrs 里 表头 分页后显示
1. 列组,箭头,高级 2.点击行组,静态 3. 设置静态行组 属性
- Longest Palindromic Substring笔记
这是一道在leetcode上看到的题目 一开始,我能想到的思路是蛮力法: 就遍历每个字符,然后对每个字符都尝试从1到n的长度,看有没有回文串,并记录以该字符起始的回文串的最大长度.这个思路其实没有上手 ...
- B. Apple Tree 暴力 + 数学
http://codeforces.com/problemset/problem/348/B 注意到如果顶点的数值确定了,那么它分下去的个数也就确定了,那么可以暴力枚举顶点的数值. 顶点的数值是和LC ...
- javascript ES 6 class 详解
Introduction 上篇文章大致介绍了一些ES6的特性,以及如何在低版本浏览器中使用它们.本文是对class的详解. 译自Axel Rauschmayer的Classes in ECMAScri ...