凭海临风的IT江湖

  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 站点地图

  • 公益 404

  • 时间轴

  • 搜索

python standard library array type

发表于 2020-01-13 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.5k | 阅读时长 ≈ 3 分钟

每日一词: underdog

英 [ˈʌndədɒg] 美 [ˈʌndərdɔg]

n.失败者; 退居下风的人; 受压迫者; 打败了的选手

复数: underdogs

这个词来自1887年出现,原指在斗狗比赛中战败的狗。后来词义引申至人,指的是各类竞赛和对碰中不被看好的一方,或是指处在逆境中的人和团体。

被看好的一方,即Topdog,从来不缺喝彩和支持。而Underdog的路则注定孤独许多。不被人看好,较少人支持。

所幸的是,正如倪匡先生感言:太多的时候,孤独最好。

若能与孤独为师,又何须担心underdog呢?

python 标准库学习 array

此模块定义了一种对象类型,可以紧凑地表示基本类型值的数组:字符、整数、浮点数等。 数组属于序列类型,其行为与列表非常相似,不同之处在于其中存储的对象类型是受限的。 类型在对象创建时使用单个字符的 类型码 来指定。 已定义的类型码如下:

类型码 C 类型 Python 类型 以字节表示的最小尺寸 注释
'b' signed char int 1
'B' unsigned char int 1
'u' Py_UNICODE Unicode 字符 2 (1)
'h' signed short int 2
'H' unsigned short int 2
'i' signed int int 2
'I' 无符号整型 int 2
'l' signed long int 4
'L' 无符号长整型 int 4
'q' signed long long int 8
'Q' 无符号 long long int 8
'f' float float 4
'd' double float 8

==注释==

‘u’类型码在python3已经被废除,默认python的字符串就是unicode字符

类

  • class array.array(typecode[, initializer])

    一个包含由 typecode 限制类型的条目的新数组,并由可选的 initializer 值进行初始化,该值必须为一个列表、bytes-like object 或包含正确类型元素的可迭代对象。如果给定一个列表或字符串,该 initializer 会被传给新数组的 fromlist(), frombytes() 或 fromunicode() 方法(见下文)以将初始条目添加到数组中。 否则会将可迭代对象作为 initializer 传给 extend() 方法。引发一个 审核事件 array.__new__ 附带参数 typecode, initializer。

属性

  • array.typecodes

    包含所有可用类型码的字符串。

1
2
3
>>> import array
>>> array.typecodes
'bBuhHiIlLqQfd'

数组对象支持普通的序列操作如索引、切片、拼接和重复等。 当使用切片赋值时,所赋的值必须为具有相同类型码的数组对象;所有其他情况都将引发 TypeError。 数组对象也实现了缓冲区接口,可以用于所有支持 字节类对象 的场合。

阅读全文 »

python standard library collections.abc

发表于 2020-01-12 | 更新于 2022-08-18 | 分类于 python
本文字数: 5.5k | 阅读时长 ≈ 5 分钟

python 标准库 之 collections.abc

每日一词: wrong

adj. 不道德的, 不正当的, 不义的

不确实的, 不正确的, 错误的

不合要求的, 不适合的, 并非合意的

有故障, 有毛病

adv. 方式或方向错误地; 错误地; 结果错误地

n. 罪过, 过失, 罪恶

不义的行为, 不公正的事

时 态: wronged, wronging, wrongs
名 词: wronger
副 词: wrongly
名 词: wrongness

词语:

confound right and wrong

混淆是非,黑白不分

get one wrong

误会某人;误会

right or wrong
adv. 不管如何

something wrong with

…出了毛病;…有问题;…不对头

python 标准库学习之 抽象基类 collection.abc

众所周知,python3中所有类默认继承自object类,意味着父类中所有的方法,子类都继承了。

我个人理解,抽象基类是无法被实例化的,只能子类实现

参考文档

源代码: Lib/_collections_abc.py

该模块定义了一些 抽象基类,它们可用于判断一个具体类是否具有某一特定的接口;例如,这个类是否可哈希,或其是否为映射类。

模块里方法一览,摘自源码

