Python 进阶部分详细整理
1. 面向对象编程(OOP)
面向对象编程 (OOP) 是一种通过将程序中的数据和功能封装为对象的编程范式。OOP 基于四个核心概念:类与对象、继承、封装与多态。
类与对象
-
类(Class):类是创建对象的蓝图或模板。它定义了对象的属性和方法。在 Python 中,使用
class
关键字定义一个类。class Dog:def __init__(self, name, breed): # 构造函数self.name = name # 实例属性self.breed = breed
-
__init__()
是类的构造函数,用于初始化对象。在创建对象时,__init__()
自动被调用。
-
-
对象(Object):对象是类的实例,类定义了对象的属性和行为,每个对象是独立的。
my_dog = Dog("Buddy", "Golden Retriever") # 创建对象
类的属性与方法
-
实例属性:每个对象独立拥有的属性,通过
self
引用。 -
类属性:所有对象共享的属性,定义在类级别。
class Dog:species = 'Canine' # 类属性 def __init__(self, name, breed):self.name = name # 实例属性
-
实例方法:操作对象数据的方法,定义在类中,并使用
self
参数访问对象的属性和其他方法。 -
类方法(@classmethod):通过
@classmethod
修饰的类方法,使用cls
访问类属性,能作用于类本身而不是具体对象。@classmethod def set_species(cls, new_species):cls.species = new_species
-
静态方法(@staticmethod):不需要访问实例属性或类属性,使用
@staticmethod
修饰。@staticmethod def bark():print("Woof!")
继承
-
单继承:一个子类继承一个父类,子类继承父类的属性和方法。
class Animal:def __init__(self, name):self.name = name def speak(self):return "Animal sound" class Dog(Animal): # Dog 继承自 Animaldef speak(self):return "Woof!"
-
多继承:一个子类可以继承多个父类。Python 允许多继承,但需要小心处理父类方法的冲突。
-
super()
:用于在子类中调用父类的方法,特别是在构造函数中,可以避免手动调用父类。class Puppy(Dog):def __init__(self, name, breed):super().__init__(name, breed) # 调用父类构造函数
封装、继承与多态
-
封装:将数据(属性)和操作数据的代码(方法)打包在一起,并通过控制访问权限(如私有和公有属性)来保护数据。
-
继承:子类继承父类的属性和方法,从而实现代码复用。
-
多态:不同类的对象可以以相同的接口使用。例如,
Dog
和Cat
类都可以有speak()
方法,尽管它们的实现不同,Python 中可以调用相同的接口。
特殊方法
Python 中有一些双下划线开头和结尾的特殊方法(又称为魔术方法),这些方法可以为类实现特定的行为。
-
__str__()
:定义对象的可打印字符串表示。def __str__(self):return f"Dog({self.name}, {self.breed})"
-
__repr__()
:返回对象的官方字符串表示,通常用于调试。 -
__len__()
:使类可以使用len()
函数。 -
__eq__()
:使类支持==
运算符,用于对象比较。
2. 生成器与迭代器
迭代器
-
迭代器(Iterator):迭代器是实现了
__iter__()
和__next__()
方法的对象。__iter__()
返回迭代器对象本身,__next__()
返回容器的下一个元素,当没有元素时,抛出StopIteration
。class MyIterator:def __init__(self, limit):self.limit = limitself.count = 0 def __iter__(self):return self def __next__(self):if self.count < self.limit:self.count += 1return self.countelse:raise StopIteration
-
使用
iter()
和next()
:iter()
将对象转换为迭代器,next()
获取下一个值。it = iter(MyIterator(5)) print(next(it)) # 输出 1
生成器
-
生成器函数:生成器函数使用
yield
而不是return
返回值。生成器每次被调用时都会返回一个值,保持其状态(即函数内的局部变量在多次调用中不会被重置)。生成器是一种懒惰求值的方式,只有在需要的时候才生成值,适合处理大量数据。def countdown(n):while n > 0:yield nn -= 1
-
生成器表达式:生成器表达式是类似列表推导式的语法,但它不会一次性生成所有元素,而是逐步生成,节省内存。
gen_exp = (x * x for x in range(10)) # 生成器表达式
通过生成器,我们可以处理大数据集,而不会耗尽内存。例如,处理一大段日志文件时可以使用生成器按行读取。
3. 装饰器
函数装饰器
装饰器是一种设计模式,用来在不修改函数定义的情况下,动态地为函数增加功能。在 Python 中,可以使用 @
符号来应用装饰器。装饰器本质上是一个函数,它接收另一个函数作为参数,并返回一个新函数。
示例:
def my_decorator(func):def wrapper():print("Something before the function runs")func()print("Something after the function runs")return wrapper @my_decorator def say_hello():print("Hello!") say_hello()
输出:
Something before the function runs Hello! Something after the function runs
带参数的装饰器
带参数的装饰器比普通装饰器更加灵活。编写时需要使用三层函数:最外层接受装饰器的参数,第二层是普通装饰器,第三层是实际包装的函数。
示例:
def decorator_with_args(arg1, arg2):def decorator(func):def wrapper(*args, **kwargs):print(f"Decorator args: {arg1}, {arg2}")return func(*args, **kwargs)return wrapperreturn decorator @decorator_with_args("Hello", "World") def greet():print("Greetings!") greet()
输出:
Decorator args: Hello, World Greetings!
类装饰器
类装饰器是通过类实现的装饰器。使用 __call__()
方法,类可以像函数一样调用。类装饰器可以在装饰函数时保存更多的状态信息。
示例:
class MyDecorator:def __init__(self, func):self.func = func def __call__(self, *args, **kwargs):print("Before the function call")result = self.func(*args, **kwargs)print("After the function call")return result @MyDecorator def say_hello():print("Hello!") say_hello()
输出:
Before the function call Hello! After the function call
4. 异常处理
捕获异常
Python 使用 try
、except
语句来捕获异常,确保程序在出现错误时不会崩溃。else
块在 try
成功时执行,finally
块无论是否发生异常都会执行。
示例:
try:num = int(input("Enter a number: ")) except ValueError:print("That's not a valid number!") else:print(f"Number entered: {num}") finally:print("End of program.")
-
try
:包含可能产生异常的代码。 -
except
:捕获特定类型的异常。 -
else
:当没有异常时执行的代码。 -
finally
:无论是否发生异常,都会执行的代码,通常用于清理操作。
自定义异常
可以通过继承 Exception
类自定义异常,适用于需要在程序中捕获特定错误的情况。
示例:
class MyCustomError(Exception):def __init__(self, message):self.message = message try:raise MyCustomError("This is a custom error") except MyCustomError as e:print(f"Caught an error: {e.message}")
断言
断言是一种检查代码状态的简单方法。当条件为 False
时,assert
会抛出 AssertionError
。
示例:
x = 5 assert x > 0, "x should be greater than 0" assert x < 10, "x should be less than 10"
5. 模块与包
模块导入
模块是包含 Python 代码的文件,通常用于组织代码结构。可以通过 import
导入模块,也可以使用 from ... import
导入特定的变量或函数。
示例:
# 导入整个模块 import math print(math.sqrt(16)) # 导入特定函数 from math import sqrt print(sqrt(16))
-
import
:导入整个模块,并通过模块名访问其内容。 -
from ... import
:直接导入模块中的特定变量或函数。
包
包是一种组织模块的方式,通过包含一个 __init__.py
文件,Python 将其目录识别为一个包。包可以包含多个模块和子包。
__init__.py
的作用:
-
初始化包,当包第一次被导入时执行。
-
定义包的公开接口。
示例:
mypackage/__init__.pymodule1.pymodule2.py # 使用包 from mypackage import module1
常用内置模块
Python 提供了许多内置模块,涵盖了文件操作、系统功能、数学运算等常见需求。
-
os
:与操作系统交互的模块,提供了文件、目录操作。import os print(os.getcwd()) # 获取当前工作目录
-
sys
:与 Python 解释器交互的模块,提供命令行参数、系统路径等功能。import sys print(sys.version) # 打印Python版本
-
datetime
:处理日期和时间的模块。from datetime import datetime print(datetime.now()) # 获取当前日期和时间
-
random
:生成随机数和随机选择的模块。import random print(random.randint(1, 10)) # 生成1到10之间的随机整数
-
math
:提供基本数学函数和常量。import math print(math.pi) # 输出圆周率
-
itertools
:提供用于迭代的高效工具,例如排列、组合等。import itertools print(list(itertools.permutations([1, 2, 3]))) # 生成排列
6. 正则表达式
正则表达式(Regular Expressions, regex)是一种强大的字符串匹配工具,允许通过定义模式(Pattern)来进行复杂的字符串搜索、替换、分割等操作。Python 提供了 re
模块来支持正则表达式。
正则基础
-
模式和规则
:正则表达式是一种用来描述字符串匹配规则的特殊符号组合。常见符号包括:
-
.
:匹配任意一个字符(除了换行符)。 -
^
:匹配字符串的开头。 -
$
:匹配字符串的结尾。 -
*
:匹配前一个字符 0 次或多次。 -
+
:匹配前一个字符 1 次或多次。 -
?
:匹配前一个字符 0 次或 1 次。 -
[]
:匹配括号内的任意一个字符,如[a-z]
表示小写字母。 -
|
:表示“或”关系。 -
\d
:匹配数字。 -
\w
:匹配字母、数字和下划线。
-
常用方法
-
search()
:在字符串中搜索符合正则表达式的内容,返回第一个匹配对象。import re result = re.search(r'\d+', 'There are 123 apples') print(result.group()) # 输出 '123'
-
match()
:从字符串开头开始匹配,如果匹配成功返回匹配对象,否则返回None
。result = re.match(r'\d+', '123 apples') print(result.group()) # 输出 '123'
-
findall()
:返回字符串中所有与正则表达式匹配的部分,以列表形式返回。result = re.findall(r'\d+', '123 apples, 456 oranges') print(result) # 输出 ['123', '456']
-
sub()
:替换字符串中与正则表达式匹配的部分。result = re.sub(r'apples', 'bananas', 'I like apples') print(result) # 输出 'I like bananas'
-
split()
:根据正则表达式匹配的部分拆分字符串。result = re.split(r'\s+', 'split by spaces') print(result) # 输出 ['split', 'by', 'spaces']
7. 数据结构与算法
常用数据结构
-
栈(Stack):后进先出(LIFO)的数据结构,常用于递归问题。
stack = [] stack.append(1) # 压栈 stack.pop() # 出栈
-
队列(Queue):先进先出(FIFO)的数据结构,常用于广度优先搜索。
from collections import deque queue = deque() queue.append(1) # 入队 queue.popleft() # 出队
-
链表(Linked List):由节点构成的线性数据结构,每个节点包含一个数据和一个指向下一个节点的指针。
-
树(Tree):一种非线性数据结构,常用于表示分层数据。二叉树是其中最常见的一种。
-
字典(Dictionary):键值对(key-value)映射的数据结构。
dict = {'a': 1, 'b': 2}
-
集合(Set):无序且不重复的元素集合。
set = {1, 2, 3}
常见算法
-
排序算法:
-
冒泡排序:两两比较并交换,时间复杂度为 O(n²)。
-
快速排序:选取一个基准值,将小于基准的放一边,大于基准的放另一边,递归进行,时间复杂度平均为 O(n log n)。
-
归并排序:分治法,将数组递归拆分再合并,时间复杂度为 O(n log n)。
-
-
搜索算法:
-
二分查找:在有序数组中查找元素,时间复杂度为 O(log n)。
-
深度优先搜索(DFS):使用栈实现的图遍历算法。
-
广度优先搜索(BFS):使用队列实现的图遍历算法。
-
时间复杂度
时间复杂度衡量算法执行时间随输入规模的增长而变化的速度。常见的时间复杂度有:
-
O(1):常数时间
-
O(log n):对数时间
-
O(n):线性时间
-
O(n log n):线性对数时间
-
O(n²):平方时间
8. 并发与多线程
线程
-
创建线程:Python 使用
threading
模块来创建和管理线程。import threading def print_hello():print("Hello from thread") thread = threading.Thread(target=print_hello) thread.start() thread.join() # 等待线程结束
-
线程同步:使用
Lock
机制来避免多个线程同时修改共享数据,导致竞争条件问题。lock = threading.Lock() lock.acquire() # 获取锁 # 执行共享资源操作 lock.release() # 释放锁
-
Semaphore
:控制访问共享资源的线程数量。
进程
-
多进程
:使用
multiprocessing
模块来创建多个进程,提供更强大的并发能力。
from multiprocessing import Process def print_hello():print("Hello from process") process = Process(target=print_hello) process.start() process.join()
协程
协程是一种轻量级的并发方式,Python 的 asyncio
模块允许编写异步协程程序,async
和 await
是协程的关键字。
示例:
import asyncio async def say_hello():print("Hello")await asyncio.sleep(1)print("World") asyncio.run(say_hello())
9. 网络编程
Socket编程
使用 socket
模块实现 TCP/UDP 通信。
import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(('www.example.com', 80)) sock.send(b"GET / HTTP/1.1\r\nHost: www.example.com\r\n\r\n")
HTTP 请求
requests
模块是一个流行的 Python 库,用于发送 HTTP 请求。
示例:
import requests response = requests.get('https://api.example.com/data') print(response.json())
Flask Web 框架
Flask 是一个轻量级 Web 框架,适合快速搭建 Web 应用。
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world():return 'Hello, World!' if __name__ == '__main__':app.run()
10. 数据科学与机器学习库
Numpy
Numpy 是用于多维数组处理的库,支持大量的数学运算。
示例:
import numpy as np array = np.array([1, 2, 3]) print(np.mean(array)) # 输出 2.0
Pandas
Pandas 是用于数据处理和分析的库,主要使用 DataFrame
数据结构。
示例:
import pandas as pd data = {'name': ['John', 'Jane'], 'age': [30, 25]} df = pd.DataFrame(data) print(df)
Matplotlib
Matplotlib 是用于数据可视化的库,可以创建各种图表。
示例:
import matplotlib.pyplot as plt plt.plot([1, 2, 3], [4, 5, 6]) plt.show()
Scikit-learn
Scikit-learn 提供了常用的机器学习模型和工具,如线性回归、分类、聚类等。
示例:
from sklearn.linear_model import LinearRegression model = LinearRegression() model.fit([[1], [2], [3]], [1, 2, 3]) print(model.predict([[4]])) # 输出 [4.]
11. 高级 Python 特性
上下文管理
with
语句可以确保资源的正确管理,通常用于文件操作等场景。__enter__()
和 __exit__()
方法实现上下文管理协议。
示例:
with open('file.txt', 'r') as file:content = file.read()
元类
元类是用来创建类的类,type()
是最常见的元类。可以通过元类定制类的行为。
示例:
class MyMeta(type):def __new__(cls, name, bases, dct):print(f"Creating class {name}")return super().__new__(cls, name, bases, dct) class MyClass(metaclass=MyMeta):pass
单例模式
单例模式确保类只有一个实例,可以通过重写 __new__()
方法来实现。
示例:
class Singleton:_instance = None def __new__(cls):if cls._instance is None:cls._instance = super().__new__(cls)return cls._instance
相关文章:

