Some Python Tricks】的更多相关文章

赵斌 - APRIL 29, 2015 在 python 代码中可以看到一些常见的 trick,在这里做一个简单的小结. json 字符串格式化 在开发 web 应用的时候经常会用到 json 字符串,但是一段比较长的 json 字符串是可读性较差的,不容易看出来里面结构的. 这时候就可以用 python 来把 json 字符串漂亮的打印出来. root@Exp-1:/tmp# cat json.txt {"menu": {"breakfast": {"E…
1. cities = ['Marseille', 'Amsterdam', 'New York', 'Londom'] # the good way for i, city in enumerate(cities): print(i, city) 2. x_list = [1, 2, 3] y_list = [2, 4, 6] # the good way for x, y in zip(x_list, y_list): print (x, y) 3. x = 10 y = -10 # the…
__slots__是在python 2.2开始引入的一个新特性, 我们来看一下官方给出的解释. This class variable can be assigned a string, iterable, or sequence of strings with variable names used by instances. If defined in a new-style class, __slots__ reserves space for the declared variables…
python作为一个动态语言, 本身学习曲线比较平滑, 效率相比起来会比c++和java低一些. 脚本语言都是运行时编译的, 这个对于效率的影响是非常大的. 我借用参考1的代码, 加了点代码import time import time class Timer(object): def __init__(self): pass def __enter__(self): self.start = time.time() def __exit__(self, exception_type, exce…
我们都知道, python是一个强类型的语言, 也是一个动态类型的语言. 但是在python2.X系列中, 这个强类型是需要打折扣的, 是非常接近强类型. 我们来看下面的代码片段 In [1]: 'a' < 1000 Out[1]: False 字符串和整型居然可以比较, 这个是个非常奇怪的行为. 强类型的语言是不应该允许有这种类型间的隐式转换的, 所以这种比较应该是报错的才对. Java就是这样的一个语言. 不过强类型的语言中, 是可以各种数字类型之间存在隐式转换的. python的这个字符串…
简介 with是从2.5版本引入的一个语法. 这个语法本身是为了解决try..finally繁琐的释放各类资源(文件句柄, Lock等)的问题. 如果想在旧版本中使用这个功能, 直接引入future模块就可以. from __future__ import with_statement 举例简单说明一下没有with和有with的代码区别 try: dict_file = open("dict_file_path") for line in dict_file: print line,…
每个人在使用python的过程中都会遍历list和dict. List遍历 最常用最简单的遍历list的方法 a = ["a", "b", "c", "d"] # simple iterate for i in a: print i 但是, 如果我需要拿到list的index, 很多人可能会这样写 a = ["a", "b", "c", "d"]…
Python的method可以设置默认参数, 默认参数如果是可变的类型, 比如list, map等, 将会影响所有的该方法调用. 下面是一个简单的例子 def f(a=None, l=[]): if not a: return l l.append(a) return l if __name__ == "__main__": print f("a") print f("b") print f("b") print f(l=[]…
python是动态语言, 无需声明变量即可使用. 传递一个tuple, list或者dict等等方式, 有时候这种方式的使用不是很好. 对于tuple和list来说都是用下标的访问方式(即使用[]), 这种方式显得不够自然, 阅读代码的时候需要知道index对应的变量含义. 其实, 在python中有很多方式可以动态定义一个新变量, 让代码更具可读性. 动态定义一个新变量, 最简单的方式是使用locals()或者globals(), 两个方法的返回值是dict, 可以通过修改dict来增加新变量…
python 的包管理很不好用,理解费力,故偷懒,模块仍按文件布局,写一个合并脚本将各个模块合并输出到一个脚本文件,分别管理,合并输出,回避了加载模块的问题 f-format 仅在python 3.6及以上版本支持 装饰器是个好东西,推荐用于辅助功能的实现,不干扰代码主要逻辑的表达,比如实现日志记录等功能 反射是个好东西,可以用于自行查找相关函数并调用,在实现可选功能时可以使用,比如可选参数验证流程 匿名参数是个好东西,可以统一接口代码,方便维护,配合参数验证使用更安全…
python 原生语法不支持 switch,体现了 Python 大道至简的设计思路,有时为了避免啰嗦的 if elif等判断语句,我们可以用字典来代替 switch 的各分支,也即建立表达式和操作的映射. def add(x, y): return x + y def sub(x, y): return x - y def mul(x, y): return x*y def div(x, y): return float(x)/y def calc(x, o, y): return opera…
使用 reduce # 比如计算 9 的阶乘 >> reduce(lambda x, y: x*y, range(1, 9+1)) 362880 当然这里的 reduce 直接返回具体的数值,是 Python 2.7 中的用法.Python 3.x 环境,对 reduce 进行较大的改变,应当注意其中的转变.…
多次 import import numpy as np, matplotlib.pyplot as plt ndarray 的强制类型转换 v = v.astype(np.int) python 的命名规范 类:首字母大写: 方法:首字母小写 txt.set_path_effects():单词之间用下划线分开:…
启用 WinRM 远程服务: winrm quickconfig 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知道如何去学习更加高深的知识.那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!QQ群:1097524789 查看 WinRM 服务监听状态: winrm e winrm/config/listener C:\Windows\system32>winrm…
>> from datetime import datetime >> now = datetime.now() >> now.strftime('%Y-%m-%d') '2018-01-29' 如果此时我们想转换为 2018-1-29的形式,有如下的两种方式: 法 1:分别转换为 int 型以消除前导 0: year = str(int(now.strftime('%Y'))) month = str(int(now.strftime('%m'))) day = st…
0. 对 list 镜像复制,a = [1, 2, 3] ⇒ [1, 2, 3, 3, 2, 1] a*2 ⇒ a = [1, 2, 3, 1, 2, 3] a.extend(reversed(a)) 1. list comprehension 顺序 二层 for 循环的顺序: [(i, j) for i in range(4) for j in range(i)] # 两个 for 循环,是从左到右进行解析的: # 也即左侧是外侧循环,越向右越表示内层循环 [(1, 0), (2, 0), (…
使用循环: 阶乘的实现: def fac(n): r = 1. for i in range(1, n+1): r *= i return r 排列:Anm=m!n!=(m−n+1)⋯m def perm(m, n): r = 1. for i in range(n): r *= m-i return r 组合:(mn)=m!n!(m−n)!=Anmn! def comb(m, n): return perm(m, n)/float(fac(n))…
01: 考察range/sort/lambda 对以下数据进行排序 原数据: [-5, -4, -3, -2, -1, 0, 1, 2, 3, 4, 5] 目标数据: [0, -1, 1, -2, 2, -3, 3, -4, 4, -5, 5] 实现代码 sorted(range(-5, 6), key=lambda x: abs(x)) 02 字典对键/值排序 data = dict(a=2, b=4, c=1, d=3) # 按照key进行排序 sorted(data.items(), ke…
最常见的内置函数是: print("Hello World!") 数学运算 abs(-5)                         # 取绝对值,也就是5 round(2.6)                       # 四舍五入取整,也就是3.0 pow(2, 3)                        # 相当于2**3,如果是pow(2, 3, 5),相当于2**3 % 5 cmp(2.3, 3.2)                   # 比较两个数的大小…
forthttp://blog.csdn.net/pipisorry/article/details/44755423 Python内置函数 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义. Built-in Functions     abs() dict() help() min() setattr() all() dir() hex() next() slice() any() divmod() id(…
原文:https://blog.csdn.net/pipisorry/article/details/44755423 https://juejin.im/post/5ae3ee096fb9a07aa7676883 Python内置(built-in)函数随着python解释器的运行而创建.在Python的程序中,你可以随时调用这些函数,不需要定义. Built-in Functions    abs() dict() help() min() setattr()all() dir() hex(…
Python作为现在很热门的一门编程语言,介于Python的友好,许多的初学者都将其作为首选,为了帮助大家更好的学习Python,我筛选了2年内优秀的python书籍,个别经典的书籍扩展到5年内.   python现在的主流版本是3.7(有明显性能提升,强烈推荐) 3.6, 不基于这两个或者更新版本的书,慎重选择.很多库已经不提供python2支持,请尽快从python迁移到python3.7. 我尽量只收集通用的书籍,专用的书籍只收集特别优秀者.国产的书很多虽然出名,但是实际写得并不好,为此这…
1. python 使用 os.listdir:Python Tricks(九)-- 递归遍历目录下所有文件 使用 os.walk: os.walk返回的是生成器(Generator),需迭代访问: 进一步,生成器中的单个元素是dirpath, dirnames, filenames构成的 3 元组, 2. matlab 子文件夹的遍历:MATLAB遍历子文件夹及其下文件…
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https://github.com/hylinux1024 微信公众号:终身开发者(angrycode) 在Python中一切都是对象.如果要在Python中表示一个对象,除了定义class外还有哪些方式呢?我们今天就来盘点一下. 0x00 dict 字典或映射存储KV键值对,它对查找.插入和删除操作都有比较高…
关于我 一个有思想的程序猿,终身学习实践者,目前在一个创业团队任team lead,技术栈涉及Android.Python.Java和Go,这个也是我们团队的主要技术栈. Github:https://github.com/hylinux1024 微信公众号:终身开发者(angrycode) 上一篇<一个简单的Python调度器>介绍了一个简单的Python调度器的使用,后来我翻阅了一下它的源码,惊奇的发现核心库才一个文件,代码量短短700行不到.这是绝佳的学习材料. 让我喜出望外的是这个库的…
原文:https://www.cnblogs.com/angrycode/p/11433283.html ----------------------------------------------------------------------- 上一篇<一个简单的Python调度器>介绍了一个简单的Python调度器的使用,后来我翻阅了一下它的源码,惊奇的发现核心库才一个文件,代码量短短700行不到.这是绝佳的学习材料.让我喜出望外的是这个库的作者竟然就是我最近阅读的一本书<Pyth…
[导读]2020年,你又立了什么新的 Flag?新一年,我们先为大家准备 30 个非常优秀的 Python 实践技巧.希望这些诀窍能在实际工作中帮助大家,并且学到一些有用的知识. 1.使用 python 3由于官方从2020年1月1日起就停止了对python2.7的更新支持,因此本教程的大部分例子都只能在python 3环境下运行.如果你仍然在使用2.7版本,请先升级到python 3. 2.检查并使用满足需求的最小python版本你可以在代码中检查Python 版本,以确保你的代码使用者没有使…
茴香豆的"茴"有四种写法,Python的格式化字符串也有 茴香豆的"茴"有四种写法,Python的格式化字符串也有 被低估的断言 多一个逗号,少一点糟心事 上下文管理器和with语句 作为前缀和后缀的下划线 茴香豆的"茴"有四种写法,格式化字符串也有 Python之禅 参考资料 最近正在阅读<Python Tricks: The Book>这本书,想要通过掌握书中提及的知识点提高自己的Python编程能力.本文主要记录在学习该书第二章…
Python装饰器:套层壳我变得更强了 Python装饰器:套层壳我变得更强了 关于作用域和闭包可以聊点什么? 什么是作用域 什么是闭包 装饰器:套层壳我变得更强了 参考资料 昨天阅读了<Python Tricks: The Book>的第三章"Effective Functions",这一章节介绍了Python函数的灵活用法,包括lambda函数.装饰器.不定长参数*args和**kwargs等,书中关于闭包的介绍让我回想起了<你不知道的JavaScript-上卷&…
Python抽象基类:ABC谢谢你,因为有你,温暖了四季! Python抽象基类:ABC谢谢你,因为有你,温暖了四季! 实例方法.类方法和静态方法 抽象类 具名元组 参考资料 最近阅读了<Python Tricks: The Book>的第四章"Classes & OOP",这一章节介绍了Python对面向对象编程的支持,内容包括"is"和"=="的区别.特殊方法"__str__"和"__repr…