• 求列表全排列

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相关推荐

  1. exercises of nginx and images,more efforts, more happiness

    exercises of nginx and images 前言 接上一篇的小练习啦: nginx 和 nginx 配置 大家动手敲一敲哈>–< 一.nginx 操作练习: 练习: 1.下 ...

  2. Datawhale组队学习周报(第002周)

    Datawhale组队学习周报(第002周) (一)当下 本周(02月22日~02月28日),我们正在进行5门开源内容的组队学习.一共建立了6个学习群,参与人数1080人.到目前为止,有4门课开源内容 ...

  3. 《新程序员002》图书正式上市! 从“新数据库时代”到“软件定义汽车”

    20年前,伴随着互联网打开信息化大门,技术人成为新时代的开拓者.在时代的召唤下,CSDN于2001年推出国内首个面向IT人员的专业杂志--<程序员>,成为一代代开发者的技术启蒙.20年后的 ...

  4. SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务)

    2019独角兽企业重金招聘Python工程师标准>>> SpringCloud(第 002 篇)简单电影微服务类(消费方,而提供方为用户微服务) 一.大致介绍 微服务与微服务之间通过 ...

  5. 基础002. Editplus编辑远程文件

    本文"植物微生物组"公众号原创,ID: plantmicrobiome 作者:刘永鑫 编辑:翟志文 原文链接:基础002. Editplus编辑远程文件 Editplus 远程打开 ...

  6. 职场思想分享002 | 入职第一个月工资这样花,一年内工资至少再涨50%!

    今天为大家分享老男孩核心思想108招之第002招:入职第一个月工资这样花,一年内工资至少再涨50%! --如果你不是第一次工作,那就按跳槽后入职的第一个月计算吧! 不管生活多么的困难,新人入社会以后入 ...

  7. Java8 Lamdba表达式 002

    本篇将讲述lamdba表达式的排序,本例包括一个Player对象的集合[稍后定义],通过每一个player的分数高低对列表的player进行排序.类定义001例如以下 public class Sor ...

  8. NLP-基础知识-002 (语言模型)

    一.Noisy Channel Model p(text|source) = k * p(source|text)P(text) ----> Noisy Channel Model主要通过贝叶斯 ...

  9. Python:每日一题002

    题目: 企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...

最新文章

  1. RabbitMQ—队列迁移插件shovel的使用
  2. python判断ip能否ping通_使用Python测试Ping主机IP和某端口是否开放的实例
  3. spdk/dpdk 编译相关问题汇总
  4. qt自定义窗口,其绘制的窗口边框线显示不全
  5. 【后台任务】将工作请求发送到后台服务(11)
  6. 判定考试成绩程序java_请大家务必按照平时交作业的要求,按时提交!否则会影响您的期末考试成绩。_学小易找答案...
  7. c语言表达式10 6的结果,C语言表达式(++i)+(++i)+(++i)结果多少?
  8. Pandas Index 转换排序联表选取
  9. 如何写出高性能的SQL语句,及如何进行SQL性能分析与调优
  10. 【Angular 4】 Cannot find module 'rxjs-compat'
  11. 华语歌坛年度压轴 王力宏新专辑《心中的日月》
  12. Prezi 7 大图形设计技巧,让视觉思维落地生根
  13. [转]NHibernate:many-to-one/one-to-many/many-to-many关系映射
  14. 上传文件中文乱码问题修复
  15. 任意顺序的四个点获取矩形的中心点,长宽和角度
  16. 微信刷票python代码_微信刷票漏洞详解, Python脚本实现一秒破万!
  17. 基于C#的图片浏览及显示功能(源码)
  18. 如何解决MySql报错:only_full_groupBy
  19. log4j安全漏洞fix--快速答疑处理篇。
  20. iperf3 网络测速工具 —— 筑梦之路

热门文章

  1. leetcode35 插入的位置
  2. 推荐算法---FM,协同过滤
  3. 科沃斯扫地机器人风扇模块_扫地机器人不能开机,不能关机,风扇不转
  4. C++primer第九章 顺序容器 9.1 顺序容器概述 9.2容器库概览
  5. 科目三路考需准备事项
  6. fread rb与r,wb,w的区别
  7. excel 表格导入 - java 实现
  8. Biztalk Server 2006安装配置
  9. android viewpage预加载和懒加载问题
  10. Spring Boot结合thymeleaf