Python 进阶部分详细整理
1. 面向对象编程(OOP) 面向对象编程 (OOP) 是一种通过将程序中的数据和功能封装为对象的编程范式。OOP 基于四个核心概念:类与对象、继承、封装与多态。 类与对象 类(Class):类是创建对象的蓝图或模板。它…...

[ RK3566-Android11 ] 关于移植 RK628F 驱动以及后HDMI-IN图像延迟/无声等问题
问题描述 由前一篇文章https://blog.csdn.net/jay547063443/article/details/142059700?fromshareblogdetail&sharetypeblogdetail&sharerId142059700&sharereferPC&sharesourcejay547063443&sharefromfrom_link,移植HDMI-IN部分驱动后出现&a…...

【黑马点评】 使用RabbitMQ实现消息队列——2.使用RabbitMQ监听秒杀下单
2 使用RabbitMQ实现消息队列 2.1 修改\hm-dianping\pom.xmlpom.xml文件 添加RabbitMQ的环境 <!-- RabbitMQ--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-amqp</artifactId> </depe…...

业务封装与映射 -- OTUk/ODUk/OPUk开销帧结构
开销是为了保证净荷正常、灵活传送所必须附加的供网络运行、管理和维护(OAM)使用的字节。 OTN电层开销包括OTUk开销、ODUk开销、OPUk开销、OTUCn开销、ODUCn开销、OPUCn开销和帧对齐开销。 SM开销属于OTU开销,占用3个字节;PM开销…...

