Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Viewing all articles
Browse latest Browse all 9596

【Python核心编程】入门的微妙关系

$
0
0

本帖最后由 MAX丶 于 2017-1-6 07:43 编辑

今天我们和我从零开始学习python表达关。

使用compile()函数编译正则表达式。

对于一些特别的正则表达式编译可选的标记可能参数的形式给出,这些标记允许不区分大小写的匹配,使用系统的本地化设置来匹配字母数字,等等也可以参考官方文档中查询关于这些标记

[Python] 纯文本查看 复制代码

re.IGNORECASE/re.MULTINE/re.DOTALL

等它们可以通过安慰货操作符(|)合并。

匹配对象以及group()和groups方法

当处理正则表达式时,除了正则表达式对象之外,还有另一个对象类型:匹配对象。这些是成功调用了match()或者search()返回的对象。匹配对象有两个主要的方法:group()和groups()。

正正表达先说到这,我们说说交互模式。

从tty读取命令时,我们称解释器工作于交互模式(interactive mode).这种模式下它通过主提示符(primary prompt)提示下一条命令,主提示符通常为三个大于号(>>>);而通过从提示符由(三个点标识...组成)提示一条命令的续行在第一条命令之前解释器会打印欢迎信息版本号和授权.

[Python] 纯文本查看 复制代码 Python 2.7.12 (v2.7.12:d33e0cf91556, Jun 27 2016, 15:19:22) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
【Python核心编程】入门的微妙关系

输入多行结构时就需要从属提示符了,例如,下面这个if语句:

[Python] 纯文本查看 复制代码 >>> the_world_is_flat = 1
>>> if the_world_is_flat:
... print("ichunqiu.com")
...
ichunqiu.com
>>>
【Python核心编程】入门的微妙关系

错误处理:

有错误发生时,解释器会输出错误信息和栈跟踪.交互模式下,它返回到主提示符,如果从文件输入执行,它在打印栈跟踪后以非零状态退出.(在try语句中抛出并被except从句处理的异常不是这里所讲的错误).一些非常致命的错误会导致非零状态下退出,这通常由内部问题或内存溢出造成,所有的错误信息都写入标准错误流;命令中执行的普通输出写入标准输出.在主提示符或从属提示符后输入中断符(通常是Control-C或者DEL)就会取消当前输入,回到主提示符.4执行命令时输入一个中断符会抛出一个KeyboardInterrupt异常,它可以被try语句截获.

可执行的Python脚本

BSD的UNIX系统中, Python脚本可以像Shell脚本那样直接执,只要在脚本文件开头加一行文本来声明模式

[Python] 纯文本查看 复制代码

#!/usr/bin/env pythonX.X 【xx是版本】

(要先确认Python解释器存在于用户的PATH环境变量中).#!这两个字符必须是文件的头两个字符.在某些平台上,第一行必须以UNIX风格的行结束符('\n')结束,不能用windows ('\r\n')的行结束符.注意,#用于Python一行注释的开始.脚本可以用chmod命令指定可执行模式或权限:$ chmod +x myscript.py在Windows系统下,没有“可持行模式(executable mode)”的概念.Python安装器会自动地把.py后缀的文件与python.exe绑定,因此此双击一个python文件就可以把它作为脚本来运行.扩展名也可以是.pyw,这时工作台窗口会隐藏不被打开.4一个GNU Readline包的问题可能会禁止这个功能.

源程序编码

默认情况下, Python源码文件以UTF-8编码在这种编码下,世界上大多数语言的字符都可以用于,字符串常量,标识符,以及注释――尽管标准库遵循一个所有可移植代码都应遵守的约定:仅使用ASCII字符作为标识符.要正确地显示所有这些字符,你的编辑器一定要有能力辨认出是UTF-8编码,还要使用一个支持所有文件中字符的字体.也可以为源码文件指定不同的编码.为此,要在#!行后面指定一个特殊的注释行以定义源码文件的编码:

[Python] 纯文本查看 复制代码

#-*-coding:encoding-*-

有了这样的声明,源文件中的所有字符都会被以encoding的编码来解读,而非是UTF-8.在Python库参考的codecs一节可以找到所有可用的编码.

例如,如果你使用的编辑器不支持UTF-8编码,但是支持另一种称为Windows-1252的编码,你可以在源码中写上:

[Python] 纯文本查看 复制代码

#-*-coding:cp-1252-*-

定制模块

Python为你提供两个钩子(hook)来定制交互环境:sitecustomize和usercustomize.要知道它如何工作,你需要先找到你的user site-package目录的位置.打开Python并运行这段代码:

[Python] 纯文本查看 复制代码 >>> import site
>>> site.getusersitepackages()
'C:\\Users\\lenovo\\AppData\\Roaming\\Python\\Python27\\site-packages'
>>>

现在你可以在那个目录下创建一个名为usercustomize.py的文件,并在里面放置任何你想放的东西.它将影响到每一次Python的调用,除非使用了-s选项来禁用了自动导入功能.sitecustomize以同样的方式工作,但通常由该计算机的管理员在全局site-packages目录下创建,并且在usercustomize之前被导入.参看site模块的文档获取更多细节.


Viewing all articles
Browse latest Browse all 9596

Trending Articles