[学习笔记]黑马程序员python教程

这篇具有很好参考价值的文章主要介绍了[学习笔记]黑马程序员python教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

思维导图

Python基础知识图谱

黑马程序员python讲义pdf,python,数据分析师,python,学习

面向对象

黑马程序员python讲义pdf,python,数据分析师,python,学习

SQL入门和实战

黑马程序员python讲义pdf,python,数据分析师,python,学习

Python高阶技巧

黑马程序员python讲义pdf,python,数据分析师,python,学习

第一阶段

第九章:Python异常、模块与包

1.9.1异常的捕获

1.9.1.1 为什么要捕获异常

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.9.1.2 捕获常规的异常

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.9.1.3 捕获指定的异常

黑马程序员python讲义pdf,python,数据分析师,python,学习
e是接受异常信息的变量

1.9.1.4 捕获多个异常

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.9.1.5 捕获全部异常
try:
	代码
except Exception as e:
	处理异常
1.9.1.6 异常的else

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.9.1.7 异常的finally

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.9.2 异常的传递

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
如果异常是在某一层产生,但是没有被catch,那么会继续往上层抛出,此时这一层的后续代码就不会执行。直到异常在某一层被catch,这一层的后续代码能继续执行。

1.9.3 Python模块

1.9.3.1 什么是模块

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.9.3.2 模块的导入

黑马程序员python讲义pdf,python,数据分析师,python,学习

一般不要用from 模块名 import *,因为这样相当于把模块里的全部代码都导入python程序内,可能会出现重名问题。

1.9.3.3 自定义模块

黑马程序员python讲义pdf,python,数据分析师,python,学习

注意:当导入多个模块时,且模块内有同名功能。当调用这个同名功能时,调用的是后面导入的模块的功能。

  • __main__
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • __all__变量
    黑马程序员python讲义pdf,python,数据分析师,python,学习

指定导入不受__all__影响

1.9.4 Python包

1.9.4.1 什么是Python包

黑马程序员python讲义pdf,python,数据分析师,python,学习

必须有__init__.py文件才是python包

1.9.4.2 导入包
  • 方式一:
import 包名.模块名
包名.模块名.功能
from 包名 import 模块名
模块名.功能
from 包名.模块名 import 功能
功能
  • 方式二:
    必须在__init__.py文件中添加__all__ = [],来控制from 包名 import *允许导入的模块列表
1.9.4.3 安装第三方包

黑马程序员python讲义pdf,python,数据分析师,python,学习

  • 如何安装第三方包
pip install 包名
  • pip的网络优化
    pip默认连接国外的服务器下载包,可以通过命令在国内的镜像服务器下载包
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple 包名

pycharm也可以在右下角“解释器设置”中添加新的python包,下载时可以添加option参数来通过国内镜像服务器下载包

第十章:数据可视化-折线图可视化

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.10.1 json数据格式

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

为了将含中文的python数据转化为json字符串,需要使用参数ensure_ascii为False,表明不使用ascii码进行转化,而把内容直接输出出去,为True,则中文会转化为Unicode的字符

json_str = json.dumps(data, ensure_ascii=False)

1.10.2 pyecharts模块

pyecharts官网:pyecharts.org
pyecharts画廊官网:gallery.pyecharts.org(类似美术的展览会)
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
全局配置:针对图像进行设置,如标题、图例、工具箱
系列配置:针对具体轴数据进行设置
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

1.10.3 数据处理

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

1.10.4 创建折线图

黑马程序员python讲义pdf,python,数据分析师,python,学习

第十一章:数据可视化-地图可视化

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.11.1 基础地图使用

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

is_piecewise=True表示开始手动校准范围
pieces表示具体的范围是多少
可以通过ab173.com的前端rgb颜色对照表来查看某种颜色对应的16位的颜色代码

1.11.2 国内疫情地图

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.11.3 省级疫情地图-河南省

第十二章:数据可视化-动态柱状图

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.12.1 基础柱状图

黑马程序员python讲义pdf,python,数据分析师,python,学习

  • 反转柱状图,同时将数值标签放在右边
