【Python】Python知识总结浅析
Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它以简洁的语法和强大的功能著称,适用于多种应用场景,包括Web开发、数据分析、人工智能、自动化脚本等。
易于学习和使用:Python的语法简洁明了,适合初学者快速上手。
跨平台:可以在Windows、macOS和Linux等多种操作系统上运行。
丰富的库和框架:拥有大量的第三方库和框架,如Django(Web开发)、Pandas(数据分析)和TensorFlow(机器学习),支持多种应用开发。
面向对象:支持面向对象编程(OOP),使得代码结构更清晰,易于维护和扩展。
动态类型:不需要声明变量类型,增加了开发的灵活性。
一、Python发展历史

Python由Guido van Rossum于1991年首次发布,旨在简化编程,提高代码的可读性。自发布以来,Python经历了多个版本的演变,以下是各个主要版本的特点:
Python 1.x:初始版本,初步实现了Python的基本语法。
Python 2.x:引入了许多新特性,如列表推导式和垃圾回收机制。2010年发布的Python 2.7是最后一个2.x版本,官方支持在2020年结束。
Python 3.x:解决了2.x的一些设计缺陷,增强了对Unicode的支持,改变了部分语法,使其更加一致和易用。Python 3系列不断更新,最新稳定版本为3.11。
二、编程思想

面向过程编程(POP)
面向过程编程强调通过函数组织代码,主要特点包括:
- 模块化:程序被分解为多个函数,便于维护和重用。
- 顺序执行:代码按顺序执行,使用条件和循环控制流程。
示例代码:
def greet(name):"""问候函数"""print(f"Hello, {name}!")def main():"""主函数"""user_name = input("Enter your name: ")greet(user_name)if __name__ == "__main__":main()
面向对象编程(OOP)
面向对象编程围绕“对象”进行组织,对象是数据和功能的结合。主要特点包括:
封装:数据和方法封装在一起,限制外部访问。
继承:允许新类基于已有类创建,复用代码。
多态:同样的操作可以作用于不同类型的对象。
示例代码:
class Dog:"""狗类"""def __init__(self, name):self.name = namedef bark(self):"""狗叫声"""return f"{self.name} says Woof!"def main():"""主函数"""my_dog = Dog("Buddy")print(my_dog.bark())if __name__ == "__main__":main()
三、版本管理工具
在Python开发中,版本管理工具非常重要,可以帮助开发者管理不同项目所需的依赖和环境。
Anaconda:一个用于科学计算的Python发行版,包含众多数据科学相关的库,并提供环境管理工具Conda。

Virtualenv:轻量级虚拟环境管理工具,允许为不同项目创建独立的Python环境。
Pyenv:允许用户在系统中并行安装多个Python版本,方便切换和管理。
四、Python解释器

Python是一种解释型语言,代码在运行时逐行解释。常见的Python解释器包括:
CPython:最常用的实现,使用C语言编写。
Jython:可在Java平台上运行的Python实现。
IronPython:用于.NET框架的Python实现。
五、数据类型

Python支持多种数据类型,包括:
数字:整数(int)、浮点数(float)、复数(complex)。
字符串:文本数据,支持Unicode。
列表:有序可变集合(list)。
元组:有序不可变集合(tuple)。
字典:无序键值对集合(dict)。
集合:无序唯一元素集合(set)。
六、应用开发

Web开发
Python在Web开发中非常流行,主要框架包括Flask和Django。
Flask示例
后端代码(app.py):
from flask import Flask, jsonifyapp = Flask(__name__)@app.route('/api/hello', methods=['GET'])
def hello():"""返回问候信息的API"""return jsonify(message="Hello, World!")if __name__ == '__main__':app.run(debug=True)
前端HTML代码(index.html):
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Hello Flask</title>
</head>
<body><h1>Welcome to Flask!</h1><button onclick="fetchMessage()">Get Message</button><p id="message"></p><script>function fetchMessage() {fetch('/api/hello').then(response => response.json()).then(data => {document.getElementById('message').innerText = data.message;});}</script>
</body>
</html>
Django示例
后端代码(views.py):
from django.http import JsonResponse
from django.urls import pathdef hello(request):"""返回问候信息的API"""return JsonResponse({'message': 'Hello, World!'})urlpatterns = [path('api/hello/', hello),
]
网络编程
Python的网络编程支持TCP/IP协议,可以使用socket库实现简单的客户端和服务器通信。
服务器端示例:
import socketserver_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server_socket.bind(('localhost', 12345))
server_socket.listen()print("Server is listening...")
client_socket, addr = server_socket.accept()
print(f"Connection from {addr} has been established!")client_socket.send(b"Hello, Client!")
client_socket.close()
客户端示例:
import socketclient_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client_socket.connect(('localhost', 12345))
message = client_socket.recv(1024)
print(message.decode())
client_socket.close()
七、其他应用领域

