HTML 入门
- HTML,即超文本标记语言 (HyperText Markup Language),是一种用于创建网页的标准标记语言。它可以被用来组织网页的内容和结构,并且与 CSS(层叠样式表)和 JavaScript 一起,它构成了万维网的基础技术之一。
- HTML 文档由一系列的元素组成,这些元素通过标签标识,标签可以指示文本应该如何显示(例如段落、标题或列表),或者描述内容的性质(例如图片、链接)。
网络编程
- OSI 七层模型:开放系统互联参考模型
- TCP/IP:在 OSI 七层模型的基础上进行简化抽象出来的广泛使用的网络协议簇
- TCP:传输控制协议
- 有链接的、数据是安全的(有保障)
- 传输的速度相对较慢,三次握手、四次挥手、数据检查
- UDP:用户数据报协议
- 无连接的,数据不可靠的
- 传输速度相对较快
线程
- 在一个进程中,若想做多个子任务,我们把这些子任务称为线程。
- 线程可以理解为轻量级的进程。
- 进程之间的数据是独立的,而一个进程下的线程数据是共享的。
- 线程是 CPU 分配的最小单位。 进程和线程的调度都是操作系统的事。
- 一个进程默认有一个线程,我们称为主线程。
进程
- 进程(任务)
- 在计算机中,其实进程就是一个任务。
- 在操作系统中,进程是程序执行和资源分配的基本单元。
- 单核 CPU 实现多任务
- 只是将 CPU 的时间快速的切换和分配到不同的任务上。
- 主频足够高,切换足够快,人的肉眼无法分辨而已。
- 多核 CPU 实现多任务
- 如果任务的数量不超过 CPU 的核心数,完全可以实现一个核心只做一个任务。
- 在操作系统中几乎是可能的,任务的数量往往远远大于核心数。
- 同样的采用轮询的方式,轮流执行不同的任务,只是做任务的 “人” 有多个而已。
正则表达式 (二)
- 在 Python 的正则表达式中,转义字符用来表示那些在字符串中有特殊意义的字符。如果你想要匹配这些字符本身,而不是它们在正则表达式中的特殊功能,你需要在它们前面加上反斜杠(
\
)来进行转义。 - 当你使用 Python 字符串时,也可能需要对反斜杠进行转义。例如,为了匹配一个字面上的反斜杠,你可能需要在正则表达式字符串中写两个反斜杠
\\
来对其进行转义。因为在 Python 字符串中,一个反斜杠已经用来转义了。所以,要匹配一个反斜杠,正则表达式字符串通常是'\\\\'
。但是,如果你使用了 Python 的原始字符串(在字符串前加上r
或R
),就不需要这么做了,比如r'\\'
。
正则表达式 (一)
- 数据验证:检查字符串是否符合特定的格式,如电子邮件地址、电话号码、URL、IP 地址、日期格式等。
- 数据抽取:从文本中提取所需的信息,如提取日志文件中的日期、错误代码或者提取网页中的链接。
- 文本替换:在文本编辑器中进行查找和替换操作,或者在编程中对字符串进行复杂的替换,如大小写转换、删除多余空格等。
- 文本分割:使用复杂的分隔符或模式对字符串进行分割,得到字符串数组。
- 字符串解析:解析复杂格式的字符串,如解析自定义的配置文件内容。
- 语法高亮:在编程开发环境中,对代码进行语法高亮显示。
- 自然语言处理:在自然语言文本中识别句子、单词、短语的模式,如词干提取、词性标注等。
- Web 爬虫:从网页源码中提取所需的数据,如图片链接、特定的文本信息等。
- 文件重命名:在文件管理中,对大批量文件进行基于模式的重命名操作。
- 日志分析:提取、分析服务器日志文件中的关键信息,以便进行故障排除、性能监控等。
面向对象 (二)
- 当对对象按照字典操作时,会自动触发相关方法
- 示例:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26class Person:
# 当对象按照字典设置键值对时,会自动触发该方法
def __setitem__(self, key, value):
# print(key, value)
self.__dict__[key] = value
# 当对象按照字典操作根据键获取值时,会自动触发该方法
def __getitem__(self, item):
print(item)
return self.__dict__[item]
# 当做字典操作,删除键值对时,会自动触发该方法
def __delitem__(self, key):
del self.__dict__[key]
p = Person()
p['name'] = 'xiaoming'
print(p.name)
# 通过字典方式添加的键值对,可以通过属性的方式获取
# print(p['name'])
# print(p.__dict__)
del p['name']
# print(p.name)