bar.add_yaxis("GDP", [30, 20, 10], label_opts=LabelOpts(position="right"))
bar.reversal_axis()

1.12.2 基础时间线柱状图

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

  • 设置自动播放
timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_auto_play=True,
    is_loop_play=True
)
  • 时间线设置主题
    黑马程序员python讲义pdf,python,数据分析师,python,学习
import pyecharts.globals import ThemeType
timeline = Timeline(
	{"theme": ThemeType.LIGHT}
)

1.12.3 GDP动态柱状图绘制

黑马程序员python讲义pdf,python,数据分析师,python,学习

1.12.3.1 列表的sort方法

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

1.12.3.2 数据处理

黑马程序员python讲义pdf,python,数据分析师,python,学习

python3.6后,字典是有序的,参考:https://juejin.cn/post/7041433783362387982
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
由于bar.reversal_axis()会将从左到右从大到小变成从上到下,从小到大,所以在绘制柱状图之前需要将x_data和y_data都反转一下

from pyecharts.charts import Bar, Timeline
from pyecharts.options import LabelOpts, TitleOpts
from pyecharts.globals import ThemeType

with open("D:\计算机\Python\黑马程序员python教程\资料\可视化案例数据\动态柱状图数据\\1960-2019全球GDP数据.csv", "r", encoding="GB18030") as f:
    data_lines = f.readlines()

data_lines.pop(0)

data_dict = {}
for line in data_lines:
    line_list = line.split(",")
    year = int(line_list[0])
    country = line_list[1]
    gdp = float(line_list[2])
    try:
        data_dict[year].append([country, gdp])
    except KeyError:
        data_dict[year] = [[country, gdp]]

timeline = Timeline(
    {"theme": ThemeType.LIGHT}
)

for year in data_dict:
    data_dict[year].sort(key = lambda x: x[1], reverse=True)
    year_data = data_dict[year][:8]
    x_data = []
    y_data = []
    for country_gdp in year_data:
        x_data.append(country_gdp[0])
        y_data.append(country_gdp[1] / 1E8)

    bar = Bar()
    x_data.reverse()
    y_data.reverse()
    bar.add_xaxis(x_data)
    bar.add_yaxis("GDP(亿)", y_data, label_opts=LabelOpts(position="right"))
    bar.reversal_axis()
    bar.set_global_opts(
        title_opts=TitleOpts(title=f"{year}年全球前8GDP数据")
    )
    timeline.add(bar, str(year))

timeline.add_schema(
    play_interval=1000,
    is_timeline_show=True,
    is_auto_play=True,
    is_loop_play=True
)

timeline.render("1960-2019全球GDP前8国家.html")

第二阶段

第一章:面向对象

2.1.1 初识对象

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.2 类的成员方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

定义在类内部的函数称之为类的方法
黑马程序员python讲义pdf,python,数据分析师,python,学习
self相当于以后会创建但在定义类时还不存在的对象

2.1.3 类和对象

黑马程序员python讲义pdf,python,数据分析师,python,学习

面向对象编程:设计类,基于类创建对象,由对象做具体的工作

2.1.4 构造方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.5 其他内置方法-魔术方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.5.1 __str__字符串方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.5.2 __lt__小于符号比较方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.5.3 __le__小于等于比较符号方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.5.4 __eq__比较运算符实现方法

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.6 封装

面向对象包含3大特性:封装、继承、多态
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.6.1 私有成员

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.7 继承

2.1.7.1 单继承

黑马程序员python讲义pdf,python,数据分析师,python,学习

继承表示:将从父类那里继承(复制)成员变量和成员方法(不含私有)

2.1.7.2 多继承

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

pass关键字是用来补全语法的

2.1.7.3 复写和使用父类成员

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.8 类型注解

2.1.8.1 变量的类型注解

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.8.2 函数(方法)的类型注解
  • 函数(方法)的形参的类型注解
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 函数(方法)的返回值的类型注解
    黑马程序员python讲义pdf,python,数据分析师,python,学习