1
2
3
4
5
6
7
8
9
10
__all__ = ["Awaitable", "Coroutine",
"AsyncIterable", "AsyncIterator", "AsyncGenerator",
"Hashable", "Iterable", "Iterator", "Generator", "Reversible",
"Sized", "Container", "Callable", "Collection",
"Set", "MutableSet",
"Mapping", "MutableMapping",
"MappingView", "KeysView", "ItemsView", "ValuesView",
"Sequence", "MutableSequence",
"ByteString",
]
阅读全文 »

python standard library context-manager-types

发表于 2020-01-11 | 更新于 2022-08-18 | 分类于 python
本文字数: 8k | 阅读时长 ≈ 7 分钟

python 标准库 上下文管理类型

每日一词:

intresting :

US [‘ɪntrəstɪŋ] UK [‘ɪntrəstɪŋ]

  • adj.有趣的;有吸引力的
  • v.“interest”的现在分词
  • Web有意思的;令人感兴趣的;引人入胜的

比较级:more interesting
最高级:most interesting

大部分时候,你都是一个人在默默努力,这样,距离成功才会更进一步。

​ – 凭海临风语录

python 标准库学习 上下文管理

什么是上下文管理器?上下文管理器就是一个用装饰器实现上下文协议管理的对象。主要用于保存和恢复各种全局状态,例如关闭文件等。下面我们来了解具体的内容。

函数

  • contextmanager.__enter__()

    进入运行时上下文并返回此对象或关联到该运行时上下文的其他对象。 此方法的返回值会绑定到使用此上下文管理器的 with 语句的 as 子句中的标识符。一个返回其自身的上下文管理器的例子是 file object。 文件对象会从 enter() 返回其自身,以允许 open() 被用作 with 语句中的上下文表达式。一个返回关联对象的上下文管理器的例子是 decimal.localcontext() 所返回的对象。 此种管理器会将活动的 decimal 上下文设为原始 decimal 上下文的一个副本并返回该副本。 这允许对 with 语句的语句体中的当前 decimal 上下文进行更改,而不会影响 with 语句以外的代码。

  • contextmanager.__exit__(*exc_type*, *exc_val*, *exc_tb*)

    退出运行时上下文并返回一个布尔值旗标来表明所发生的任何异常是否应当被屏蔽。 如果在执行 with 语句的语句体期间发生了异常,则参数会包含异常的类型、值以及回溯信息。 在其他情况下三个参数均为 None。自此方法返回一个真值将导致 with 语句屏蔽异常并继续执行紧随在 with 语句之后的语句。 否则异常将在此方法结束执行后继续传播。 在此方法执行期间发生的异常将会取代 with 语句的语句体中发生的任何异常。传入的异常绝对不应当被显式地重新引发 —— 相反地,此方法应当返回一个假值以表明方法已成功完成并且不希望屏蔽被引发的异常。 这允许上下文管理代码方便地检测 __exit__() 方法是否确实已失败。

一个文件操作实例

1
2
3
4
>>> with open("/etc/hosts", "r") as file:
... dir(file)
...
['__class__', '__delattr__', '__doc__', '__enter__', '__exit__', '__format__', '__getattribute__', '__hash__', '__init__', '__iter__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'close', 'closed', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'mode', 'name', 'newlines', 'next', 'read', 'readinto', 'readline', 'readlines', 'seek', 'softspace', 'tell', 'truncate', 'write', 'writelines', 'xreadlines']

此时的open返回的对象file,就实现了管理打开文件、关闭文件的上下文管理协议。

阅读全文 »

python standard_library operator

发表于 2020-01-10 | 更新于 2022-08-18 | 分类于 python
本文字数: 5.4k | 阅读时长 ≈ 5 分钟

python 标准库 operator

今天的关键词: trouble

trouble

[英] [ˈtrʌbl]

[美] [ˈtrʌbəl]

n.麻烦; 烦恼; 故障; 动乱;

vi.费心; 烦恼;

vt.麻烦; 使烦恼; 折磨;

python 标准库学习 operator

operator 模块提供了一套与Python的内置运算符对应的高效率函数。例如,operator.add(x, y) 与表达式 x+y 相同。 许多函数名与特殊方法名相同,只是没有双下划线。为了向后兼容性,也保留了许多包含双下划线的函数。为了表述清楚,建议使用没有双下划线的函数。

函数包含的种类有:对象的比较运算、逻辑运算、数学运算以及序列运算。

对象比较函数适用于所有的对象,函数名根据它们对应的比较运算符命名。

比较运算

operator.lt(*a*, *b*)

operator.le(*a*, *b*)

operator.eq(*a*, *b*)

operator.ne*a*, *b*)