Vim基本用法
Vim用法 一、基本模式 1. 普通模式(Normal Mode) 移动光标 基本移动:使用方向键(h左移、j下移、k上移、l右移),也可以使用 H(移到屏幕顶部)、M(移到屏幕中间ÿ…...

python 实现Tarjan 用于在有向图中查找强连通分量的算法
Tarjan 用于在有向图中查找强连通分量的算法介绍 Tarjan算法是一种用于在有向图中查找强连通分量的高效算法,由Robert Tarjan在1972年提出。强连通分量是指在有向图中,如果从顶点u到顶点v以及从顶点v到顶点u都存在一条路径,那么顶点u和顶点v…...

Qt开发技巧(十五)字符串去除空格,跨网段搜索不生效,设置图片显示失败问题,表格视图的批量删除,主动判断字串编码,开启向前查询的属性,画家类载入html来绘制
继续讲一些Qt开发中的技巧操作: 1.字符串去除空格 我们经常会遇到字符串重去除空格的情况,对于QString去除空格,有多种场景,可能需要去除左侧、右侧、所有等位置的空格; //字符串去空格 -1移除左侧空格 0移除所有空格…...

【机器学习】智驭未来:探索机器学习在食品生产中的革新之路
📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言:探索机器学习在食品生产中的革新之路📒2. 机器学习在食品质量控制中的应用🌞实…...

Ubuntu 安装CUDA并使用Docker配置Pytorch环境
文章目录 参考安装顺序Nvidia GPU driverDockerNvidia Container ToolkitDocker PyTorch 1. Nvidia GPU Driver2. Docker 安装(使用apt存储库进行安装)3. Nvidia Container Toolkit3.1 Docker测试GPU 参考 安装顺序 Nvidia GPU driver Docker Nvidia…...

【论文阅读】Simulating 500 million years of evolution with a language model
Simulating 500 million years of evolution with a language model 1、概述 展示了语言模型在蛋白质设计和进化模拟方面的能力。通过对 ESM3 模型的研究,发现其能够生成与自然蛋白质差异较大且具有功能的新蛋白质,如新型绿色荧光蛋白(GFP),表明语言模型可以达到自然进化…...

detectron2/layers源码笔记
from .wrappers import ( BatchNorm2d, Conv2d, #在torch.conv2d的基础上集成了norm层和activation层 ConvTranspose2d, cat, interpolate, Linear, nonzero_tuple, #nonzero_tuple(x)得到tuple of 每个维度的索引 cross_entropy, empty_input_loss_func…...

LLM+知识图谱新工具! iText2KG:使用大型语言模型构建增量知识图谱
iText2KG是一个基于大型语言模型的增量知识图谱构建工具,通过从文本文档中提取实体和关系来逐步构建知识图谱。该工具具有零样本学习能力,能够在无需特定训练的情况下,在多个领域中进行知识提取。它包括文档提炼、实体提取和关系提取模块&…...

React基础-快速梳理
React介绍 React由Meta公司开发,是一个用于构建Web和原生交互界面的库 React的优势 相较于传统基于DOM开发的优势 组件化的开发方式不错的性能 相较于其它前端框架的优势 丰富的生态跨平台支持 开发环境创建 create-react-app是一个快速创建React开发环境的…...

H.264编解码 - NALU详解
一、概述 NALU(Network Abstraction Layer Unit)是H.264编解码中的一个重要概念。H.264是一种视频压缩标准,将视频数据分割成一系列的NALU。每个NALU都是一个独立的数据单元,包含视频压缩后的一个片段。每个NALU都有自己的起始码和长度前缀,用于标识NALU的起始位置和长度。…...

vSAN02:容错、存储策略、文件服务、快照与备份、iSCSI
目录 vSAN容错条带化存储策略1. 创建新策略2. 应用存储策略 vSAN文件服务文件服务快照与备份 vSAN iSCSI目标服务 vSAN容错 FTT:Fault to Tolerance 允许故障数 故障域:每一台vSAN主机是一个故障域 - 假设3台超融合(3计算1存储)&…...

图解C#高级教程(四):协变、逆变
本章的主题是可变性(variance),这里的可变性更多的是指基类和派生类之间的转换。可变性分为三种:协变(covariance)、逆变(contravariance)和不变(invariance)…...

详解CSS中的伪元素
4.3 伪元素 可以把样式应用到文档树中根本不存在的元素上。 ::first-line 文本中的第一行 ::first-letter 文本中的第一个字母 ::after 元素之后添加 ::before 元素之前 代码: <!DOCTYPE html> <html> <head><meta charset"utf-8&q…...

paper_template
paper_template Title 文章标题 Abstract 摘要 Keywords 关键词 Highlights Highlights / 创新点 Summary 写完笔记之后最后填,概述文章的内容,以后查阅笔记的时候先看这一段。 Backgrounds 描述当前研究背景 Research Objective 作者的研…...

【Bug】解决 Ubuntu 中 “error: Unable to Find Python3 Executable” 错误
解决 Ubuntu 中 “Unable to Find Python3 Executable” 错误 在 Ubuntu 系统上使用 Python 进行开发时,遇到找不到 python3 可执行文件的错误。 主要问题是无法正常打开终端(原生与terminator),找不到python3,且无法…...

CUDA与TensorRT学习六:模型部署-CNN、模型部署-YOLOv8检测器、部署BEVFusion模型
文章目录 一、模型部署-CNN二、模型部署-YOLOv8检测器三、部署BEVFusion模型 一、模型部署-CNN 二、模型部署-YOLOv8检测器 三、部署BEVFusion模型...

防sql注入的网站登录系统设计与实现
课程名称 网络安全 大作业名称 防sql注入的网站登录系统设计与实现 姓名 学号 班级 大 作 业 要 求 结合mysql数据库设计一个web登录页面密码需密文存放(可以采用hash方式,建议用sha1或md5加盐)采用服务器端的验证码&#…...

如何快速切换电脑的ip地址
在当今的数字化时代,IP地址作为网络身份的重要标识,其重要性日益凸显。无论是出于保护个人隐私的需要,还是为了访问特定的网络服务等,快速切换电脑的IP地址已成为许多用户的迫切需求。本文将为你介绍几种实用的方法,帮…...

鸿蒙HarmonyOS之选择相册文件(照片/视频)方法
一、新建文件工具类FileUtil.ets 包含:选择照片方法、获取文件类型方法、去除后缀、获取后缀方法 import { BusinessError, request } from kit.BasicServicesKit; import photoAccessHelper from ohos.file.photoAccessHelper; import bundleManager from ohos.b…...

【QT Qucik】C++交互:接收QML信号
在本节课中,我们将深入探讨如何在C中接收QML发出的信号。我们将分为几个部分,详细说明信号的定义、发送及其在C中的接收。 理解信号和槽机制 Qt的信号与槽机制是一种用于对象之间通信的强大工具。信号是对象在特定事件发生时发送的通知,而槽…...

【C++】关键字+命名空间
大家好,我是苏貝,本篇博客带大家了解C的命名空间,如果你觉得我写的还不错的话,可以给我一个赞👍吗,感谢❤️ 目录 一. 关键字二. 命名空间2.1 命名空间的定义2.2 命名空间的使用a. 命名空间名称作用域限定…...

网络层——IP
IP地址 结构: 由32位二进制数组成,通常用点分的形式被分为四个部分,每个部分1byte,最大值为255。 从功能的角度看,ip地址由两部分组成,网络号和主机号。网络号标识了ip所在的网段,主机号标识了…...

随笔 漫游互联网
网络编程基础:漫游互联网 温故而知新,可以为师矣。互联网我们可以想象成一个立体的网状结构,由一个一个的小网络组成的网状结构,在一个一个小网络中通过一台一台机器组成,经过几十年的发展终于有了今天这个样子。谈论…...

8.9K Star,开源自托管离线翻译引擎
Hi,骚年,我是大 G,公众号「GitHub 指北」会推荐 GitHub 上有趣有用的项目,一分钟 get 一个优秀的开源项目,挖掘开源的价值,欢迎关注。 在全球化的今天,跨语言交流已成为日常需求,然…...

MySQL基础之DML
MySQL基础之DML 语法不区分大小写 分类 DD(definition)L 定义DM(manipulation)L 操作DQ(query)L 查询DC(control)L 控制 添加数据 # 指定字段添加数据(一条)insert into 表名(字段1,字段2,...) values(值1,值2,...);# 全部字段添加数据(一条)insert into 表名 values(值1,值…...

男单新老对决:林诗栋VS马龙,巅峰之战
听闻了那场激动人心的新老对决,不禁让人热血沸腾。在这场乒乓球的巅峰之战中,林诗栋与马龙的对决无疑是一场视觉与技术的盛宴。 3:3的决胜局,两位选手的每一次挥拍都充满了策略与智慧,他们的每一次得分都让人心跳加速。 林诗栋&am…...