2.1.8.3 Union类型

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.9 多态

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.10 综合案例

2.1.10.1 要求和数据内容

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.10.2 需求分析

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.1.10.3 文件读取
  • data_define.py
"""
数据定义的类
"""

class Record:
    def __init__(self, date, order_id, money, province):
        self.date = date            # 订单日期
        self.order_id = order_id    # 订单ID
        self.money = money          # 订单金额
        self.province = province    # 销售省份

    def __str__(self):
        return f"{self.date}, {self.order_id}, {self.money}, {self.province}"

  • file_define.py
"""
和文件相关的类定义
"""
import json
from data_define import Record


# 先定义一个抽象类用来做顶层设计,确定有哪些功能需要实现
class FileReader:

    def read_data(self) -> list[Record]:
        """读取文件的数据,读到的每一条数据都转换为Record对象,将它们都封装到list内返回即可"""
        pass


class TextFileReader(FileReader):

    def __init__(self, path):
        self.path = path              # 定义成员变量记录文件的路径

    # 复写(实现抽象方法)父类的方法
    def read_data(self) -> list[Record]:
        with open(self.path, 'r', encoding='utf-8') as f:
            record_list: list[Record] = []
            for line in f.readlines():
                line = line.strip()    # 消除读取到的每一行数据中的\n
                data_list = line.split(",")
                record = Record(data_list[0], data_list[1], int(data_list[2]), data_list[3])
                record_list.append(record)
        return record_list


class JsonFileReader(FileReader):

    def __init__(self, path):
        self.path = path              # 定义成员变量记录文件的路径

    def read_data(self) -> list[Record]:
        with open(self.path, 'r', encoding='utf-8') as f:
            record_list: list[Record] = []
            for line in f.readlines():
                data_dict = json.loads(line)
                record = Record(data_dict['date'], data_dict['order_id'], int(data_dict['money']), data_dict['province'])
                record_list.append(record)
        return record_list


if __name__ == '__main__':
    text_file_reader = TextFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年1月销售数据.txt")
    json_file_reader = JsonFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年2月销售数据JSON.txt")
    list1 = text_file_reader.read_data()
    list2 = json_file_reader.read_data()

    for l in list1:
        print(l)

    for l in list2:
        print(l)
2.1.10.4 数据计算
  • main.py
from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record

text_file_reader = TextFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年1月销售数据.txt")
json_file_reader = JsonFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年2月销售数据JSON.txt")

jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()
# 将2个月份的数据合并为1个list来存储
all_data: list[Record] = jan_data + feb_data

# 开始进行数据计算
data_dict = {}
for record in all_data:
    if record.date in data_dict:
        data_dict[record.date] += record.money
    else:
        data_dict[record.date] = record.money
2.1.10.5 可视化开发
# 可视化图表开发
bar = Bar(init_opts=InitOpts(ThemeType.LIGHT))
bar.add_xaxis(list(data_dict.keys())) # 添加x轴数据
bar.add_yaxis("销售额", list(data_dict.values()), label_opts=LabelOpts(is_show=False))
bar.set_global_opts(
    title_opts=TitleOpts(title="每日销售额")
)

bar.render("每日销售额柱状图.html")

第二章:SQL入门和实战

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.1 数据库介绍

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.1.1 数据库管理系统

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.1.2 数据库和SQL的关系

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.2 MySQL的安装

mysql的官网:www.mysql.com
略,详细请参考视频

2.2.3 MySQL的入门使用

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.4 SQL基础与DDL

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.4.1 SQL语法特征

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.4.2 数据库定义语言-DDL
  • DDL-库管理
# 查看数据库
SHOW DATABASES;
# 使用数据库
USE 数据库名称;
# 创建数据库
CREATE DATABASE 数据库名称 [CHARSET UTF8];
# 删除数据库
DROP DATABASE 数据库名称;
# 查看当前使用的数据库
SELECT DATABASE();
  • DDL-表管理