operator.ge*a*, *b*)

operator.gt*a*, *b*)

operator.__lt__*a*, *b*)

operator.__le__*a*, *b*)

operator.__eq__*a*, *b*)

operator.__ne__*a*, *b*)

operator.__ge__*a*, *b*)

operator.__gt__*a*, *b*)

阅读全文 »

python standard library http.cookies

发表于 2020-01-09 | 更新于 2022-08-18 | 分类于 python
本文字数: 4.4k | 阅读时长 ≈ 4 分钟

python 标准库 http.cookies

最近需要教孩子自然拼读,所以我想还是每天用一个关键词描述吧。

traffic .n UK /træf.ɪk/ US /ˈtræf.ɪk/ 交通(拥堵)

There was heavy/a lot of traffic on the roads this morning.今天早晨道路上车流量很大。

We got stuck in traffic for several hours.我们碰上交通阻塞被堵了好几个小时。

New measures have been introduced to try and ease traffic congestion in the city.这个城市已经采取了新措施,试图缓解交通拥堵。

Five people were injured in a traffic accident (= one involving vehicles).有5人在交通事故中受伤。

US I heard about the accident on the traffic report on the radio this morning.我在今早电台的交通节目中听到了这起事故。

Air traffic has increased 30 percent in the last decade.在过去的10年里,空中交通量增加了30%。

python 标准库学习 http.cookies

http.cookies 模块定义了类实现了http状态管理机制和cookies概念。不仅支持字符串格式化的cookie值,还支持任何序列化对象的cookie值。

模块的实现完全遵循 RFC 2109 和 RFC 2068 协议规范。但MSIE 3.0x不遵循那些规范中概述的字符规则,并且当涉及Cookie处理时,许多当今的浏览器和服务器已经放宽了解析规则。

Cookie名定义字符集中非法字符囊括在 string.ascii_letters,string.digits 和 !#$%&'*+-.^_|~:`中。

核心类

  • exception http.cookies.CookieError

    违反RFC 2109 规范中的错误,例如:不正确的属性或不正确的Set-Cookies header

  • class http.cookies.BaseCookie([*input*])

    这个类是一个字典类型的对象,键是字符串,值是 Morsel 的实例。

    如果设置参数input,实际上是通过load() 方法设置。

  • class http.cookies.SimpleCookie([*input*])

    这个类是从BaseCookie 继承过来并重写了 value_decode() and value_encode()方法。

    SimpleCookies支持字符串格式的cookie values.

阅读全文 »

python standard library http

发表于 2020-01-08 | 更新于 2022-08-18 | 分类于 python
本文字数: 11k | 阅读时长 ≈ 10 分钟

python 标准库之 http

山雨欲来风满楼,最近不是很太平,希望世界和平吧。

python 标准库学习 之 http

http 是一个包,它收集了多个用于处理超文本传输协议的模块:

参考文档

  • http.client 是一个低层级的 HTTP 协议客户端;对于高层级的 URL 访问请使用 urllib.request
  • http.server 包含基于 socketserver 的基本 HTTP 服务类
  • http.cookies 包含一些有用来实现通过 cookies 进行状态管理的工具
  • http.cookiejar 提供了 cookies 的持久化

本次只整理 http.client的内容,后面持续更新。

常量

class http.HTTPStatus

使用方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
>>> from http import HTTPStatus
>>> HTTPStatus.OK
<HTTPStatus.OK: 200>
>>> HTTPStatus.OK == 200
True
>>> HTTPStatus.OK.value
200
>>> HTTPStatus.OK.phrase
'OK'
>>> HTTPStatus.OK.description
'Request fulfilled, document follows'
>>> list(HTTPStatus)
[<HTTPStatus.CONTINUE: 100>, <HTTPStatus.SWITCHING_PROTOCOLS: 101>, ...]
阅读全文 »

python standard library glob

发表于 2020-01-07 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.1k | 阅读时长 ≈ 3 分钟

python 标准库之 glob

在严寒的冬季,温暖人的只有笑脸了吧。

今天继续给大家介绍python标准库 glob

参考文档

glob 模块可根据 Unix 终端所用规则找出所有匹配特定模式的路径名,但会按不确定的顺序返回结果。支持查找文件只用到三个匹配符:’*’, “?”, “[ ]”,不包括波浪线~,因为这个符号在linux代表当前用户的home目录。

