Python标准库系列-glob
Python标准库系列-globPython 3提供了一系列标准库,所提供的组件设计范围十分广泛。这个标准库包含了多个内置模块(以C编写),Python可以依靠这些标准库提供许多系统级功能,例如文件I/O,此外还有大量以Pyhon编写的模块,提供了许多日常编程中许多问题的标准解决方案。具体的列表可以点击Python标准库了解。
今天提供的就是glob这个标准库的使用说明
globglob可以根据Unix终端所用规则找出所有匹配特定模式的 路径名,但会按照不确定的顺序返回结果。波浪号扩展不会生效,但是*,?以及表示范围的[]会杯正确的匹配。
通配符
通配符 *: 匹配一个文件名段中的0个或多个字
2020-08-11
Python标准库系列
Python标准库系列-argparse
Python标准库系列-argparsePython 3提供了一系列标准库,所提供的组件设计范围十分广泛。这个标准库包含了多个内置模块(以C编写),Python可以依靠这些标准库提供许多系统级功能,例如文件I/O,此外还有大量以Pyhon编写的模块,提供了许多日常编程中许多问题的标准解决方案。具体的列表可以点击Python标准库了解。
今天提供的就是argparse这个标准库的使用说明
argparse在命令行内,我们调用一个函数,一般会有函数名,位置参数和可选参数。比如ls指令
ls
ls directory
ls -l
ls --help
其中directory就是位置参数,-l就是可选参
2020-07-20
Python标准库系列
Python标准库系列-heapq
Python标准库系列-heapqPython 3提供了一系列标准库,所提供的组件设计范围十分广泛。这个标准库包含了多个内置模块(以C编写),Python可以依靠这些标准库提供许多系统级功能,例如文件I/O,此外还有大量以Pyhon编写的模块,提供了许多日常编程中许多问题的标准解决方案。具体的列表可以点击Python标准库了解。
今天提供的就是heapq这个标准库的使用说明
heapqheapq所提供的就是堆队列算法,也称为 优先队列算法, 二叉堆。
二叉堆堆的本质是一种完全二叉树,又分为:
最小堆(小根堆):树中每个非叶字节点都不大于其左右孩子节点的值,也就是根节点最小的堆
最大堆(大根
2020-07-17
Python标准库系列
买卖股票
买卖股票股票是我们生活中非常常见的东西,处理股票消息也是编程考察中常见的考题,我们现在来看看Leetcode中关于股票的题目吧
买卖股票的最佳时间
给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。
如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。
注意:你不能在买入股票前卖出股票。
输入: [7,1,5,3,6,4]
输出: 5
解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价
2020-07-10
Leetcode
Python单元测试
Python单元测试在Python中,利用自带的单元测试框架unittest模块,可以很好的做单元测试。在实际开发环境里,先写好单元测试,确定好边界条件,可以很好的对写好的程序做调试。
工作原理unittest是xUnit系列框架中的一员,其中最核心的四个概念是:
testcast一个TestCase实例就是一个测试用例,也就是一个完整的测试流程,包括测试前环境的准备(SetUp),执行测试代码(Run),以及测试后环境的还原(TearDown)。一个测试用例就是一个完整的测试单元,通过运行这个测试单元,可以对某一个问题进行验证
testsuite多个测试用例放在一起就是TestSuit
2020-06-30
小技巧
Python语法规范
Python代码规范Python已经成为了越来越热门的编程语言。其由于自身的简单易学的特性收到了很多人的喜爱。不过作为一门脚本语言,Python也有着自己的代码规范。符合规范的使用Python代码,不仅可以提升代码的易读性,维护起来也更加方便。下面就让我们来看看吧。
下面的内容均以Python 3版本为基础。Python已经结束了对2.x版本的支持,建议使用3.x版本学习
基础概述编码
如无特殊情况,文件一律使用UTF-8编码,可以在IDE中自行设置
代码格式缩进
统一使用4个空格进行缩进。不要使用Tab,如果是IDE可以将Tab软设置成4个空格。
行宽每行代码最好不超过80个字符,这
2020-06-30
规范
动态规划
动态规划动态规划(Dynamic Programming),是一种常见的计算机算法,而且非常普遍的应用在我们身边各个角落。今天,我们从源头讲讲动态规划。
一个钱包引发的问题在电子支付大行其道之前,人们在购物时常常会遇到一个问题,那就是 凑钱。假设你是个土豪,身上带了足够的1、5、10、20、50、100元面值的钞票,那么现在需要 用尽可能少的钞票凑出w金额
依据生活经验,我们显然可以得到采取这样的策略:能用100的就尽量用100的,否则尽量用50的… 以此类推。在这种策略下,666=6100+1\10+1*10+1*5+1*1,总共用了10张钞票。我们把这种策略称呼为 贪心。贪心策略会使得w尽
我的反思
自我反思又是一次组会。每两周举行一次的组会不知什么时候变成了我的噩梦。甚至我的身体已经出现了应激性反应:我的心跳会不由自主的加快,我的瞳孔会放大,我会下意识的远离手机,什么应用我都不想打开。我知道,我不是原来的自己了。
我到底怎么了每次碰到这样的时候,我就会问我自己一句话:我到底怎么了。回顾过去,我一直是大家嘴里的所谓好学生。是大家的榜样。以至于到现在我和我的好朋友微信的时候,他们鼓励的话语还是:“那不是你吗!”。可是我现在开始迷茫了。我究竟是谁?我又何德何能做到大家的榜样。
特别是读了研究生以后,这样的困惑一直萦绕在我的心头。我的颓势开始出现。我无法理解老师们说的内容,我无法理解我的师兄们在
hash 文件在macOS上的验证
Hash 文件当我们从网络上下载得到一个文件,尤其是一个大文件时,,你会不会常常发现这一个一个问题:文件打不开!你会不会疑惑,明明从网上下载的文件好好的,怎么会出现文件错误,打不开呢?
文件的完整性我们提到文件,尤其是大文件的下载的时候,我们常常会提到 P2P 或者是 磁力链。
P2P:P2P,也就是Peer-to-Peer的简称。以这种协议传输,每个电脑都会提供一份力量。文件被分成很多个小块,每台电脑都会提供一部分小块的上传和下载。
磁力链:磁力链和P2P类似,但是P2P需要一个中心服务器来告诉各个电脑有谁有文件,而磁力链则会自动找最近的有文件的服务器。
这两种方式都有一个问题
背包问题
背包问题背包问题泛指一下这一种问题:
给定一组有价值和固定重量的物品,以及一个已知最大承重的背包,求在不超过背包最大承重量的前提下,能放进把背包里的物品的最大总价值。
这是一种典型的使用 动态规划 解决的问题,我们可以具体分成三个问题:
0-1 背包问题
完全背包问题
多重背包问题
0 - 1背包
0 - 1 背包指每一种物品只有一件,可以选择放或者不放。假设有n件物品,背包承重为C
对于这种问题,我们用一个二维数组 f[i][c],其中i表示放入背包的是前i件物品,c表示背包的承重,f[i][c]表示当前状态放进背包里的物品最大价值,那么最终结果就是f[n][C]
动态规划有三个基