作者文章归档:zuojie@88.com

Python网络编程


Python 网络编程是指通过 Python 实现计算机之间的网络通信,核心是利用网络协议(如 TCP、UDP、HTTP 等)在不同设备或进程间传输数据。Python 提供了丰富的库支持网络编程,从底层的 socket 接口到高层的 HTTP 框架,覆盖了从简单通信到复杂 Web 服务的全场景。

一、网络编程基础:TCP/IP 与 Socket

网络通信的基础是 TCP/IP 协议族,其中:

  • IP 协议:负责将数据从一个主机传输到另一个主机(基于 IP 地址定位主机)。
  • TCP/UDP 协议:位于传输层,负责数据在主机内的进程间传输(基于端口区分进程)。
  • TCP:面向连接、可靠传输(数...

Read more

GO指针


指针

指针概念在Go语言中被拆分为两个核心概念:

  • 类型指针,允许对这个指针类型的数据进行修改。传递数据使用指针,而无须拷贝数据。类型指针不能进行偏移和运算。
  • 切片,由指向起始元素的原始指针、元素数量和容量组成。

认识指针地址和指针类型

每个变量在运行时都拥有一个地址,这个地址代表变量在内存中的位置。Go语言中使用“&”操作符放在变量前面对变量进行“取地址”操作。

ptr := &v  // v的类型为T

其中v代表被取地址的变量,被取地址的v使用ptr变量进行接收,ptr的类型就为“*T”,称做T的指针类型。*代表指针。

  • 创建D:\go\src\指针\main....

Read more

Python正则表达式


Python 正则表达式(Regular Expression)是一种用于匹配、查找、替换字符串的强大模式语言,通过特殊的语法规则定义字符串的匹配模式,广泛应用于文本验证(如邮箱、手机号)、信息提取(如从文本中抓取值)、字符串替换等场景。Python 中通过内置的 re 模块提供对正则表达式的支持。

一、正则表达式的核心概念

正则表达式本质是一个字符串模式,用于描述“什么样的字符串符合规则”。例如,模式 r"^\d{3}-\d{8}$" 可匹配“010-12345678”这样的固定电话格式。

  • 元字符:正则表达式中具有特殊含义的字符(如 .*+ 等),是构建模式的核心。
  • 普通字符...

Read more

Python并发编程


Python 多线程是并发编程的基础手段之一,适用于处理 I/O 密集型任务(如网络请求、文件读写等)。它通过在同一进程内创建多个线程,共享进程资源,实现任务的“并发”执行(宏观上同时进行,微观上 CPU 快速切换)。本文将详细介绍 Python 多线程的核心概念、实现方式、同步机制及应用场景。

一、核心概念:线程与 GIL

1. 线程(Thread)

线程是进程内的最小执行单元,一个进程可以包含多个线程。线程共享进程的内存空间(如全局变量、文件句柄等),但拥有独立的栈空间(用于函数调用和局部变量)。

  • 优势:创建和切换成本远低于进程,适合任务间需要频繁通信的场景。
  • 适用场景:I...

Read more

Python面向对象编程进阶


Python 面向对象编程(OOP)的进阶内容涵盖了更灵活的类设计、高级特性(如属性装饰器、类方法)、复杂继承关系、抽象类等,这些特性能帮助开发者设计更健壮、可扩展的代码。以下是核心进阶知识点:

一、属性装饰器(@property):优雅的属性访问控制

在基础 OOP 中,我们通过 get_xx()set_xx() 方法控制属性访问(封装),而 @property 装饰器可以将方法“伪装”成属性,实现更简洁的访问方式,同时保留封装性。

1. 基本用法:只读属性

@property 装饰一个方法,使其可像属性一样直接访问(无需加括号),通常用于“只读”属性(只提供获取逻辑)。 ...

Read more

Python面向对象编程入门


Python面向对象编程入门

Python 面向对象编程(Object-Oriented Programming,简称 OOP)是一种以“对象”为核心的编程思想,通过封装、继承、多态等特性,将数据(属性)和操作数据的行为(方法)组织在一起,使代码更模块化、可复用、易维护。相比面向过程(按步骤执行),OOP 更适合描述复杂事物和大型项目。

一、核心概念:类与对象

OOP 的核心是类(Class)对象(Object)

  • :是对一类事物的抽象模板,定义了这类事物的共同属性(特征)和方法(行为)。例如,“狗”是一个类,属性包括“名字、年龄”,方法包括“叫、跑”。
  • 对象:是类的具体实例...

Read more

Pandas数据清洗


pandas数据清洗

数据清洗的原因

在原始数据中存在:

  • 缺失值
  • 异常值
  • 重复值

处理空值

两种空值

  • None
    • 类型为None对象,不能参与运算
  • np.nan
    • 类型为float,可以参与运算

pandas处理空值的方法

  • isnull
  • notnull
  • any
  • all
  • dropna
  • fillna
import numpy as np
import pandas as pd
from pandas import DataFrame,Series

# 伪造一些数据(存在空值)
df = DataFrame(data=np.random.randint(0,10,size=...

Read more

Go基础语法


Go基础知识(一)

Go命令行和项目结构

Go的工作区目录结构有bin、pkg、src三个(在GOPATH目录下):

  • bin:编译后的可执行程序的存储目录。

  • pkg:编译时生成的对象文件。

  • src:库文件。

    这些都是Go设计者的约定,只需按照这样的方式组织目录结构即可。

    GOPATH环境变量生效时个人项目可以在src目录下创建新目录,第三方库存放在src的github.com目录下。

Go版本1.11以上支持设置GOROOT环境变量,在任意目录下创建项目程序即可。安装Go语言开发系统后,内置的命令行工具常用的命令如下:

go build:将程序编译成可执行文件。

go r...

Read more

Go语言简介


Go语言简介

Go语言比较“年轻”,是Google的罗伯特·格瑞史莫(Robert Griesemer),罗勃·派克(Rob Pike)及肯·汤普逊(Ken Thompson)开发的,它是一种静态强类型、编译型、并发型的编程语言,并具有垃圾回收功能。由于Go语言拥有丰富的生态系统,且其开发团队阵容强大,因此一经问世就得到众多用户的青睐。

Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后来追加了Windows系统下的实现。在2016年,Go被软件评价公司TIOBE 选为“TIOBE 2016 年最佳语言”。

Go语言的特性

1.语...

Read more

Python模块和包


在 Python 中,模块(Module)包(Package) 是组织代码的核心机制,用于实现代码复用、模块化管理和避免命名冲突。尤其在大型项目中,合理使用模块和包能显著提升代码的可维护性。

一、模块(Module):单个 Python 文件

模块是一个以 .py 为扩展名的 Python 文件,包含函数、类、变量和可执行代码。简单来说:一个 .py 文件 = 一个模块

1. 模块的作用

  • 代码复用:将常用功能(如工具函数、类)封装到模块中,其他程序可直接导入使用,无需重复编写。
  • 模块化管理:将复杂程序拆分为多个模块,每个模块负责单一功能,逻辑更清晰。
  • 避免命名冲突:不同...

Read more