
python
文章平均质量分 86
车子 chezi
乐于开源,善于分享。死磕自己,方便大家。广泛查阅,独立思考。持续琢磨,自成一家。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
用python实现AES加密解密
文章目录背景测试数据代码遗留问题背景以蓝牙官方协议(V5.0)中的 sample data 为例子,看看怎么用 python 实现 AES 加密和解密。测试数据我们看看怎么由 SK 和 B0 得到 X1,然后从 X1 得到 B0代码from Crypto.Cipher import AES # install pycryptodomeimport binasciiSK = binascii.unhexlify('99AD1B5226A37E3E058E3B8E27C2C666')原创 2021-09-20 23:06:13 · 2001 阅读 · 0 评论 -
python 多线程中的 join 和 daemon
文章目录第一关:简单的 join()第二关:join(timeout)第三关:setDaemon(True)第一关:简单的 join()import threadingimport timedef run(): time.sleep(2) print('当前线程的名字是: ', threading.current_thread().name) time.sleep(2)if __name__ == '__main__': print('这是主线程:', th原创 2021-08-15 11:41:26 · 1210 阅读 · 0 评论 -
python 遍历目录或文件
python 遍历目录或文件如果想得到某个目录下面的所有文件名,用 python 怎么做?先看代码:import os,sysdef explore(dir): for root, dirs, files in os.walk(dir): print('debug: ', root, dirs, files) # 这行用来调试,帮助理解代码 for file in files: path = os.path.join(root原创 2021-03-14 10:33:17 · 1686 阅读 · 1 评论 -
批量保存网页
文章目录背景工具SeleniumgeckodriverPyUserInput工具下载和安装代码总结背景之前已经写了 2 篇文章:备份 优快云 博客(上)备份 优快云 博客(下)但是效果都不怎么好,其实还有一种简单粗暴的方法,就是用浏览器下载,批量下载。工具我是 Ubuntu 的操作系统,自带火狐浏览器。要下载 3 个工具:seleniumgeckodriverPyUserInputSeleniumSelenium 是一个用于 Web应用程序测试的工具。Selenium 测试直原创 2021-02-21 10:08:02 · 4192 阅读 · 1 评论 -
备份优快云博客(下)
文章目录背景fileinput 模块安装 clean-marklinecache 模块下载图片完整代码总结其他备份博客的思路背景在上一篇文章 备份 优快云 博客(上)中,已经解决了第一个问题——获取所有博文的 URL,这篇博文就讨论如何根据 URL 把文章下载下来,并转换成 markdown 格式。fileinput 模块python 中的 fileinput 模块可以对一个或多个文件中的内容进行迭代、遍历等操作。该模块的 input() 函数有点类似操作文件的 readlines() 方法,区别原创 2021-02-20 21:50:08 · 1168 阅读 · 0 评论 -
备份 优快云 博客(上)
备份 优快云 博客(上)背景因为 优快云 的博客没有批量导出功能,所以我就琢磨写个脚本可以一键备份博客,最好是 markdown 格式。搜了一波,极少有能拿来就用的,那就自己探索吧。思路解析思路很简单:得到每篇文章的链接(URL)根据 URL 下载每篇文章,转换成 markdown 格式囿于篇幅,这篇文章先解决第 1 个问题。其实我不太懂 python 爬虫和前端,算是现学现卖,说得不对的地方,请您指正。如何获得每篇文章的 URL如图所示,我的博客总共有 7 页,第 2 页的原创 2021-02-16 16:54:39 · 671 阅读 · 2 评论 -
Python学习之迭代器协议
文章目录迭代(iteration)可迭代(iterable)迭代器(iterator)迭代器协议(iterator protocol)迭代器协议与 for 循环参考资料迭代(iteration)逐个获取元素的过程,就是「迭代」。例如:# iteration# 用 for 循环迭代序列a_list = [1, 2, 3]for i in a_list: print(i)...原创 2019-05-16 23:19:10 · 813 阅读 · 0 评论 -
参数匹配顺序——Python学习之参数(三)
参数匹配顺序——Python学习之参数(三)文章目录参数匹配顺序——Python学习之参数(三)函数参数匹配表参数匹配顺序keyword-only 参数的位置参考资料这篇博文是对上一篇博文参数匹配模型的总结与扩展。函数参数匹配表下面的表格总结了Python中参数匹配的语法。考虑到翻译过来可能不准确,我就不翻译成中文了。参数匹配顺序在函数调用中,参数必须以此顺序出现:任何位置参数,后...原创 2019-05-02 19:39:47 · 1014 阅读 · 1 评论 -
参数匹配模型——Python学习之参数(二)
参数匹配模型——Python学习之参数(二)文章目录参数匹配模型——Python学习之参数(二)位置参数:从左至右进行匹配关键字参数:通过参数名进行匹配默认参数:为没有传入值的参数定义参数值可变参数:收集任意多于基于位置或关键字的参数可变参数解包:传递任意多的基于位置或关键字的参数Keyword-only参数:参数必须按照名称传递参考资料位置参数:从左至右进行匹配一般情况下,也是我们最常使用...原创 2019-04-14 22:18:02 · 720 阅读 · 0 评论 -
Python学习之函数返回多个值
Python学习之函数返回多个值问题的引出Python中,一个函数能不能一次返回多个值?在C语言中,函数最多返回一个值,如果要返回多个值,可以把这些值封装在一个结构体中。注意,C语言不允许函数返回整个数组。Python中,可以返回任意类型的对象,如果想返回多个值,可以把这些值封装成一个元组或者其他的集合类型。举例>>> def multiple(x, y):... ...原创 2019-03-24 10:37:29 · 2349 阅读 · 0 评论 -
Python学习之参数(一)
Python学习之参数(一)文章目录Python学习之参数(一)参数的传递避免可变参数的修改【未完待续】参考资料参数的传递所有的参数实际上都是通过指针进行传递的。作为参数被传递的对象从来不自动拷贝。在函数内部的参数名的赋值不会影响调用者。如果传入的是可变对象,那么在函数内就可以就地改变这个可变对象,这可能会影响调用者。Python通过赋值进行传递的机制与C++的引用参数选项并不...原创 2019-03-21 23:21:16 · 468 阅读 · 0 评论 -
Python学习之zip函数
Python 学习之 zip 函数问题的引出有时候,你可能想同时迭代两个序列。假设有下面两个列表:names = ['anne', 'beth', 'george', 'damon']ages = [12, 45, 32, 102]如果要打印名字和对应的年龄,可以这样做:>>> names = ['anne', 'beth', 'george', 'damon']&...原创 2019-03-10 11:54:16 · 526 阅读 · 0 评论 -
python 中的 for-else 和 while-else 语句
python 中的 for-else 和 while-else 语句绝大部分编程语言中都有条件判断语句,比如 if-else。这里的 else 一般与 if 成对使用。不过在 Python 中,else 除了能与 if 配合外,还能和 for、while 配对使用。我们来看一个例子:假设有一个列表用来保存学生信息,列表的元素是字典,字典中的键有姓名、年龄等。让用户输入一个名字,然后在列表中查...原创 2019-01-06 22:36:07 · 7642 阅读 · 4 评论 -
python 中的序列
python 中的序列序列概述Python 内置了多种序列,比如列表、元组和字符串。列表和元组的主要不同在于:列表是可以修改的,而元组不可以。在需要处理一系列值时,序列很有用。在数据库中,你可能使用序列来表示人,其中第一个元素为姓名,第二个元素为年龄。如果使用列表来表示,将类似于下面这样:>>> edward = ['Edward Gumby', 42] 要点是:所...原创 2019-01-13 12:54:34 · 840 阅读 · 0 评论 -
Python 学习之列表
文章目录函数 list基本的列表操作修改列表:给元素赋值删除元素给切片赋值列表方法appendclearcopycountextendindexinsertpopremovereversesort参考资料列表是可变的,即可修改其内容。函数 list如果你想使用字符串来创建列表,那就用函数list( 它实际上是一个类,而不是函数,但眼下,这种差别并不重要。),例如:In [1]: a = l...原创 2019-01-27 20:04:16 · 532 阅读 · 0 评论 -
Python 学习之元组
元组:不可修改的序列tuple(读音是 /tuːpəl/ 或 /tʌpəl/)与列表一样,元组也是序列,唯一的差别在于元组是不能修改的(你可能注意到了,字符串也不能修改)。元组语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组。In [34]: 1,2,3Out[34]: (1, 2, 3)元组还可用圆括号括起(这也是通常采用的做法)。In [35]: (1,2,3)Out[3...原创 2019-01-27 20:39:21 · 1221 阅读 · 0 评论 -
__name__ == '__main__' 到底是什么意思
__name__ == '__main__'到底是什么意思相信许多人初学 Python 时,常会在例子程序中看到如下语句:if __name__ == '__main__': foo() # 或其他语句第 1 行的__name__ == '__main__'到底是什么意思呢?首先,如果你永远都只执行一个 xxx.py,而不去 import它的话,那你完全不需要了解这是什么。例如...原创 2019-02-12 22:15:26 · 32661 阅读 · 10 评论 -
Python 学习之作用域
Python 学习之作用域文章目录Python 学习之作用域问题的引出代码块名称的绑定三种变量作用域名称解析LEGB 作用域查找规则global 和 nonlocalglobalnonlocal注意参考资料问题的引出请看这样一段代码:例1# test01.pyn = 5def test(): n += 1 print(n)test()猜猜运行结果是什么?咱...原创 2019-03-05 23:35:03 · 364 阅读 · 0 评论 -
Python学习之变量、对象和引用
Python学习之变量、对象和引用文章目录Python学习之变量、对象和引用问题的引出变量创建变量类型变量使用动态类型类型属于对象,而不是变量对象的垃圾收集参考资料问题的引出当在Python中运行赋值语句a=3时,熟悉C语言的朋友肯定会感到奇怪:难道变量a不需要定义吗?Python是怎么知道变量a的类型的?变量创建一个变量(也就是变量名),就像a,当代码第一次给它赋值的时候就创建了它。之...原创 2019-03-09 10:25:36 · 907 阅读 · 0 评论 -
Python学习之共享引用
Python 学习之共享引用文章目录Python 学习之共享引用什么是共享引用共享引用和在原处修改(Shared References and In-Place Changes)共享引用和相等参考资料什么是共享引用假设我们在Python交互模式下输入以下语句:>>> a = 3>>> b = a实际的效果就是变量a和b都引用了相同的对象(指向了相...原创 2019-03-09 22:14:19 · 813 阅读 · 0 评论 -
python 中用什么键缩进 —— tab 还是空格?
python 中用什么键缩进—— tab 还是空格?实验设计实验环境:Python 3.5.2假设要缩进的块有3行。代码如下if 10>4: print("hello") print("hello") print("hello")原创 2018-12-02 21:18:44 · 25168 阅读 · 8 评论