Python
文章平均质量分 93
烟草的香味.
这个作者很懒,什么都没留下…
展开
-
Python 的协程
前言 最近在看部分Python源码时, 发现了async 这个关键字. 查了一下发现了Python中的协程. 协程这玩意, 在GO中我用过啊, 简单说, 就是一个轻量级的线程嘛, 由语言自己来实现不同协程的调度. 想着Python中可能也是差不多的东西吧. 但是我Google搜了一下, 前面的说明都给出了下面的例子: def consumer(): r = '' while True: n = yield r if not n: ret原创 2021-10-05 14:05:54 · 151 阅读 · 0 评论 -
Python可以减少代码量?我不信
突然看到好几篇文章,内容基本上是什么用Java需要100行,用PHP只需要30行,用Python只需要10行(数字记不清了)。简单说一下我的看法。 我不服,凭啥都是编程语言,你行我就不行? 我记不清当时给出的支持Python可以少写代码的栗子具体是什么了,它给出的是实现了某个功能,两行搞定,一行引入,一行调用。 当时看的我一脸懵逼,哇,真的耶。只用一行就可以。但稍后一想,这也太扯了吧。你看着...原创 2020-01-01 17:57:28 · 276 阅读 · 0 评论 -
Python实现cmd命令连续执行
之前是想写一个微信控制程序,通过登录网页微信,可以直接执行命令行代码。也不用ssh登录了,想法很方便。 但是现实很残酷,微信登录这块基本没有问题,已经有大佬写好了,但是命令行执行遇到问题了。 运行cmd 开始时,使用os.popen()执行命令,但是该命令需要手动修改运行目录。此方案被我直接丢弃了。 单开进程 那么自然想到通过启动进程的方式来实现,Python有对进程的封装subproc...原创 2019-12-28 18:46:16 · 4129 阅读 · 1 评论 -
Python中的+=
引出 今天在运行之前写的一个Python脚本时,发生了一个奇怪的现象(我怎么老遇到奇怪的现象~~)。当时的代码大概长这样: a = [1, 2, 3] b = [4, 5, 6] # ...一大段逻辑 c = a c += b # ...一大段逻辑 # 在这里,a变成了[1, 2, 3, 4, 5, 6] 首先,上面的代码一个函数过于长了,实在不像话 当时的情景是这样的,程序并没有...原创 2019-12-13 22:45:43 · 6297 阅读 · 2 评论 -
Python元组是什么
引出 在使用Python过程中,列表、集合和字典是比较常用的数据结构。 列表简单说就是数组,不对,它就是数组 集合就是去重的元素结构,和JAVA中的set一样 字典就是一个key-value的键值对,和JAVA中的HashTable一样 但是,Python中有一个特立独行的对象,元组tuple,看一个元组的简单使用: tu = (2, 3) a = tu[...原创 2019-11-22 23:54:08 · 2526 阅读 · 0 评论 -
浮点数的运算精度丢失
引出 打开Python编译器,输入 0.1+0.2, 期待的结果是0.3,但是输出为: 0.30000000000000004 有点小尴尬,这是为什么呢? 解惑 其实这设计到了计算机的浮点数存储是以二进制进行存储的。 说二进制不太形象,换成我们最长使用的十进制和分数 1/5,使用小数表示为0.2,但是1/3,使用小数表示就是一个无限循环小数:0.3333333, 也就是说,分数的 1/3+1/...原创 2019-10-27 17:23:25 · 249 阅读 · 0 评论 -
Python关键字
Python中的关键字 assert 断言,当关键字后的条件为假时,程序崩溃,并抛出 AssertionError 异常 del 删除 def 创建一个函数 global 在函数或其他局部作用域中声明全局变量,即可更新全局变量 nonlocal 函数或其他作用域中使用外层(非全局)变量,不能执行更新操作 lambda 定义匿名函数 pa...转载 2019-05-09 21:47:45 · 83 阅读 · 0 评论 -
Python中的特殊属性与方法
模块的特殊属性 __doc__ 模块的说明文档 __all__ 指明模块希望被使用的属性、类和方法 __file__ 模块所在路径 类的特殊属性 __slots__ 限制类的实例允许添加的属性,是一个tuple元组 类的特殊方法 __new__(cls[, ...]) 1. __new__ 是在一个对象实例化的时候所调用的第一...转载 2019-05-09 21:47:02 · 141 阅读 · 0 评论 -
Python的闭包
什么是闭包 #定义一个函数 def test(number): #在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么将这个函数以及用到的一些变量称之为闭包 def test_in(number_in): print("in test_in 函数, number_in is %d"%number_in) return number+number_i...原创 2019-05-09 21:46:07 · 98 阅读 · 0 评论 -
Python迭代器
可迭代对象 以直接作用于 for 循环的数据类型有以下几种: 一类是集合数据类型,如 list 、 tuple 、 dict 、 set 、 str 等; 一类是 generator ,包括生成器和带 yield 的generator function。 这些可以直接作用于 for 循环的对象统称为可迭代对象: Iterable 。 判断是否可以迭代 可以使用 isinstance()...原创 2019-05-09 21:45:40 · 73 阅读 · 0 评论 -
Python 装饰器
首先 需求来了 有如下几个封装好的函数供调用: 现在需要在每个函数执行前进行日志记录: 第一个方案 修改每个函数,添加日志记录的代码 但这样显然不太好,存在大量的重复代码,可以将重复代码封装为一个方法 第二个方案 这样的确是比第一个方案好多了,但是不符合开闭原则,即现有的代码不要去修改,而在基础的功能上进行二次开发 第三个方案 ...原创 2019-05-09 21:45:01 · 83 阅读 · 0 评论 -
Python生成器
什么是生成器 通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断推算出后续的元素呢?这样就不必创建完整的list,从而节省大量的空间。在Python...原创 2019-05-09 21:44:25 · 104 阅读 · 0 评论