# 查看有哪些表
show tables;
# 删除表
drop table 表名称;
drop table if exists 表名称;
# 创建表
create table 表名称(
	列名称 列类型,
	列名称 列类型,
	......
);
-- 列类型有
int	 			-- 整数
float 			-- 浮点数
varchar(长度) 	-- 文本,长度为数字,做最大长度限制
date			-- 日期类型
timestamp		-- 时间戳类型

2.2.5 SQL-DML

DML-数据操作语言。

  • 插入
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 删除
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 更新
    黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.6 SQL-DQL

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.7 Python & MySQL

2.2.7.1 安装pymysql

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.7.2 创建到MySQL的数据库链接

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.7.3 执行非查询性质的SQL语句
cursor = conn.cursor()
conn.select_db("test")
cursor.execute("create table test_pymysql2(id int)")
2.2.7.4 执行查询性质的SQL语句
cursor = conn.cursor()
conn.select_db("world")
cursor.execute("select * from student")
results = cursor.fetchall()
for r in results:
    print(r)
2.2.7.5 数据插入
  • commit提交 黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 自动conmmit 黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.8 综合案例

2.2.8.1 创建表

黑马程序员python讲义pdf,python,数据分析师,python,学习

2.2.8.2 实现步骤

黑马程序员python讲义pdf,python,数据分析师,python,学习

from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record
from pymysql import Connection

text_file_reader = TextFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年1月销售数据.txt")
json_file_reader = JsonFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年2月销售数据JSON.txt")

jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()
# 将2个月份的数据合并为1个list来存储
all_data: list[Record] = jan_data + feb_data

conn = Connection(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="xxxxxx",
    autocommit=True
)

cursor = conn.cursor()
conn.select_db("py_sql")
for record in all_data:
    sql = f"INSERT INTO orders(`order_date`, `order_id`, `money`, `province`) " \
          f"VALUES ('{record.date}', '{record.order_id}', {record.money}, '{record.province}')"
    cursor.execute(sql)

conn.close()
2.2.8.3 作业

黑马程序员python讲义pdf,python,数据分析师,python,学习

import json
from file_define import FileReader, TextFileReader, JsonFileReader
from data_define import Record
from pymysql import Connection

text_file_reader = TextFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年1月销售数据.txt")
json_file_reader = JsonFileReader("D:\\计算机\\Python\\黑马程序员python教程\\资料\\数据分析案例\\2011年2月销售数据JSON.txt")

jan_data: list[Record] = text_file_reader.read_data()
feb_data: list[Record] = json_file_reader.read_data()
# 将2个月份的数据合并为1个list来存储
all_data: list[Record] = jan_data + feb_data

conn = Connection(
    host="127.0.0.1",
    port=3306,
    user="root",
    password="xxxxxx",
    autocommit=True
)

cursor = conn.cursor()
conn.select_db("py_sql")
sql = f"select * from orders"
cursor.execute(sql)

with open("./json.txt", 'a', encoding='utf-8') as f:
    for line in cursor.fetchall():
        dict = {}
        dict['date'] = str(line[0])
        dict['order_id'] = line[1]
        dict['money'] = line[2]
        dict['province'] = line[3]
        tmp = json.dumps(dict, ensure_ascii=False)
        f.write(tmp + '\n')

conn.close()

第三阶段:PySpark案例实战

3.1.1 Spark是什么

Apache Spark是用于大规模数据处理的统一分析引擎。简单来说,Spark是一款分布式计算框架,可以调度成百上千的服务器集群。

3.1.2 PySpark

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习
因为已经学过PySpark了,这里略。

3.2 Python高阶技巧

3.2.1 闭包

  • 闭包(函数)
    黑马程序员python讲义pdf,python,数据分析师,python,学习

  • 在闭包(函数)内修改外部函数的值-nonlocal关键字
    黑马程序员python讲义pdf,python,数据分析师,python,学习

  • 优缺点 黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.2 装饰器

黑马程序员python讲义pdf,python,数据分析师,python,学习

装饰器核心思想是:将需要被包装的函数作为参数传递
黑马程序员python讲义pdf,python,数据分析师,python,学习
语法糖:也叫糖衣语法,对语言的功能并没有影响,而是更方便程序员使用

