俗话说,欲先善其事,必先利其器。作为一个小白,当选择了一门语言来学习的时候,我们的电脑得安装这个语言。「Python」 是一门编程语言,可以在服务器上使用 Python 来创建 Web 应用程序,他主要有以下用途:
1 引言
1.1 版本与支持
「Python」目前最新的官方版本是「v3.10.6」,它支持多个操作系统下载来使用。其他操作系统也有相应的安装步骤,其实Mac是内置了一个Python,不过我们一般情况下都不推荐使用低版本的python,我记得我当时机器预置版本为v2.7(已经卸载)。
1.2 下载
Python官方下载地址是:https://www.python.org/downloads/
Python的下载方式有很多种,你可以直接在官方网站下载「python」包,也可以使用命令行来拉取「python」包,甚至也可以使用电脑所带的管理工具来从代码库拉取「python」包。
1.3 安装(Mac)
- 方法一:Mac是自带python
执行命令「which python」 、「 which python2」 、 「which python3」 可以查看已经安装的python的版本以及安装目录
例如我机器安装的版本查询
$ which python3$ /usr/local/bin/python3
- 方法二:可以在官方下载安装包,然后执行安装到机器上
例如可以在官方提供的地址下载,按照步骤安装即可,官方下载地址:https://www.python.org/downloads/macos/
- 方法三:使用管理工具「brew」安装
联网时,使用「brew」工具安装python(推荐,简单方便)使用工具查询python的版本,根据需求安装即可。
1.4 卸载(Mac)
卸载根据安装的步骤,反向卸载就可以了。如果担心没有卸载,可以使用查看版本命令查看下是否还存在,如果有配置环境变量,记得也把环境变量的配置信息删除掉。
$ brew uninstall python$ python -V
1.5 其他平台安装和卸载
- 下载
Windows:https://www.python.org/downloads/windows/
Linux/UNIX:https://www.python.org/downloads/source/
MacOS:https://www.python.org/downloads/macos/
其他平台(AIX、IBM、IOS、平板等):https://www.python.org/download/other/
- 安装
基本上都是解压到磁盘某一个目录下面,然后配置下环境变量或者重新命名一下。
- 卸载
删除软件包、安装包、环境变量
2 基础知识
2.1 正则表达式(RegEx)
正则表达式主要用于检查字符串是否包含指定的搜索模式,内部提供「re」内置包。在「Python」中,正则表达式是一个特殊的序列,他可以帮助我们快速定位或者找到我们想要的数据字符。「Python」 自「v1.5」版本起增加了「re」 模块,它提供 「Perl」 风格的正则表达式模式。
下面是一些常用的正则表达式模式语法中的特殊元素:
正则符号
描述信息
^
匹配字符串的开头
$
匹配字符串的末尾。
.
匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[...]
用来表示一组字符,单独列出:[amk] 匹配 'a','m'或'k'
[^...]
不在[]中的字符:[^abc] 匹配除了a,b,c之外的字符。
re*
匹配0个或多个的表达式。
re+
匹配1个或多个的表达式。
re?
匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
re{ n}
精确匹配 n 个前面表达式。例如, o{2} 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的两个 o。
re{ n,}
匹配 n 个前面表达式。例如, o{2,} 不能匹配"Bob"中的"o",但能匹配 "foooood"中的所有 o。"o{1,}" 等价于 "o+"。"o{0,}" 则等价于 "o*"。
re{ n, m}
匹配 n 到 m 次由前面的正则表达式定义的片段,贪婪方式
a| b
匹配a或b
(re)
对正则表达式分组并记住匹配的文本
(?imx)
正则表达式包含三种可选标志:i, m, 或 x 。只影响括号中的区域。
(?-imx)
正则表达式关闭 i, m, 或 x 可选标志。只影响括号中的区域。
(?: re)
类似 (...), 但是不表示一个组
(?imx: re)
在括号中使用i, m, 或 x 可选标志
(?-imx: re)
在括号中不使用i, m, 或 x 可选标志
(?#...)
注释.
(?= re)
前向肯定界定符。如果所含正则表达式,以 ... 表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。
(?! re)
前向否定界定符。与肯定界定符相反;当所含表达式不能在字符串当前位置匹配时成功
(?> re)
匹配的独立模式,省去回溯。
\w
匹配字母数字及下划线
\W
匹配非字母数字及下划线
\s
匹配任意空白字符,等价于 [ \t\n\r\f]。
\S
匹配任意非空字符
\d
匹配任意数字,等价于 [0-9].
\D
匹配任意非数字
\A
匹配字符串开始
\Z
匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\z
匹配字符串结束
\G
匹配最后匹配完成的位置。
\b
匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 可以匹配"never" 中的 'er',但不能匹配 "verb" 中的 'er'。
\B
匹配非单词边界。'er\B' 能匹配 "verb" 中的 'er',但不能匹配 "never" 中的 'er'。
\n, \t, 等.
匹配一个换行符。匹配一个制表符。等
\1...\9
匹配第n个分组的内容。
\10
匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。
2.2 修饰符
【作用】
python函数修饰器@的作用是为现有函数增加额外的功能,常用于插入日志、性能测试、事务处理等等。
【处理逻辑】
当解释器读到@装饰符,会先解析@下一行的内容,把下一行的函数或者类作为@后边的函数的参数,执行被装饰的函数。
【实验测试】
- 修饰函数不带参数,例如log函数
>>> def log(func):
... def wrapper():
... print('Log Start')
... func()
... print('Log End')
... return wrapper
...
>>>
>>> @log
... def test():
... print('Test .. .. ..')
...
>>>
>>> test()
Log Start
Test .. .. ..
Log End
>>>
2.3 优先级
正则表达式遵循从左到右的计算规则,与算术规则类似。
运算符(符号)
描述信息
实验数据
+
加 - 两个对象相加
a + b 输出结果 30
-
减 - 得到负数或是一个数减去另一个数
a - b 输出结果 -10
*
乘 - 两个数相乘或是返回一个被重复若干次的字符串
a * b 输出结果 200
/
除 - x除以y
b / a 输出结果 2
%
取模 - 返回除法的余数
b % a 输出结果 0
**
幂 - 返回x的y次幂
a**b 为10的20次方, 输出结果 100000000000000000000
//
取整除 - 返回商的整数部分(向下取整)
>>>9//24>>>-9//2-5
3 内置函数包
3.1 引入re模块
re内置包包含了很多函数,例如「findall」 「search」 「split」 「sub」,引入内置函数包方式如下:
import re【函数名称以及用途】
- findall:返回包含所有匹配项的列表。匹配所有子窜,返回子窜列表;否则返回空列表;
- search:如果字符串中的任意位置存在匹配,则返回 Match 对象;否则返回None;
- split:返回在每次匹配时拆分字符串的列表。
- sub:用字符串替换一个或多个匹配项。简单言就是将匹配到的数据进行替换。
- macth:从起始位置开始匹配;不是起始位置匹配到返回None;
好了,简单的知识就到这里。