002 exercises
求列表全排列
lst = [1,2,3]
l1 = [(x,y,z) for x in lst for y in lst for z in lst if x != y if y != z if x != z]
print(l1)
给定一个非负整数num,重复的加每一位,直到最后只剩下一位
例如: num = 38,计算过程如下:
3 + 8 =11
1 + 1 = 2
最后输出结果为2
#递归
def add(num):if len(str(num)) == 1:return numret = 0for i in str(num):ret += int(i)return retreturn(add(ret))
print(add(8))
#累加器
def add(num):ret = 0for i in str(num):ret += int(i)return retdef cacl(num):ret = numwhile ret >= 10:ret = add(ret)return ret
print(cacl(38))#使用列表解析优化版
def add(num):return sum([int(x) for x in str(num)])
def cacl(num):ret = numwhile ret >= 10:ret = add(ret)return ret
print(cacl(38))
寻找happy number
happy number值,对一个数字的每一位取平方后相加,对得到的结果反复执行上一步,直到最后只有一位,如果最后结果为1,这个数就为happy number.
例如 19 就是happy number.因为
1^2 + 9^2 = 82
8^2 + 2^2 = 68
6^2 + 8^2 = 100
1^2 + 0^2 + 0^2 = 1
def add(num):ret = 0for i in str(num):ret += (int(i) ** 2)return retdef happy_number(num):results = {num}ret = numwhile ret >= 10:ret = add(ret)if ret in results:return Falseresults.add(ret)return ret == 1for i in range(1,10000):if happy_number(i):print('{0} is happy number'.format(i))
#使用列表解析优化上版
def add(num):return sum([int(x) ** 2 for i in str(num)])def happy_number(num):results = {num}ret = numwhile ret >= 10:ret = add(ret)if ret in results:return Falseresults.add(ret)return ret == 1for i in range(1,10000):if happy_number(i):print('{0} is happy number'.format(i))
装饰器
写一个带一个default_user 参数的装饰器,此装饰器检查传入函数的关键字参数,如果没有名为user的参数,使用default_user 作为user 参数传递给函数.
例如:
@inject_user(default_user=comyn)
def do_something(*args,**kwargs):
print(kwargs['user'])
调用do_something() 时能输入comyn
from functools import wraps
def inject_user(default_user):def func(fn):@wraps(fn)def deco(*args, **kwargs):if 'user' not in kwargs.keys():kwargs['user'] = default_userreturn fn(*args, **kwargs)return decoreturn func@inject_user(default_user='comyn')
def do_somethings(*args, **kwargs):print(kwargs['user'])do_somethings()
列表匹配
写一个find函数,传入两个列表,其中origin和iterms, items具有默认值[3, 4].查找iterms中每个元素在origin中的所有位置.返回值为字典,key是iterms中的元素,value是位置的元组.
例如:
find([2, 3, 5, 3, 4, 2, 7, 4]) 返回{3:(1, 3), 4:(4, 7)}
def find(origin,items=[3, 4]):fin = dict()for x in iter(items):lst = list()for k, v in enumerate(origin):if x == v:lst.append(k)fin[x] = tuple(lst)return finfind([2, 3, 5, 3, 4, 2, 7, 4])#使用列表解析优化
def find(origin,items=[3, 4]):fin = dict()for x in items:lst = list()[lst.append(k) for k, v in enumerate(origin) if x == v]fin[x] = tuple(lst)return finfind([2, 3, 5, 3, 4, 2, 7, 4])
转载于:https://blog.51cto.com/390892467/1749770
002 exercises相关推荐
- exercises of nginx and images,more efforts, more happiness
exercises of nginx and images 前言 接上一篇的小练习啦: nginx 和 nginx 配置 大家动手敲一敲哈>–< 一.nginx 操作练习: 练习: 1.下 ...
- Datawhale组队学习周报(第002周)
Datawhale组队学习周报(第002周) (一)当下 本周(02月22日~02月28日),我们正在进行5门开源内容的组队学习.一共建立了6个学习群,参与人数1080人.到目前为止,有4门课开源内容 ...
- 《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”
20年前,伴随着互联网打开信息化大门,技术人成为新时代的开拓者.在时代的召唤下,CSDN于2001年推出国内首个面向IT人员的专业杂志--<程序员>,成为一代代开发者的技术启蒙.20年后的 ...
- SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务)
2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务) 一.大致介绍 微服务与微服务之间通过 ...
- 基础002. Editplus编辑远程文件
本文"植物微生物组"公众号原创,ID: plantmicrobiome 作者:刘永鑫 编辑:翟志文 原文链接:基础002. Editplus编辑远程文件 Editplus 远程打开 ...
- 职场思想分享002 | 入职第一个月工资这样花,一年内工资至少再涨50%!
今天为大家分享老男孩核心思想108招之第002招:入职第一个月工资这样花,一年内工资至少再涨50%! --如果你不是第一次工作,那就按跳槽后入职的第一个月计算吧! 不管生活多么的困难,新人入社会以后入 ...
- Java8 Lamdba表达式 002
本篇将讲述lamdba表达式的排序,本例包括一个Player对象的集合[稍后定义],通过每一个player的分数高低对列表的player进行排序.类定义001例如以下 public class Sor ...
- NLP-基础知识-002 (语言模型)
一.Noisy Channel Model p(text|source) = k * p(source|text)P(text) ----> Noisy Channel Model主要通过贝叶斯 ...
- Python:每日一题002
题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...
最新文章
- RabbitMQ—队列迁移插件shovel的使用
- python判断ip能否ping通_使用Python测试Ping主机IP和某端口是否开放的实例
- spdk/dpdk 编译相关问题汇总
- qt自定义窗口,其绘制的窗口边框线显示不全
- 【后台任务】将工作请求发送到后台服务(11)
- 判定考试成绩程序java_请大家务必按照平时交作业的要求,按时提交!否则会影响您的期末考试成绩。_学小易找答案...
- c语言表达式10 6的结果,C语言表达式(++i)+(++i)+(++i)结果多少?
- Pandas Index 转换排序联表选取
- 如何写出高性能的SQL语句,及如何进行SQL性能分析与调优
- 【Angular 4】 Cannot find module 'rxjs-compat'
- 华语歌坛年度压轴 王力宏新专辑《心中的日月》
- Prezi 7 大图形设计技巧,让视觉思维落地生根
- [转]NHibernate:many-to-one/one-to-many/many-to-many关系映射
- 上传文件中文乱码问题修复
- 任意顺序的四个点获取矩形的中心点,长宽和角度
- 微信刷票python代码_微信刷票漏洞详解, Python脚本实现一秒破万!
- 基于C#的图片浏览及显示功能(源码)
- 如何解决MySql报错:only_full_groupBy
- log4j安全漏洞fix--快速答疑处理篇。
- iperf3 网络测速工具 —— 筑梦之路