对于波浪号和终端变量扩展,请使用 os.path.expanduser() 和 os.path.expandvars())。

根据阅读代码发现,这个底层使用cpython实现, 有兴趣的童鞋可以移步到源代码: Lib/glob.py

相对于高级面向对象路径查找模块pathlib ,glob更偏向底层实现。

函数

  • glob.glob(pathname, *, recursive=False)

    返回匹配 pathname 的可能为空的路径名列表,其中的元素必须为包含一个路径信息的字符串。 pathname 可以是绝对路径 (如 /usr/src/Python-1.5/Makefile) 或相对路径 (如 ../../Tools/*/*.gif),并且可包含 shell 风格的通配符。 结果也将包含无效的符号链接 (与在 shell 中一致)。 结果是否排序取决于具体文件系统。

    如果 recursive 为真值,则模式 “**“ 将匹配目录中的任何文件以及零个或多个目录、子目录和符号链接。 如果模式加了一个 os.sep 或 os.altsep 则将不匹配文件。

    备注:在一个较大的目录树中使用 “**“ 模式可能会消耗非常多的时间。 3.5 版更改: 支持使用 “**“ 的递归 glob

  • glob.iglob(pathname, *, recursive=False)

    返回一个 iterator,它会产生与 glob() 相同的结果,但不会实际地同时保存它们。

  • glob.escape(pathname)

    转义所有特殊字符 ('?', '*' 和 '[')。 这适用于当你想要匹配可能带有特殊字符的任意字符串字面值的情况。 在 drive/UNC 共享点中的特殊字符不会被转义,例如在 Windows 上 escape('//?/c:/Quo vadis?.txt') 将返回 '//?/c:/Quo vadis[?].txt'。

阅读全文 »

python standard library textwrap

发表于 2020-01-06 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.4k | 阅读时长 ≈ 3 分钟

Python 标准库 之 textwrap

今天给大家介绍 python标准库中的 textwrap

参考文档

标准库 textwrap 是一个关于文本自动换行和填充的模块。

关于这个模块官网介绍如下:

textwrap 模块提供了一些快捷函数,以及可以完成所有工作的类 TextWrapper。

如果你只是要对一两个文本字符串进行自动换行或填充,快捷函数应该就够用了;

否则的话,你应该使用 TextWrapper 的实例来提高效率。

函数

  • textwrap.wrap(*text*, *width=70*, kwargs)

对 text (字符串) 中的单独段落自动换行以使每行长度最多为 width 个字符。 返回由输出行组成的列表,行尾不带换行符。

  • textwrap.fill(text, width=70, kwargs)

对 text 中的单独段落自动换行,并返回一个包含被自动换行段落的单独字符串。 fill() 是以下语句的快捷方式

1
"\n".join(wrap(text, ...))
  • textwrap.shorten(text, width, kwargs)

折叠并截短给定的 text 以符合给定的 width。

阅读全文 »

python standard library http.server

发表于 2020-01-05 | 更新于 2022-08-18 | 分类于 python
本文字数: 3.6k | 阅读时长 ≈ 3 分钟

python 标准库之 http.server

今天下午主要是陪我闺女,组装完成一个桌面足球,很开心的一下午。

孩子的童年只有一次,有时间多陪陪孩子吧。

python 标准库 http.server

从python2时代开始 SimpleHttpServer就陪伴我走过那些快乐的时光。可以自己建立一个简单的文件服务器,让同事们通过浏览器就可以访问我电脑上的资源,而不需要http server或者 ftp软件。

到了python3时代,这个模块被合并进了http.server。

参考网址

这个模块定义了实现 HTTP 服务器( Web 服务器)的类 。

HTTPServer 是 socketserver.TCPServer 的一个子类。它会创建和侦听 HTTP 套接字,并将请求调度给处理程序。用于创建和运行服务器的代码看起来像这样

1
2
3
4
def run(server_class=HTTPServer, handler_class=BaseHTTPRequestHandler):
server_address = ('', 8000)
httpd = server_class(server_address, handler_class)
httpd.serve_forever()

核心类

class http.server.HTTPServer(server_address, RequestHandlerClass)

该类基于 TCPServer 类,并会将服务器地址存入名为 server_name 和 server_port 的实例变量中。服务器可被处理程序通过 server 实例变量访问。

class http.server.ThreadingHTTPServer(server_address, RequestHandlerClass)

根据官方说明,这是一个基于 ThreadingMixIn的类,主要功能是使用线程处理请求。

阅读全文 »

windows jupyter notebook nbextension usage

发表于 2020-01-04 | 更新于 2022-08-18 | 分类于 python
本文字数: 1.2k | 阅读时长 ≈ 1 分钟

windows下jupyter 安装nbextension 插件填坑记

环境

软件和操作系统 版本号
操作系统 win7 64位 sp1
python版本 3.6.2
jupyter core 4.5.0
jupyter notebook 6.0.0

问题描述

本来以为给jupyter安装个插件,分分钟搞定的事,结果三天了还是没解决。

我回家用win10的电脑,5分钟搞定。

尝试了各种方式,卸载重装,修改环境变量,换不同的python版本。后来我快要放放弃的时候,我终于搞定了。

阅读全文 »
1…101112…16
Jeff Sui

Jeff Sui

151 日志
37 分类
174 标签
RSS
GitHub E-Mail
  • 20201
  • 2to31
  • Boolean1
  • Centos2
  • Exception1
  • GIL1
  • GitGutter1
  • Tkinter1
  • TypeScript2
  • XML2
  • __all__1
  • _thread1
  • app1
  • argparse2
  • array1
  • atexit1
  • bisect1
  • calendar1
  • centos1
  • checkbox1
  • cmath1
  • cmd1
  • code1
  • collections.abc1
  • concurrent1
  • conda1
  • context-manager-types1
  • cookies1
  • copy1
  • coroutines1
  • csv1
  • cygwin1
  • dataclasses1
  • dbm1
  • dict1
  • dictionary1
  • difflib1
  • dis1
  • django4
  • docker3
  • doctest1
  • dom1
  • eclipse1
  • enum1
  • es61
  • esp323
  • esptool1
  • ffmpeg1
  • filecmp1
  • fileinput1
  • fractions1
  • functools1
  • futures1
  • gc1
  • generator1
  • git4
  • gitcafe1
  • github1
  • glob1
  • heapq1
  • hexo2
  • html.parser1
  • http2
  • http.server1
  • ios1
  • iterator1
  • itertools1
  • java3
  • javascript6
  • javaweb2
  • jdk1
  • jira1
  • json1
  • juypter1
  • keyword1
  • linecache1
  • linter1
  • linux2
  • lite-server1
  • m3u81
  • maven4
  • micorpython1
  • micropython2
  • minidom1
  • modulefinder1
  • mongodb1
  • mybatis1
  • mysql1
  • nbextension1
  • nginx1
  • nodejs2
  • oop1
  • operator1
  • os1
  • os.path1
  • others1
  • pathlib1
  • photo1
  • pickle1
  • pprint1
  • pwd1
  • pycharm1
  • python98
  • python31
  • queue1
  • re1
  • readline1
  • registry2
  • registry-ui2
  • reprlib1
  • rust1
  • sax1
  • sched1
  • select1
  • selectors1
  • selenium3
  • shutil1
  • socket1
  • sort1
  • spring1
  • sqlite32
  • ssm1
  • standar_library1
  • standard_library78
  • statistics1
  • string1
  • sublime1
  • tempfile1
  • this1
  • thread1
  • timeit1
  • turtle2
  • types1
  • uPycraft1
  • unittest1
  • urllib.robotparser1
  • uuid1
  • uv1
  • venv1
  • vite1
  • vscode1
  • vue31
  • weakref1
  • web test2
  • webbrowser1
  • webrepl1
  • windows3
  • xml2
  • 二维码1
  • 办公1
  • 博客3
  • 坑1
  • 字典1
  • 异步1
  • 循环1
  • 感悟1
  • 持续集成1
  • 搭建1
  • 搭建博客1
  • 文章1
  • 新特性1
  • 杂记3
  • 版本管理2
  • 短网址1
  • 禅道1
  • 笔记1
  • 约束1
  • 网易音乐1
  • 美化1
  • 自动化测试1
  • 软件工程1
  • 逆向工程1
  • 闭包1
  • 项目管理2
© 2015 – 2025 Jeff Sui | 823k | 12:28
由 Hexo 强力驱动 v3.9.0
|
主题 – NexT.Gemini v7.1.1
|
0%