【Python】Python知识总结浅析

embedded/2024/10/17 21:23:53/

        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)

面向过程编程强调通过函数组织代码,主要特点包括:

  • 模块化:程序被分解为多个函数,便于维护和重用。
  • 顺序执行:代码按顺序执行,使用条件和循环控制流程。

示例代码:

python">def greet(name):"""问候函数"""print(f"Hello, {name}!")def main():"""主函数"""user_name = input("Enter your name: ")greet(user_name)if __name__ == "__main__":main()

面向对象编程(OOP)

面向对象编程围绕“对象”进行组织,对象是数据和功能的结合。主要特点包括:

        封装:数据和方法封装在一起,限制外部访问。

        继承:允许新类基于已有类创建,复用代码。

        多态:同样的操作可以作用于不同类型的对象。

示例代码:

python">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):

python">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):

python">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库实现简单的客户端和服务器通信。

服务器端示例:

python">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()

客户端示例:

python">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开源项目

组件名开源协议使用场景商业化应用互联网公司应用情况代码风格学习成本社区活跃度
DjangoBSDWeb开发Instagram, PinterestPEP 8
FlaskMITWeb开发Netflix, AirbnbPEP 8
PandasBSD数据分析DataCamp, QuoraPEP 8
TensorFlowApache 2.0机器学习Google, AirbnbPEP 8
RequestsApache 2.0HTTP请求Twilio, DropboxPEP 8
Scikit-learnBSD机器学习Spotify, IBMPEP 8
PyTorchBSD机器学习Facebook, TeslaPEP 8
NumPyBSD数值计算Dropbox, LinkedInPEP 8
MatplotlibBSD数据可视化Instagram, NASAPEP 8
KerasMIT深度学习Uber, YelpPEP 8
ScrapyMIT爬虫框架Scrapinghub, MozillaPEP 8
Beautiful SoupMIT网页解析小型爬虫项目PEP 8
OpenCVApache 2.0计算机视觉Google, IntelPEP 8
SQLAlchemyMIT数据库 ORMPinterest, LinkedInPEP 8
FastAPIMITWeb APIMicrosoft, UberPEP 8
CeleryBSD分布式任务队列Instagram, SoundCloudPEP 8
TurtlesimBSD教育机器人编程教育机构PEP 8
PygameLGPL游戏开发小型游戏开发PEP 8
ChatterBotMIT聊天机器人小型项目PEP 8

http://www.ppmy.cn/embedded/124206.html

相关文章

zy91_C#中StringBuilder类以及char类

文章目录 1.StringBuilder类1.1程序代码 2.char类2.1程序代码 1.StringBuilder类 1.1程序代码 static void Main(string[] args) {//1.StringBuilder bf1 new StringBuilder();StringBuilder bf2 new StringBuilder(10);StringBuilder bf3 new StringBuilder("Hello …

【韩顺平Java笔记】第8章:面向对象编程(中级部分)【272-284】

272. 包基本介绍 272.1 看一个应用场景 272.2 包的三大作用 272.3 包的基本语法 273. 包原理 274. 包快速入门 在不同的包下面创建不同的Dog类 275. 包命名 276. 常用的包 一个包下,包含很多的类,java 中常用的包有: java.lang.* //lang 包是基本包&#xff0c;默认引入&…

5G NR coreset 简介

文章目录 5G 为何引入CORESETCORESET介绍CORESET 分类 5G 为何引入CORESET 在LTE系统中&#xff0c;PDCCH频域占据整个带宽&#xff0c;始于占据每个RB的前1~3个OFDM 符号&#xff0c;这种情况下&#xff0c;UE 只需知道PDCCH 所占据的OFDM 符号数&#xff0c;就可以确定PDCCH…

互联网前后端分离的开发场景,一般会员和数据权限的判断是放在前端还是后端?

推荐学习文档 golang应用级os框架&#xff0c;欢迎stargolang应用级os框架使用案例&#xff0c;欢迎star案例&#xff1a;基于golang开发的一款超有个性的旅游计划app经历golang实战大纲golang优秀开发常用开源库汇总想学习更多golang知识&#xff0c;这里有免费的golang学习笔…

Stable Diffusion绘画 | 来训练属于自己的模型:素材准备篇

首先要说明的是&#xff0c;模型训练&#xff0c;需要显卡持续不间断地一致运行&#xff0c; 快则0.5-1小时左右&#xff0c;慢的话可能需要跑上几小时&#xff0c;甚至是几天&#xff0c; 原因跟显卡的配置和训练设置参数都有关系。 模型训练与显卡配置&#xff1a; 训练 L…

Python FFmpeg 安装使用教程

文章目录 什么是 FFmpeg&#xff1f;主要功能包括&#xff1a; Windows 下载安装下载解压安装配置环境变量 使用案例使用 ffmpeg-python 库转换视频格式视频剪辑添加字幕 使用 subprocess.run 执行视频格式转换 其它问题ffmpeg 不是内部或外部命令,也不是可运行的程序 个人简介…

SpringMVC源码-SpringMVC源码请求执行流程及重点方法doDispatch讲解

一、开始请求 在浏览器访问http://localhost:8080/spring_mymvc/userlist这个接口&#xff0c;是个get请求。 FrameworkServlet类的service方法会被请求到: 调用路径如下&#xff1a; service:945, FrameworkServlet (org.springframework.web.servlet) service:764, HttpSer…

RabbitMQ入门6—exchange参数之type

在 RabbitMQ 中&#xff0c;exchange&#xff08;交换机&#xff09;是消息路由的核心组件&#xff0c;它根据某些规则将消息分发给绑定到它的队列。type 参数定义了交换机的 路由行为&#xff0c;决定消息如何从交换机路由到队列。 type 参数的作用 type 参数指定了交换机的…