3.2.3 设计模式

黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.3.1 单例模式

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.3.2 工厂模式

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.4 多线程

3.2.4.1 进程、线程

黑马程序员python讲义pdf,python,数据分析师,python,学习

进程是系统资源调度的基本单位,线程是系统资源的最小单位

黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.4.2 并行执行

黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.4.3 多线程编程
  • threading模块
    黑马程序员python讲义pdf,python,数据分析师,python,学习

每个Thread类对象就是多线程中的一个线程
把工作封装到函数里,然后传入到target参数

  • 具体需求
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 代码实现
  • 黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 传参
    黑马程序员python讲义pdf,python,数据分析师,python,学习
    黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.5 网络编程

3.2.5.1 Socket

黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.5.2 客户端和服务端

黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.5.3 Socket服务端编程

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

  • 实现服务端并结合客户端进行测试
    黑马程序员python讲义pdf,python,数据分析师,python,学习
import socket

# 创建Socket对象
socket_server = socket.socket()
# 绑定ip地址和端口
socket_server.bind(('localhost', 8888))
# 监听端口
socket_server.listen(1)
# listen方法内接受一个整数传参数,表示接受链接数量
# 等待客户端链接
conn, address = socket_server.accept()
# accpet方法返回的是二元元组(链接对象, 客户端地址信息)
# accpet方法是阻塞方法,等待客户端链接,如果没有链接,就卡在这一行不向下执行
print(f"接收到了客户端的链接,客户端的信息是:{address}")
# 接受客户端信息
data = conn.recv(1024).decode('utf8')
# recv也是阻塞方法,等待客户端发送信息
# recv接受的参数是缓冲区大小,一般给1024即可
# recv方法的返回值是一个字节数组(bytes对象),不是字符串,可以通过decode方法通过utf0编码,将字节数组转换为字符串对象
print(f"客户端发来的消息是:{data}")
# 发送恢复消息
msg = input("请输入你要和客户端回复的消息:")
conn.send(msg.encode('utf8'))
# encode可以将字符串编码为字节数组对象
conn.close()
socket_server.close()
3.2.5.4 Socket客户端开发

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.6 正则表达式

黑马程序员python讲义pdf,python,数据分析师,python,学习

3.2.6.1 正则的三个基础方法
  • re.match

黑马程序员python讲义pdf,python,数据分析师,python,学习

  • re.search
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • re.findall
    黑马程序员python讲义pdf,python,数据分析师,python,学习
3.2.6.2 元字符匹配
  • 单字符匹配
    黑马程序员python讲义pdf,python,数据分析师,python,学习

字符串前面带上r的标记,表示字符串中转义字符无效,就是普通字符的意思

  • 数量匹配
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 边界匹配
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 分组匹配
    黑马程序员python讲义pdf,python,数据分析师,python,学习
  • 案例
    黑马程序员python讲义pdf,python,数据分析师,python,学习

{}中间别带空格

3.2.7 递归

黑马程序员python讲义pdf,python,数据分析师,python,学习
黑马程序员python讲义pdf,python,数据分析师,python,学习文章来源地址https://www.toymoban.com/news/detail-723818.html