Python在多个领域都有广泛应用,包括:
大数据:利用Pandas、NumPy等库进行数据分析,处理海量数据。
人工智能:使用TensorFlow、PyTorch等深度学习框架进行机器学习和深度学习算法研究。
嵌入式开发:MicroPython使得在微控制器上运行Python代码成为可能,适合IoT设备开发。
桌面开发:通过Tkinter、PyQt等库开发跨平台的桌面应用。

八、Python在大数据与人工智能领域的优势

Python因其简单易学的特性和丰富的生态系统,成为大数据和人工智能领域的首选语言。以下是其主要优势:
丰富的库:Python拥有大量的数据处理和机器学习库,如Pandas、NumPy、Scikit-learn、TensorFlow和Keras,极大地提高了开发效率。
数据可视化:Matplotlib和Seaborn等库使得数据可视化变得简单,帮助分析结果的呈现。
社区支持:Python拥有庞大的开发者社区,丰富的文档和教程,使得新手容易上手。
跨平台性:Python可以在不同操作系统上运行,增强了其在多种环境中的适用性。
九、Python开源项目

| 组件名 | 开源协议 | 使用场景 | 商业化应用 | 互联网公司应用情况 | 代码风格 | 学习成本 | 社区活跃度 |
|---|---|---|---|---|---|---|---|
| Django | BSD | Web开发 | 是 | Instagram, Pinterest | PEP 8 | 中 | 高 |
| Flask | MIT | Web开发 | 是 | Netflix, Airbnb | PEP 8 | 低 | 高 |
| Pandas | BSD | 数据分析 | 是 | DataCamp, Quora | PEP 8 | 中 | 高 |
| TensorFlow | Apache 2.0 | 机器学习 | 是 | Google, Airbnb | PEP 8 | 高 | 高 |
| Requests | Apache 2.0 | HTTP请求 | 是 | Twilio, Dropbox | PEP 8 | 低 | 高 |
| Scikit-learn | BSD | 机器学习 | 是 | Spotify, IBM | PEP 8 | 中 | 高 |
| PyTorch | BSD | 机器学习 | 是 | Facebook, Tesla | PEP 8 | 高 | 高 |
| NumPy | BSD | 数值计算 | 是 | Dropbox, LinkedIn | PEP 8 | 中 | 高 |
| Matplotlib | BSD | 数据可视化 | 是 | Instagram, NASA | PEP 8 | 中 | 高 |
| Keras | MIT | 深度学习 | 是 | Uber, Yelp | PEP 8 | 中 | 高 |
| Scrapy | MIT | 爬虫框架 | 是 | Scrapinghub, Mozilla | PEP 8 | 中 | 高 |
| Beautiful Soup | MIT | 网页解析 | 否 | 小型爬虫项目 | PEP 8 | 低 | 中 |
| OpenCV | Apache 2.0 | 计算机视觉 | 是 | Google, Intel | PEP 8 | 中 | 高 |
| SQLAlchemy | MIT | 数据库 ORM | 是 | Pinterest, LinkedIn | PEP 8 | 中 | 高 |
| FastAPI | MIT | Web API | 是 | Microsoft, Uber | PEP 8 | 中 | 高 |
| Celery | BSD | 分布式任务队列 | 是 | Instagram, SoundCloud | PEP 8 | 中 | 高 |
| Turtlesim | BSD | 教育机器人编程 | 否 | 教育机构 | PEP 8 | 低 | 中 |
| Pygame | LGPL | 游戏开发 | 否 | 小型游戏开发 | PEP 8 | 低 | 中 |
| ChatterBot | MIT | 聊天机器人 | 否 | 小型项目 | PEP 8 | 低 | 中 |
相关文章:
【Python】Python知识总结浅析
Python是一种高级编程语言,由Guido van Rossum于1991年首次发布。它以简洁的语法和强大的功能著称,适用于多种应用场景,包括Web开发、数据分析、人工智能、自动化脚本等。 易于学习和使用:Python的语法简洁明了,适合初…...
c#代码介绍23种设计模式_20策略者模式
目录 1、策略模式的定义 2、策略模式的结构 3、涉及到三个角色: 4、策略者模式在.NET中应用 5、策略者模式的适用场景 6、策略者模式的优缺点 7、实现思路 在现实生活中,策略模式的例子也非常常见,例如,中国的所得税,分为企业所得税、外商投资企业或外商企业所得税…...
FPGA-UART串口接收模块的理解
UART串口接收模块 背景 在之前就有写过关于串口模块的文章——《串口RS232的学习》。工作后很多项目都会用到串口模块,又来重新理解一下FPGA串口接收的代码思路。 关于串口相关的参数,以及在文章《串口RS232的学习》中已有详细的描述,这里就…...
复习HTML(基础)
目录 HTML含义 HTML作用 HTML的常用元素 元素的特点 元素的分类 1 是否嵌套关系 2 是否独占一行 块元素:独占一行 行内元素:共享一行 行内元素与块级元素的转换 3是否有结束标签 常用标签 1 标题标签:有六级 我们用h1 ~h6 表…...
Linux聊天集群开发之环境准备
一.windows下远程操作Linux 第一步:在Linux终端下配置openssh,输入netstate -tanp,查看ssh服务是否启动,默认端口22.。 注:如果openssh服务,则需下载。输入命令ps -e|grep ssh, 查看如否配有, ssh-agent …...
can 总线入门———can简介硬件电路
文章目录 0. 前言1. CAN简介2. 主流通讯协议对比3. CAN 硬件电路4. CAN 电平标准5. CAN 收发器 0. 前言 博客内容来自B站上CAN总线入门教程视频讲解,博客中的插图和内容均为视频中的内容。视频链接 CAN总线入门教程 1. CAN简介 先来看看一它名字的意思,…...
【重学 MySQL】六十、空间类型
【重学 MySQL】六十、空间类型 空间数据类型的分类空间数据类型的属性空间数据的表示方式空间数据的操作应用场景 在MySQL中,空间类型(Spatial Types)主要用于支持地理特征的生成、存储和分析。这些地理特征可以表示世界上具有位置的任何东西…...
python实现DES算法
DES算法 一、算法介绍1.1 背景1.2 原理1.3 基本功能函数1.3.1 初始置换函数 I P IP IP1.3.2 f f f 轮函数1.3.3 逆初始置换函数 I P − 1 IP^{-1} IP−1 1.4 子密钥的生成 二、代码实现2.1 子密钥生成实现2.2 DES加解密实现2.3 完整代码 三、演示效果 一、算法介绍 1.1 背景…...
基于LORA的一主多从监测系统_框架搭建
第一节、框架搭建 打开CubeMAX,选择好芯片,进行基础配置 第一步、先配置时钟源 第二步、配置SYS选项 配置debug口以及计数器源,我这里选择TIM1 第三步、选择I2C接口 配置如下即可,默认配置不用改 第四步、串口选择 我们这里使…...
优化理论及应用精解【25】
文章目录 优化学习率调度1. 阶梯衰减(Step Decay)2. 余弦退火(Cosine Annealing)3. 多项式衰减(Polynomial Decay)4. 指数衰减(Exponential Decay)总结 梯度弥散效应 参考文献 优化 …...
贝锐蒲公英网盘首发,秒建私有云,高速远程访问
虽然公共网盘带来了不少便利,但是大家对隐私泄露和重要数据泄密的担忧也随之增加。如果想要确保数据安全,自建私有云似乎是一条出路,然而面对搭建私有云的复杂步骤,许多人感到力不从心,NAS设备的成本也往往让人望而却步…...
[ 蓝桥 ·算法双周赛 ] 第 19 场 小白入门赛
🔥博客介绍: EvLast 🎥系列专栏: <<数据结构与算法>> << 算法入门>> << C项目>> 🎥 当前专栏: << 算法入门>> 专题 : 帮助小白快速入门算法竞赛 👍…...
HTML+CSS基础 第二季课堂笔记
一、列表 列表都不是单打独斗的,通常都是一组标签组成 1 无序列表 作用:定义一个没有顺序的列表结构 由两个标签组成,ul(容器级标签),li(容器级) ul:英文ulordered …...
【Easy RL】Easy RL蘑菇书全书学习笔记
【Easy RL】Easy RL蘑菇书全书学习笔记 第一章 强化学习基础1.1 强化学习概述监督学习强化学习与监督学习的不同之处二者的区别总结强化学习的特征强化学习的优越性预演(rollout)和 轨迹(trajectory)的概念端到端的概念深度强化学…...
JavaWeb(二)
Servlet开发技术 [外链图片转存中…(img-Cnu8X2V4-1728026684827)] 简述Servlet的创建过程? package servlet; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; …...
【C++】--类和对象(2)
👌个人主页: 起名字真南 👆个人专栏:【数据结构初阶】 【C语言】 【C】 目录 1 类的默认成员函数2 构造函数3 析构函数4 拷贝构造5 赋值运算符重载5.1 运算符重载5.2 赋值运算符的重载 1 类的默认成员函数 默认成员函数就是用户没有显示实现,…...
最新BurpSuite2024.9专业中英文开箱即用版下载
1、工具介绍 本版本更新介绍 此版本对 Burp Intruder 进行了重大改进,包括自定义 Bambda HTTP 匹配和替换规则以及对扫描 SOAP 端点的支持。我们还进行了其他改进和错误修复。 Burp Intruder 的精简布局我们对 Burp Intruder 进行了重大升级。现在,您可…...
C++ 观察者模式
观察者模式(Observer Pattern)是一种行为设计模式,用于在对象之间建立一对多的依赖关系,当一个对象的状态发生变化时,它的所有依赖对象都会得到通知并自动更新。 在观察者模式中,主题和观察者之间是松耦合…...
基于pytorch的手写数字识别-训练+使用
import pandas as pd import numpy as np import torch import matplotlib import matplotlib.pyplot as plt from torch.utils.data import TensorDataset, DataLoadermatplotlib.use(tkAgg)# 设置图形配置 config {"font.family": serif,"mathtext.fontset&q…...
SpringBoot接收前端传递参数
1)URL 参数 参数直接 拼接在URL的后面,使用 ? 进行分隔,多个参数之间用 & 符号分隔。例如:http://localhost:8080/user?namezhangsan&id1后端接收(在Controller方法的参数列表中使用 RequestParam 注解&…...
IDEA运行Tomcat出现乱码问题解决汇总
最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…...
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
装饰模式(Decorator Pattern)重构java邮件发奖系统实战
前言 现在我们有个如下的需求,设计一个邮件发奖的小系统, 需求 1.数据验证 → 2. 敏感信息加密 → 3. 日志记录 → 4. 实际发送邮件 装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其…...
VB.net复制Ntag213卡写入UID
本示例使用的发卡器:https://item.taobao.com/item.htm?ftt&id615391857885 一、读取旧Ntag卡的UID和数据 Private Sub Button15_Click(sender As Object, e As EventArgs) Handles Button15.Click轻松读卡技术支持:网站:Dim i, j As IntegerDim cardidhex, …...
React第五十七节 Router中RouterProvider使用详解及注意事项
前言 在 React Router v6.4 中,RouterProvider 是一个核心组件,用于提供基于数据路由(data routers)的新型路由方案。 它替代了传统的 <BrowserRouter>,支持更强大的数据加载和操作功能(如 loader 和…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
关于nvm与node.js
1 安装nvm 安装过程中手动修改 nvm的安装路径, 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解,但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后,通常在该文件中会出现以下配置&…...
大数据零基础学习day1之环境准备和大数据初步理解
学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 (1)设置网关 打开VMware虚拟机,点击编辑…...
前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
postgresql|数据库|只读用户的创建和删除(备忘)
CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...
