1. 模块定义:
模块是包含一组函数的文件(后缀是.py的文件)
1.1 创建模块:
如需创建模块,只需将所需代码保存在文件扩展名为 .py 的文件中:
把我们实现的函数都保存在一个.py文件中,这样一个模块就有了。
例如: 我定义了模块 function.py
其中定义了函数:
# 使用def定义函数
def my_fuc(var1,var2):
print("value is :", str(var1 + var2))
return str(var1 + var2)
1.2 模块使用:
模块在其他地方使用,需要通过import进行引入。
1.2.1 模块函数的调用:
调用语法是:module_name.function_name
import function
x = function.my_fuc1(55,'tst')
print(x)
1.2.2 模块中变量的调用:
模块名称.变量名称
print(function.fuc_var)
1.2.3 重命名模块
使用import 模块名称 as 模块别名 方式重命名模块
import function as fuc
x = fuc.my_fuc1(55,'tst')
print(x)
print(fuc.fuc_var)
1.2.4 部分导入
使用 from 模块名称 import 导入部分(类/函数/变量)
例如下面代码中 导入了 模块testClass类MyCar,并重命名为mc
import function as fuc
from testClass import MyCar as mc
import platform
c = mc('Yellow','BMW')
print(c.showMyCar())
提示: 可以导入python内置模块platform,使用 dir函数获取模块的所有函数名(或变量名)
例如:
import function as fuc
from testClass import MyCar as mc
import platform
print(dir(fuc))
1.3 日期模块使用
import datetime
print(datetime.datetime.now())
print(datetime.datetime.now().utctimetuple())
print(datetime.date(2018,12,21))
print(datetime.date.today())
print(datetime.date(2024,5,6).ctime())
时间模块还有其他的,可以看看这位作者的博文:Python时间函数汇总-优快云博客
2. Python包
包中包含模块所需的所有文件。
模块是可以包含在项目中的 Python 代码库。
2.1 包管理
Python中使用包或者模块管理叫PIP
注释:如果您使用的是 Python 3.4 或更高版本,则默认情况下会包含 PIP。
2.1.1 安装 PIP
如果没有安装 PIP,可以从此页面下载并安装:https://pypi.org/project/pip/
2.1.2 包下载、卸载、使用
例如下载包numpy,
C:\Users\Your Name>pip install numpy
卸载包: C:\Users\Your Name>pip uninstall numpy
列出已安装包: C:\Users\Your Name>pip list
包使用: import numpy
import numpy
arr = numpy.array([1, 2, 3, 4, 5])
print(arr)
2.2 Python JSON 使用
JSON 是用于存储和交换数据的语法。
JSON 是用 JavaScript 对象表示法(JavaScript object notation)编写的文本。
import json 导入json包
2.2.1 json格式数据解析
使用json.loads() 进行解析json格式数据,返回结果是字典,例如:
import json
# json格式数据解析,返回结果是字典
x = '{ "name":"test123", "age":44, "city":"beijing"}'
y = json.loads(x)
print(y)
print(y["city"])
2.2.2 python转换成json:
python对象转换成json使用:json.dumps()
import json
# python转json,使用json.dumps()
a = { "name":"test123", "age":44, "city":"beijing"}
b = json.dumps(a)
print(b)
# 转换后格式化json,indent定义缩进
print(json.dumps(a, indent=4))
# separators定义分割符这意味着使用逗号和空格分隔每个对象,使用冒号和空格将键与值分开,
print(json.dumps(a, indent=4, separators=(". ", " = ")))
#sort_keys参数来指定是否应对结果进行排序
print(json.dumps(a, indent=4, sort_keys=True))
还可以把下面的对象转json字符串:
dict
list
tuple
string
int
float
True
False
None
import json
#json
print(json.dumps(["test1", "test2","test3"]))
print(json.dumps(("test1", "test2","test3")))
print(json.dumps("Test123"))
print(json.dumps(55))
print(json.dumps(43.12))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))
2.2.3 python转换json,等效项:
Python JSON
dict Object
list Array
tuple Array
str String
int Number
float Number
True rue
False false
None null
2.3 正则表达式(Rex)使用:
RegEx正则表达式是形成搜索模式的字符序列。
RegEx 可用于检查字符串是否包含指定的搜索模式。
Python 提供名为 re 的内置包,可用于处理正则表达式。
导入正则表达式包: import re
import re
txt = "Test is a test"
x = re.search("^Test.*test", txt)
print(x)
2.3.1 RegEx 函数
re 模块提供了一组函数,允许我们检索字符串以进行匹配:
函数 描述
findall 返回包含所有匹配项的列表, 如果没有匹配的就返回空列表 []
search 如果字符串中的任意位置存在匹配,则返回 Match 对象, 如果多次匹配,只返回第一个 匹配项,如无匹配项,则返回None。
split 返回在每次匹配时拆分字符串的列表,可以通过maxSplit参数限制匹配次数。
x = re.split("\s", str, 1) 第一次出现时分割字符串。
sub 用字符串替换一个或多个匹配项;
您可以通过指定 count 参数来控制替换次数: 控制替换前两次出现
x = re.sub("\s", "9", str, 2)
2.3.2 元字符
元字符是具有特殊含义的字符:
符 描述 示例
[] 一组字符 "[a-m]"
\ 示意特殊序列(也可用于转义特殊字符) "\d"
. 任何字符(换行符除外) "he..o"
^ 起始于 "^hello"
$ 结束于 "world$"
* 零次或多次出现 "aix*"
+ 一次或多次出现 "aix+"
{} 确切地指定的出现次数 "al{2}"
| 两者任一 "falls|stays"
() 捕获和分组
2.3.3 特殊序列
特殊序列指的是 \ 后跟下表中的某个字符,拥有特殊含义:
字符 | 描述 | 示例 |
\A | 如果指定的字符位于字符串的开头,则返回匹配项 | "\AThe" |
\b | 返回指定字符位于单词的开头或末尾的匹配项 | r"\bain" |
r"ain\b" | ||
\B | 返回指定字符存在的匹配项,但不在单词的开头(或结尾处) | r"\Bain" |
r"ain\B" | ||
\d | 返回字符串包含数字的匹配项(数字 0-9) | "\d" |
\D | 返回字符串不包含数字的匹配项 | "\D" |
\s | 返回字符串包含空白字符的匹配项 | "\s" |
\S | 返回字符串不包含空白字符的匹配项 | "\S" |
\w | 返回一个匹配项,其中字符串包含任何单词字符 | "\w" |
\W | 返回一个匹配项,其中字符串不包含任何单词字符 | "\W" |
\Z | 如果指定的字符位于字符串的末尾,则返回匹配项 | "Spain\Z" |
2.3.4 集合set
集合(Set)是一对方括号 [] 内的一组字符,具有特殊含义:
集合 | 描述 |
[arn] | 返回一个匹配项,其中存在指定字符(a,r 或 n)之一 |
[a-n] | 返回字母顺序 a 和 n 之间的任意小写字符匹配项 |
[^arn] | 返回除 a、r 和 n 之外的任意字符的匹配项 |
[0123] | 返回存在任何指定数字(0、1、2 或 3)的匹配项 |
[0-9] | 返回 0 与 9 之间任意数字的匹配 |
[0-5][0-9] | 返回介于 0 到 9 之间的任何数字的匹配项 |
[a-zA-Z] | 返回字母顺序 a 和 z 之间的任何字符的匹配,小写或大写 |
[+] | 在集合中,+、*、.、|、()、$、{} 没有特殊含义,因此 [+] 表示:返回字符串中任何 + 字符的匹配项 |
2.3.5 Match 对象
Match 对象是包含有关搜索和结果信息的对象
注释:如果没有匹配,则返回值 None,而不是 Match 对象。
Match 对象提供了用于取回有关搜索及结果信息的属性和方法:
span()
返回的元组包含了匹配的开始和结束位置.string
返回传入函数的字符串group()
返回匹配的字符串部分
import re
txt = "Test is a test"
x = re.search("^Test.*test", txt)
x1 = re.findall("c",txt)
print(x.string)
print(x.span())
print(x.group())