到了这里,关于[学习笔记]黑马程序员python教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot-黑马程序员-学习笔记(三)

    目录 30.springboot整合MyBatis-plus 32.SSM整合 38.MP中的条件查询 小知识:许多放在类前面的注解,比如@Mapper,@Service都是将该类定义成一个Bean,交给spring管理 39.Service模块 1.创建普通springboot项目,勾选Mysql 框架 2.在pom包里面导入mybatis-plus的坐标 3.把数据层的类继承BaseMapper这个接口

    2024年02月07日
    浏览(42)
  • 学习笔记-微服务高级(黑马程序员)

    测试软件 jmeter 雪崩问题 个微服务往往依赖于多个其它微服务,服务提供者I发生了故障,依赖于当前服务的其它服务随着时间的推移形成级联失败 超时处理 设定超时时间,请求超过一定时间没有响应就返回错误信息 仓壁模式 限定每个业务能使用的线程数,避免耗尽整个tom

    2024年04月25日
    浏览(48)
  • Linux命令基础,黑马程序员学习笔记

    command [-options] [parameter] command:命令本身 -options:[可选,非必填]命令的一些选项,可以通过选项控制命令的行为细节 parameter:[可选,非必填]命令的参数,多数用于命令的指向目标等 示例: ls -l /home/itheima ls是命令本身,-l是选项, /home/itheima是参数意思是以列表的形式,显示/home

    2024年02月19日
    浏览(89)
  • 黑马程序员Java零基础视频教程笔记-面向对象

    1. 面向对象介绍 ① 面向:拿、找 ② 对象:能干活的东西 ③ 面向对象编程:拿东西过来做对应的事情 2. 面向对象重点学习什么 ① 学习获取已有对象并使用 ② 学习如何设计对象并使用 1. 类和对象 ① 类(设计图):是对象共同特征的描述; ② 对象:是真实存在的具体东西

    2024年02月01日
    浏览(43)
  • Python黑马程序员(Spark实战)笔记

     pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyspark 注意:字符串返回的是[\\\'a\\\',\\\'b\\\',\\\'c\\\',\\\'d\\\',\\\'e\\\',\\\'f\\\',\\\'g\\\']   字典返回的是[\\\'key1\\\',\\\'key2\\\']   读取hello.txt的内容: 注意: 如果没有添加上行代码程序会报出错误! Caused by: org.apache.spark.SparkException: Python worker failed to connect back.  解释器的位置

    2024年02月05日
    浏览(67)
  • 黑马程序员Java零基础视频教程笔记-运算符

    1. 运算符和表达式 ① 运算符:对字面量或者变量进行操作的符号 ② 表达式:用运算符把字面量或者变量连接起来,符合java语法的式子就可以称为表达式。 不同运算符连接的表达式体现的是不同类型的表达式。 ③ 举例 int a = 10; int b = 20; int c = a + b; +:是运算符,并且是算术

    2024年02月01日
    浏览(43)
  • 黑马程序员Java零基础视频教程笔记-字符串

    1. API 应用程序编程接口 2. 简单理解 API就是别人已经写好的东西,我们不需要自己编写,直接使用即可 3. Java API 指的就是JDK中提供的各种功能的Java类 这些类将底层的实现封装了起来,我们不需要关心这些类是如何实现的,只要学习这些类如何使用即可 4. 样例 1. 字符串学习

    2024年02月01日
    浏览(40)
  • 小程序入门笔记(一) 黑马程序员前端微信小程序开发教程

    微信小程序基本介绍 小程序和普通网页有以下几点区别: 运行环境:小程序可以在手机的操作系统上直接运行,如微信、支付宝等;而普通网页需要在浏览器中打开才能运行。 开发技术:小程序采用前端技术进行开发,如HTML、CSS、JavaScript等;而普通网页也是使用类似的前

    2024年02月08日
    浏览(48)
  • 黑马程序员 Java设计模式学习笔记(一)

    目录 一、设计模式概述 1.1、23种设计模式有哪些? 1.2、软件设计模式的概念 1.3、学习设计模式的必要性 1.4、设计模式分类 二、UML图 2.1、类图概述 2.2、类图的作用 2.3、类图表示法 类的表示方式 类与类之间关系的表示方式 关联关系 聚合关系 组合关系 依赖关系 继承关系

    2024年01月19日
    浏览(46)
  • 黑马程序员--分布式搜索ElasticSearch学习笔记

    黑马视频地址:https://www.bilibili.com/video/BV1LQ4y127n4/ 想获得最佳的阅读体验,请移步至我的个人博客 SpringCloud学习笔记 消息队列MQ学习笔记 Docker学习笔记 分布式搜索ElasticSearch学习笔记 ElasticSearch的作用 ElasticSearch 是一款非常强大的开源搜素引擎,具备非常强大的功能,可以帮

    2024年02月04日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包