
Python
文章平均质量分 50
一些关于Python的文章,目前主要是几年前写的一些笔记,例子来源于官方手册。
扶摇升
Business_Administration && Computer_Science
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Python Hash操作-MD5-SHA-HMAC
Python标准库提供了计算数据Hash的功能,支持许多不同的算法,常见的MD5, SHA1, SHA256, HMAC均在其中。MD5, SHA1, SHA256在hashlib模块中,HMAC在hmac模块中,但均有一样的接口。通用的使用模式为:构造所需算法的Hash对象通过update方法填入消息数据调用digest或hexdigest获取结果两个模块中均存在new方法用于创建Hash对象,hashlib中还存在和算法同名的构造方法如md5,sha1可直接创建Hash对象,直接通过算法原创 2021-08-16 16:28:34 · 622 阅读 · 0 评论 -
Python 日志打印
核心概念Python标准库自带日志模块logging,logging中涉及到4个核心组件,这些组件构建了logging体系。Logger: 应用程序直接使用的接口对象,通过logger操作完成表达日志输出要求.Handler: 交付由Logger创建的日志记录(logRecord)到其对应的目的地,比如控制台,文件,网络。Filter:对日志记录(logRecord)进行更细粒度过滤,控制是否应该输出对应的日志记录Formatter: 控制日志输出的格式日志有重要性区分,对应不同的应用场景,原创 2021-08-06 17:31:05 · 938 阅读 · 1 评论 -
Python全局变量不被共享的原因
习惯了其它语言开发方式,可能会对Python中全局变量不被共享的感到困惑。“Python中全局变量不被共享”其实是不存在的,造成这个“感觉”的原因是没意识到多进程环境的存在。在Web领域使用较多的Java平台上,一个Web站点启动后可能就只有一个进程,程序环境很可能是一个进程+多个线程,此时全局变量的变更很自然被程序里的所有代码看到。来到CPython世界,由于GIL(全局解释器锁)的存在,无法充分利用CPU的利用效率,生产部署的时候会采用多进程的机制,也就是启动多个CPython来充分使用硬件资源,这原创 2021-07-26 18:09:41 · 414 阅读 · 0 评论 -
认清Python包的安装位置是dist-packages还是site-packages避免ModuleNotFoundError
作为一个WSGI服务,gunicorn可以通过多种方式安装到系统种。gunicorn官方文档建议debain极其衍生版本系统直接利用系统的包管理能力安装,此时安装位置会在apt 安装位置:/usr/lib/pythonX/dist-packagespip 安装位置:/usr/local/lib/pythonX/dist-packages如果是自行构建的python安装的位置会在/usr/local/lib/pythonX/site-packages主要区别在“dist-packages”与“s原创 2021-07-20 19:30:50 · 1159 阅读 · 0 评论 -
jupyter配置密码保护
jupyter提供两种认证控制机制:密码保护和token保护,token保护在4.3版本开始会被默认开启,如需要使用密码保护,需要修改配置文件jupyter_notebook_config.py中的配置c.NotebookApp.password = u'your-pass-str'配置文件配置文件jupyter_notebook_config.py的默认位置为:Windwos : C:\Users\USERNAME.jupyter\jupyter_notebook_config.pyOS原创 2020-06-02 17:33:25 · 581 阅读 · 0 评论 -
部署django应用
django开发时只需要python就能完成,利用其自带的开发服务,可以方便在开发环境运行起应用,但部署于生产时则需要一些额外的操作。配置修改首先是配置的修改,settings.py里有些最小配置需要修改STATIC_ROOT = os.path.join(os.getcwd(), 'static')ALLOWED_HOSTS = ['127.0.0.1']DEBUG = False如果应用里有图片,样式表资源,需要设置STATIC_ROOT; DEBUG模式必须关掉,否则会暴露过多信息造成安原创 2020-05-31 09:45:11 · 314 阅读 · 0 评论 -
Python的C扩展源码编译不太易
Python生态的优势之一轮子多,轮子分两类,一类是完全用Python本身写的,另一类是结合或者说使用了C/C++扩展的,由于Python的跨平台,前者安装无忧,后者如果能用到包管理自动搞定也无忧,但是如果没有包管理器,也找不到预编译好的版本,只有源码,那么就可能有点忧愁了,这种情况在Windows平台上比较常见,一些小众的包只有源码,没有预编译的程序。忧愁一:32位还是64位Python本身现在也有32位和64位之分,如果操作系统是32位,那就没问题了,因为Python肯定是32位,但如果操作系统是6原创 2020-05-08 17:56:46 · 514 阅读 · 0 评论 -
wget不能使用的时候咋办?
wget不能使用的时候咋办?瞎说,wget基本都默认安装,怎么会不能使用?就算没安装,包管理器一个命令就解决了嘛。你别说,还真有可能出现不能用的情况,比如你没网,无法下载,又比如你没root权限,无法安装,更奇葩的还有昨天能用的机器,被管理员更新了一些库的依赖后,总是告诉你缺少某个版本的某个库无法执行。。。如果用wget的需求只是简单的下载文件,那么完全可以用linux自带的pytho...原创 2019-11-18 22:45:42 · 2199 阅读 · 0 评论 -
Python 学习简册
Python是一门诞生于20世纪90年代初的计算机语言,经过多年的发展,已经从"脚本"演进为了可用于运维程序,视窗软件,网络服务,科学计算等多方面的通用型语言。在Python的发展过程中,一些新的功能被不断加入,同时一些看起来一样的功能,背后的实现机制也有了变化,此外就语言层面来说也随着时间的推移存在一些不同。这些变化从近些年从python2到python3的迁移过程中也能看到。这份文档是在查看...原创 2020-03-20 22:59:50 · 198 阅读 · 0 评论 -
Python的迭代器与生成器
for的本质容器对象都可以直接用于for语句迭代for element in [1, 2, 3]: print(element)for element in (1, 2, 3): print(element)for key in {'one':1, 'two':2}: print(key)for char in "123": print(char)for...原创 2020-03-19 09:44:12 · 160 阅读 · 0 评论 -
Python的编码风格与文档字符串
代码风格Python社区有自己的代码风格建议,遵守它可以使代码更加易读易懂。用四个空格做缩减,不用制表符每行不超过79个字符函数和类之间,以及大块的代码之间用空行隔开如果可能,把注释放于独立的行使用文档字符串操作符周围,以及逗号之后使用空格,但是不要在直接在括号两边使用空格 a = f(1, 2) + g(3, 4)类和函数的命名风格一直保持一致,惯例是,驼峰方式 CamelCa...原创 2020-03-18 09:38:01 · 264 阅读 · 0 评论 -
Python读写文件
文件读写open()函数用于创建文件对象,最常使用两个参数: flename, modeopen(filename, mode)f = open('workfile', 'w') #以写模式打开workfile文件filename为文件名字符串mode为文件的使用模式字符串mode 为 ‘r’ 表示只读, ‘w’ 表示只写,如果文件已存在会被清空, ‘a’ 表示追加写, 数...原创 2020-03-17 17:16:09 · 234 阅读 · 0 评论 -
Python字符串的格式化方法
Python字符串格式化有多种方法。完全手工构造配合使用切片,连接,以及一些str的方法,完全手工的方式构造字符串。常用的字符串排版方法:str.rjust(width[, fillchar]) 返回用空格或指定字符右对齐str到指定宽度的新strstr.ljust(width[, fillchar]) 返回用空格左对齐str到指定宽度的新strstr.center(width[, ...原创 2020-03-12 22:52:45 · 245 阅读 · 0 评论 -
Python异常处理
异常处理try…except语句用于异常处理。>>> while True:... try:... x = int(input("Please enter a number: "))... break... except ValueError:... print("Oops! That was no ...原创 2020-03-09 20:36:05 · 224 阅读 · 0 评论 -
Python面向对象编程
Python中的类和其他部分一样,也是动态的,类被动态创建,创建后还可以修改。Python中变量的赋值和传递,操作的总是对象的引用。一个对象可以绑定多个名字,多个变量可以指向同一个对象。Python的对象更加强调鸭子类型,特定情况下看起来像鸭子,就是鸭子。命名空间和作用域命名空间是名字到对象的映射。目前大部分命名空间在python中都是以字典的形式存在的。命名空间在不同的时刻被创建,同时...原创 2020-03-08 15:06:24 · 318 阅读 · 0 评论 -
Python的模块系统
Python通过模块,划分不同的逻辑到不同的文件,便于复用即维护管理。一个模块就是一个文件,模块名即python文件名去除.py后缀。模块内部的全局变量__name__可用获取模块名。模块的文件中包含Python对象的定义,以及可执行的语句,可执行语句可用于初始化模块,模块中的内容在首次被导入时执行一次。每个模块都有自己的私有的符合表,所以不同模块之间同名变量互不影响。导入模块fibo的...原创 2020-03-07 14:31:41 · 321 阅读 · 0 评论 -
Python内建的常用数据结构
列表列表除了支持索引访问,切片外,还有自己的方法>>> fruits = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']>>> fruits.count('apple')2>>> fruits.count('tangerine')0>>&...原创 2020-03-06 14:12:07 · 215 阅读 · 0 评论 -
Python的函数
函数定义通过def function_name(parameters...): pass的结构定义函数。每次函数被执行时,都会有一个新的符号表被创建用于存储函数的本地变量,所有函数内部的赋值,包括调用函数时候传入的实参都会被存于符号表中。查找变量时,先查找本地符号表,然后是外围的符合表,然后是全局符合表,最后是内建符号表。所有全局变量如果不使用global关键字,则不可能在函...原创 2020-03-05 18:21:12 · 572 阅读 · 0 评论 -
Python的控制流
IF语句>>> x = int(input("Please enter an integer: "))Please enter an integer: 42>>> if x < 0:... x = 0... print('Negative changed to zero')... elif x == 0:... pri...原创 2020-03-04 12:47:01 · 282 阅读 · 0 评论 -
Python的常用类型与注释
数值Python的常用数值类型有整型“int”, 浮点型“float”,此外Python还支持诸如复数等其他数值类型。常见的“+”, “-”, “* ”, “/”, "%"等操作符,在Python也都被支持。>>> 2 + 24>>> 50 - 5*620>>> (50 - 5*6) / 45.0>...原创 2020-03-03 22:03:30 · 458 阅读 · 0 评论 -
Python解释器的使用与源文件编码
解释器的常用方式进入交互模式pythonpython -ipython - # ‘-’意为标准输入退出交互模式quit()ctrl+d # unix EOFctrl+z # windows EOF执行命令python -c command [arg] ...python file.py # 执行python文件python -i file.py # 执行python文件...原创 2020-03-01 15:25:16 · 293 阅读 · 0 评论