还剩35页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
编程教程Python欢迎来到编程教程!本课程将带您全面了解编程语言,从基础Python Python语法到高级应用,让您掌握这门强大而灵活的编程语言无论您是初学者还是有经验的程序员,这门课程都将为您提供系统化的学习路径因其简洁的语法和广泛的应用领域而备受欢迎,从数据分析、网络应用Python到人工智能和机器学习,都有着卓越的表现让我们一起开始这段Python学习之旅!Python课程概述学习内容2从语法到实际应用的全面覆盖课程目标1掌握编程基础与高级特性Python先决条件基本计算机操作能力3本课程旨在帮助学习者从零开始掌握编程语言我们将系统地介绍的基础语法、数据结构、函数和模块等核心概念,并逐步过渡到Python Python面向对象编程、文件操作和网络编程等高级主题学习过程中,我们将通过丰富的实例和练习帮助你巩固所学知识完成本课程后,你将能够独立开发应用程序,并为进一步学习人工智能、Python数据分析等专业领域打下坚实基础简介Python什么是?的历史的特点Python Python Python是一种高级、解释型、通用编程诞生于荷兰,最初设计目的是作以简洁易读的语法、丰富的标准PythonPythonPython语言,由吉多·范罗苏姆于1989年创建为ABC语言的继承者经过多年发展,现库、跨平台兼容性和强大的社区支持著称它的设计理念强调代码的可读性和简洁性,已成为全球最流行的编程语言之一,现在它支持多种编程范式,包括面向对象、命使用缩进而非括号来划分代码块主要版本为Python3令式和函数式编程安装Python下载Python访问官方网站,根据您的操作系统选择Python python.org适合的版本下载建议选择最新的稳定版本,目前为PythonPython
3.x安装步骤运行下载的安装程序,勾选选项以便Add Pythonto PATH在命令行中直接调用按照安装向导完成安装过程,默Python认设置通常适合大多数用户验证安装打开命令提示符或终端,输入或python--version python命令如果显示版本号,则表示安装成功您也可-V Python以输入进入交互式环境测试python开发环境PythonIDLE PyCharmVisual StudioCodePython自带的集成开发环境,适合初学者由JetBrains开发的功能强大的Python微软开发的轻量级但功能丰富的编辑器,通使用它提供基本的编辑器功能和交互式解IDE,提供专业版和社区版它具有智能代过安装Python扩展可支持Python开发释器,无需额外安装即可使用IDLE支持码补全、高级调试工具、集成版本控制系统它提供语法高亮、代码自动完成、调试功能语法高亮、自动完成和基本调试功能和丰富的插件生态系统和集成终端第一个程序Python代码解释执行方法Hello,World!传统上,学习一门新编程语言的第一步是这行代码使用Python的内置函数print可以通过多种方式运行Python程序在编写一个简单的Hello,World!程序在屏幕上显示文本双引号内的内容是一IDLE中创建新文件并运行、在命令行中使在Python中,这只需要一行代码个字符串,可以替换为任何您想显示的文用python filename.py命令,或在集本成开发环境中使用运行按钮printHello,World!运行这段代码后,控制台将显示Hello,文本这个简单的程序展示了World!语法的简洁性Python基础语法Python标识符关键字注释标识符是用来命名变量、关键字是Python保留注释用于解释代码,不函数、类等的名称的特殊词汇,不能用作会被执行单行注释以Python标识符区分大标识符一些常见的关#开头;多行注释可以小写,可以包含字母、键字包括if、else、使用三引号或包数字和下划线,但不能for、while、def、围良好的注释习惯对以数字开头有效示例class、import、提高代码可读性和维护myVar、count_
1、return等这些词有特性至关重要_private无效示例定的语法意义和用途、1var my-var变量和数据类型变量定义1Python中的变量无需预先声明类型,只需赋值即可创建变量名区分大小写,应使用有意义的名称变量赋值示例x=10,name=基本数据类型PythonPython支持同时为多个变量赋值a,b=5,102Python的主要数据类型包括整数int、浮点数float、字符串str、布尔值bool、列表list、元组tuple、集合set和字类型转换3典dict每种类型有不同的特性和操作方法Python提供多种类型转换函数,如int、float、str等,可将一种数据类型转换为另一种例如str123将整数123转换为字符串123;int456将字符串456转换为整数456数字和运算整数1整数int是没有小数部分的数字,如
1、-
5、100等Python整数没有大小限制,可以处理任意大的整数十六进制表示以0x开头如0xFF,八进制以0o开头如0o77,二进制以0b开头如0b1010浮点数2浮点数float是带有小数部分的数字,如
3.
14、-
0.001等可以使用科学计数法表示
2.5e2即250浮点数计算可能存在精度问题,如
0.1+
0.2!=
0.3,这是由于二进制浮点数表示的固有限制复数3复数complex包含实部和虚部,如3+4jPython使用j表示虚数单位可以使用complex函数创建复数,或直接使用a+bj的形式复数有real和imag属性分别表示实部和虚部基本运算4Python支持多种数学运算符+、-、*、/、//、%、**等//表示整除,%表示取余,**表示幂运算运算符优先级遵循数学规则,可使用括号改变计算顺序字符串操作字符串定义字符串是由一系列字符组成的序列,可以使用单引号、双引号或三引号或包围三引号字符串可以跨多行示例,name=Python,多行字符串message=Hello,World!description=字符串索引和切片字符串中的每个字符都有一个索引位置,从开始可以使用方括号访0问特定位置的字符,为负索引从末text=Python text
[0]P尾开始计数,如为切片操作使用冒号返回text[-1]n text[0:3]Pyt常用字符串方法提供了丰富的字符串处理方法,如、、Python upperlower、、等这些方法返回处理后的新字符串,strip replacesplit原字符串保持不变,因为字符串在中是不可变的Python列表列表创建列表是中最常用的数据结构之一,可以存储不同类型的元素创建列表可使用方括号Python[]numbers1,或使用函数=[1,2,3,4]list names=listAlice,Bob,Charlie列表操作列表支持索引和切片操作,与字符串类似可以使用合并列表,使用重复列表列表+*2元素可以修改使用关键字检查元素是否存在fruits
[0]=apple inif appleinfruits:列表方法提供多种列表方法添加元素,Python appendremove3删除元素,排序,反转等此外,函数可sort reverselen获取列表长度,和分别获取最大值和最小值max min元组元组特点不可变序列,创建后内容不能更改1元组操作2支持索引、切片和循环遍历元组创建3使用圆括号或不使用括号的逗号分隔元组是中的一种不可变序列类型,一旦创建,其内容就不能被修改创建元组可以使用圆括号,或者Python coordinates=10,20简单地用逗号分隔值单元素元组需要在元素后添加逗号coordinates=10,20single=5,虽然不能修改元组的元素,但可以进行连接操作创建新元组元组通常用于存储相关联的数据集合,例如数据库记录或坐标对由于元组不可变的特性,它们可以作为字典的键,并且在多线程环境中使用更安全字典字典是中的一种映射类型,存储键值对集合创建字典使用花括号张三,或使用函Python{}person={name:,age:25}dict数张三字典的键必须是不可变类型(如字符串、数字或元组),而值可以是任何对象person=dictname=,age=25Python访问字典值使用方括号和键,或方法方法的优势是当键不存在时返回或person[name]get person.getname getNone指定默认值,而不是引发错误字典支持添加、修改和删除操作(添加或修改),person[email]=zhangsan@example.com(删除)del person[age]集合集合操作集合支持数学集合操作并集或、|union交集或、差集或intersection-集合创建和对称差集或difference^2例如使用花括号或函数创建集合symmetric_difference set1|{}set返回两个集合的并集set2fruits={apple,banana,或orange}fruits=set[apple,1集合方法空集合必须使banana,orange]用函数创建,因为表示空字典set{}常用方法包括添加元素,删add remove3除元素(如果元素不存在则报错),删除元素(如果元素不存在则不discard报错),清空集合集合还支持操clear in作符检查元素是否存在条件语句语句语句if if-elseif语句用于在条件为真时执行代码块语法为if-else语句提供两种选择,当条件为真时执行一个代码块,否则执行另一个代码块语法为if条件:#条件为真时执行的代码if条件:#条件为真时执行的代码例如if age=18:print成年人else:#条件为假时执行的代码语句if-elif-elseif-elif-else语句用于处理多个条件语法为if条件1:#条件1为真时执行的代码elif条件2:#条件1为假且条件2为真时执行的代码else:#所有条件都为假时执行的代码循环语句循环forfor循环用于遍历序列(如列表、元组、字符串)或可迭代对象语法为for变量in序列:#循环体代码例如for iin range5:printi将输出0到4的数字循环whilewhile循环在条件为真的情况下重复执行代码块语法为while条件:#循环体代码例如i=0;while i5:printi;i+=1和break continuebreak用于跳出当前循环;continue用于跳过当前循环的剩余代码,进入下一次循环这两个语句可以更灵活地控制循环行为可以使用else子句与循环配合,当循环正常结束(不是通过break)时执行函数函数定义函数参数返回值使用关键字定义函数,函数支持多种参数类型函数可以使用语句返回值没有def followedby Pythonreturn函数名和括号语法为return语句的函数返回None函数可以必选参数调用时必须提供的参数•返回单个值、多个值作为元组或复杂数默认参数有默认值的参数,如•def据结构例如def函数名参数列表:greetname=World文档字符串关键字参数调用时使用参数名指定,#函数体代码•def dividea,b:如return返回值greetname=Alice return a//b,a%b#返可变参数接收任意数量的参数,使回商和余数•用和文档字符串用于描述函数功*args**kwargsdocstring能,可通过函数名访问.__doc__模块和包模块导入1模块是包含Python代码的文件,通过import语句导入导入方式包括import module_name,from module_name importfunction_name,以及使用as关键字创建别名import module_name asalias模块导入后,可以使用点号访问其内容包的概念2包是一种组织模块的方式,本质上是一个包含__init__.py文件的目录包可以包含子包和模块,形成层次结构导入包的语法与导入模块类似,例如import package.module或from packageimport module常用内置模块3Python标准库包含许多有用的模块math(数学函数)、random(随机数生成)、datetime(日期时间处理)、os(操作系统接口)、sys(系统特定参数和函数)、json(JSON数据处理)等这些模块提供了丰富的功能,无需额外安装文件操作文件打开文件读写文件关闭使用open函数打开文读取文件内容可使用使用完文件后应调用件,语法为(读取全部内方法关闭文件,file=read closeopenfilename,容)、readline(读释放系统资源使用常用模式包括取一行)、语句(上下文管理mode readlineswithr(只读,默认)、w(读取所有行到列表)器)可以自动处理文件(写入,覆盖原文件)、等方法写入文件使用关闭,即使发生异常也a(追加)、b(二进write(写入字符串)能确保文件被正确关闭,制模式,与其他模式组或writelines(写入这是推荐的做法正确合使用)推荐使用字符串列表)方法读关闭文件对于防止数据with语句自动处理文件写二进制文件时应使用丢失和资源泄漏非常重关闭with b模式并相应处理字节要openfilename as数据file:异常处理112语句常见异常类型try-exceptPython使用try-except语句捕获和处理异常基本语法为Python内置多种异常类型,如ValueError(值错误)、TypeError(类型错误)、IndexError(索引错误)、KeyError(键错误)、FileNotFoundError(文件未找到)、ZeroDivisionError(除零错try:#可能引发异常的代码误)等所有异常都继承自BaseException类except ExceptionType:#处理特定类型异常的代码except:#处理任何其他异常的代码else:#无异常时执行的代码finally:#无论是否有异常都执行的代码3自定义异常可以通过继承Exception类创建自定义异常class MyErrorException:def__init__self,message:self.message=messagesuper.__init__self.message然后使用raise语句引发自定义异常raise MyError错误信息面向对象编程基础类和对象类Class是创建对象的模板,定义了对象的属性和方法创建类使用class关键字class Person:pass对象是类的实例,通过调用类名创建person=Person属性和方法属性是类中的变量,方法是类中的函数属性可以在类定义中创建,也可以动态添加到对象方法的第一个参数通常是self,表示对象自身可以使用点号访问对象的属性和方法person.name,person.say_hello构造函数__init__方法是构造函数,创建对象时自动调用它通常用于初始化对象的属性class Person:def__init__self,name,age:self.name=nameself.age=age创建对象时提供参数person=Person张三,25继承和多态多态性不同类对象对相同方法的不同响应1方法重写2子类重新实现父类的方法继承概念3子类获取父类的属性和方法继承允许我们创建一个从现有类(父类)派生的新类(子类),子类自动获得父类的所有属性和方法支持单继承和多继承,语Python法为子类可以添加新的属性和方法,也可以重写父类的方法class ChildClassParentClass:方法重写是指子类提供与父类同名方法的特定实现在子类方法中,可以使用函数调用父类的方法多态允许不同类的对象对相super同的方法调用做出不同的响应,增强了代码的灵活性和可扩展性高级数据结构栈和队列链表树和图栈Stack是一种后进先出LIFO的数据链表是一种线性数据结构,每个节点包含树是一种层次结构,由节点和边组成,没结构,可以使用列表实现push操作用数据和指向下一个节点的引用在有环二叉树是最常见的树结构,每个节append,pop操作用pop Python中可以通过自定义类实现点最多有两个子节点队列Queue是一种先进先出FIFO的图是由节点和边组成的更通用的结构,可class Node:数据结构,可以使用以包含环中可以使用字典和集collections.deque Pythondef__init__self,data:实现入队操作用,出队操作合实现邻接表表示图,或使用append networkxself.data=data用popleft标准库还提供了queue模等第三方库处理复杂图操作self.next=None块,支持线程安全的队列操作class LinkedList:def__init__self:self.head=None迭代器和生成器迭代器概念生成器函数12迭代器是一个实现了__iter__和生成器是一种特殊的迭代器,使用函__next__方法的对象,用于遍历集数创建不同于普通函数使用return合中的元素__iter__返回迭代器返回值,生成器函数使用yield语句对象本身,__next__返回下一个元产生一系列值当生成器函数被调用素,如果没有更多元素则引发时,它返回一个生成器对象,但函数StopIteration异常Python的内体不会立即执行每次调用next时,置函数iter可将可迭代对象转换为函数执行到下一个yield语句后暂停,迭代器,next用于获取下一个元素并返回yield的值关键字3yieldyield关键字使函数变成生成器函数与return不同,yield会暂停函数执行并保存所有局部状态,下次继续执行时从yield语句后继续这允许生成器产生无限序列而不消耗过多内存生成器表达式是创建生成器的简洁方式,语法类似列表推导式,但使用圆括号x**2for xin range10装饰器装饰器概念函数装饰器装饰器是一个函数,它接受另一个函数作为参数,并最常见的装饰器是函数装饰器,它们接受一个函数并返回一个新函数,通常用于在不修改原函数代码的情返回一个新函数例如况下扩展其功能装饰器使用@符号应用于函数定义之前装饰器的核心思想是函数是一等公民,可以作def timing_decoratorfunc:为参数传递和返回def wrapper*args,**kwargs:start=time.timeresult=func*args,**kwargsend=time.timeprintf函数{func.__name__}运行时间:{end-start}秒return resultreturnwrapper@timing_decoratordef slow_function:time.sleep1类装饰器类也可以作为装饰器,只需实现__call__方法类装饰器通常用于更复杂的情况,例如当装饰器需要保持状态时带参数的装饰器需要额外一层嵌套,因为装饰器本身需要先接受参数,然后返回一个接受函数的装饰器正则表达式正则表达式语法1正则表达式是描述字符串模式的特殊序列常用元字符包括.(匹配任意字符),^(匹配开头),$(匹配结尾),*(匹配0次或多次),+(匹配1次或多次),(匹配0次或1次),\d(匹配数字),\w(匹配字母、数字或下划线),\s(匹配空白字符)字符类使用方括号表示,例如[a-z]匹配任何小写字母模块2rePython的re模块提供正则表达式操作主要函数包括re.match(从字符串开头匹配),re.search(在字符串中查找匹配),re.findall(查找所有匹配并返回列表),re.sub(替换匹配的子字符串)为提高效率,可以使用re.compile预编译正则表达式模式常用正则表达式3一些常用的正则表达式模式电子邮件验证r[a-zA-Z0-
9._%+-]+@[a-zA-Z0-
9.-]+\.[a-zA-Z]{2,},URL匹配rhttps://[a-zA-Z0-
9.-]+\.[a-zA-Z]{2,}/[a-zA-Z0-
9./=%_-]*,电话号码匹配(中国手机号)r1[3-9]\d{9}正则表达式功能强大但语法复杂,建议使用在线工具辅助开发和测试处理JSON格式模块序列化和反序列化JSON jsonJSONJavaScriptObject Notation是一种轻Python标准库提供了json模块处理JSON数据序列化是将Python对象转换为JSON字符串的过量级的数据交换格式,易于人阅读和编写,也易于主要函数包括json.dumps(将Python对象程Python的基本类型自动转换为对应的JSON机器解析和生成JSON基于两种结构名称/值编码为JSON字符串),json.loads(将JSON类型dict→object,list/tuple→array,对的集合(类似Python字典)和值的有序列表字符串解码为Python对象),json.dump str→string,int/float→number,(类似Python列表)JSON支持的数据类型包(将Python对象编码为JSON并写入文件对象),True/False→true/false,None→null反括字符串、数字、布尔值、null、对象和数组json.load(从文件对象中读取JSON并解码为序列化是相反的过程对于更复杂的类型,可以使Python对象)用default参数(序列化)和object_hook参数(反序列化)自定义转换逻辑日期和时间处理模块时间戳转换时间格式化datetime的模块提供处理日期和时时间戳是从年月日开始计算的秒使用方法将对象格式化Python datetime197011UTC strftimedatetime间的类和函数主要类包括数Python提供了在datetime对象和时间为字符串,使用strptime方法将字符串解戳之间转换的方法析为datetime对象同时表示日期和时间•datetime仅表示日期(年、月、日)•dateimport timedt=datetime.now仅表示时间(时、分、秒、微秒)•time fromdatetime import datetime#格式化输出•timedelta表示时间间隔formatted=dt.strftime%Y-%m-#时间戳转datetime%d%H:%M:%S创建日期时间对象from datetimetimestamp=time.time#解析字符串importdatetime;now=dt=parsed=datetime.nowdatetime.fromtimestamptimestamp datetime.strptime2023-01-01,%Y-%m-%d#datetime转时间戳常用格式代码(年),(月),%Y%m%dtimestamp=dt.timestamp(日),(小时),(分钟),%H%M%S(秒)网络编程基础套接字编程套接字Socket是网络通信的基础,允许不同计算机间的进程通信Python的socket模块提供了套接字API创建TCP套接字s=socket.socketsocket.AF_INET,1socket.SOCK_STREAM套接字编程通常包括创建套接字,绑定地址(服务器),监听连接(服务器),接受连接(服务器),发送/接收数据,关闭套接字请求HTTPHTTP是互联网上最常用的应用层协议Python标准库提供了urllib和http.client模块处理HTTP请求,但这些API相对底层urllib.request模块可以打开和读取URL2from urllib.request importurlopenwith urlopenhttps://www.python.org/as response:html=response.read库requestsRequests是一个优雅而简单的HTTP库,比标准库更易用安装pip installrequests基本用法import requests#GET请求3response=requests.gethttps://api.example.com/datadata=response.json#POST请求response=requests.posthttps://api.example.com/submit,json={key:value}数据库操作基础连接简介SQLite MySQLORMSQLite是一个轻量级的磁盘数据库,不需要单独的服连接MySQL数据库需要安装第三方模块,如mysql-ORM对象关系映射是一种编程技术,将数据库与面务器进程Python标准库提供sqlite3模块操作connector-python或PyMySQL基本流程与向对象编程语言中的对象关联起来SQLAlchemy是SQLite数据库基本用法包括连接数据库、创建游SQLite类似,但需要提供服务器地址、用户名和密码Python中最流行的ORM库之一,它允许开发者使用标、执行SQL语句、提交事务和关闭连接等连接参数使用connection对象的cursor方法创Python类和对象操作数据库,而不需要直接写SQL建游标,执行SQL查询,处理结果后关闭连接Django ORM是Django框架中的ORM组件,为Django应用提供数据模型支持import sqlite3conn=sqlite
3.connectexample.dbcursor=conn.cursorcursor.executeCREATE TABLEusers idINTEGERPRIMARY KEY,name TEXTconn.commitconn.close编程GUITkinter是Python标准库中的GUI图形用户界面工具包,基于Tk GUI工具包创建简单的GUI应用程序只需几行代码import tkinteras tkroot=tk.Tk#创建主窗口root.title我的第一个GUI应用label=tk.Labelroot,text=你好,世界!label.pack#将标签放入窗口button=tk.Buttonroot,text=点击我,command=lambda:print按钮被点击button.packroot.mainloop#进入事件循环Tkinter提供多种布局管理器pack按序包装组件、grid网格布局和place精确定位复杂应用程序通常使用grid布局,它提供更精确的控制响应用户事件通常通过将回调函数绑定到组件来实现多线程编程线程概念模块12threading线程是程序执行的最小单位,一个进程可以包含多个线程多线Python的threading模块提供了线程相关的功能创建线程有程编程允许程序同时执行多个任务,特别适合I/O密集型应用两种方式直接实例化Thread类并传入目标函数,或者继承在Python中,由于全局解释器锁GIL的存在,多线程主要用Thread类并重写run方法线程启动使用start方法,等待于I/O绑定任务,而不是CPU密集型计算线程完成使用join方法import threadingdeftask:printf线程{threading.current_thread.name}正在运行#创建并启动5个线程threads=[]for iin range5:t=threading.Threadtarget=task,name=fThread-{i}threads.appendtt.start#等待所有线程完成for tin threads:t.join线程同步3当多个线程访问共享资源时,需要同步机制防止数据损坏threading模块提供了多种同步原语Lock互斥锁、RLock可重入锁、Semaphore信号量、Event事件和Condition条件变量最常用的是Lock,它确保同一时刻只有一个线程可以访问共享资源多进程编程模块multiprocessing2Python标准库提供的多进程支持进程概念1进程是操作系统分配资源的基本单位进程间通信共享内存、队列和管道等机制3进程是计算机中正在运行的程序的实例,每个进程有独立的内存空间与线程不同,多进程可以有效绕过Python的GIL限制,充分利用多核CPU进行并行计算Python的multiprocessing模块提供了类似threading的API,但创建的是独立进程而非线程创建进程的基本方法是实例化Process类并传入目标函数from multiprocessingimport Processdefworkernum:printfWorker:{num}if__name__==__main__:processes=[]for iin range5:p=Processtarget=worker,args=i,processes.appendpp.startfor pin processes:p.join单元测试模块测试用例编写unittestPython标准库提供的unittest模块实现了单元测试框架,一个基本的测试用例包含以下部分灵感来源于JUnit和其他xUnit框架它支持测试自动化、测试用例的共享设置和拆卸代码、测试聚合和独立的测试报import unittest告框架使用unittest需要定义一个继承自unittest.TestCase的测试类,并实现以test开头的测试def adda,b:方法returna+bclass TestAddFunctionunittest.TestCase:def test_add_positive_numbersself:self.assertEqualadd1,2,3def test_add_negative_numbersself:self.assertEqualadd-1,-1,-2def test_add_mixed_numbersself:self.assertEqualadd-1,1,0if__name__==__main__:unittest.main断言方法TestCase类提供了多种断言方法验证结果assertEquala,b检查a==b,assertNotEquala,b检查a!=b,assertTruex检查boolx为True,assertFalsex检查boolx为False,assertIsa,b检查a是b,assertIsNonex检查x是None,assertIna,b检查a在b中,assertRaisesexc,fun,*args,**kwds检查fun*args,**kwds引发exc异常性能优化代码分析1在优化Python代码性能前,首先需要确定瓶颈所在Python提供了多种分析工具•time模块和timeit模块测量代码执行时间•cProfile模块详细分析函数调用次数和执行时间•memory_profiler分析内存使用情况分析结果可以帮助找出最需要优化的部分,避免盲目优化算法优化2改进算法是提高性能的最有效方法常见的优化策略包括•选择合适的数据结构(如使用集合而非列表进行成员检查)•避免不必要的计算和内存分配•使用生成器替代列表(当不需要保存所有元素时)•利用列表推导式和内置函数代替循环缓存技术3缓存是提高性能的有效手段,特别是对于重复计算相同结果的情况Python提供了functools.lru_cache装饰器,可以缓存函数的返回结果对于需要持久化缓存的场景,可以使用数据库或Redis等缓存系统利用局部性原理重新组织代码也可以提高缓存命中率虚拟环境virtualenvvirtualenv是创建隔离Python环境的工具,允许在同一系统上安装不同版本的Python包,而不会相互干扰安装virtualenv pip install virtualenv创建虚拟环境virtualenv venv激活虚拟环境在Windows上使用venv\Scripts\activate,在Unix/Linux上使用source venv/bin/activate模块venv自Python
3.3起,标准库包含了venv模块,功能类似virtualenv创建虚拟环境python-m venvmyvenv激活方式与virtualenv相同venv创建的虚拟环境默认不包含pip,但会在首次激活时安装虚拟环境激活后,pip安装的包将只对该环境可用依赖管理管理项目依赖是虚拟环境的重要用途使用pip freezerequirements.txt导出当前环境中的所有包及其版本使用pip install-r requirements.txt在新环境中安装相同的依赖现代Python项目还可以使用Poetry或Pipenv等工具进行更高级的依赖管理,包括版本锁定和环境隔离数据分析入门基础简介数据可视化NumPy PandasNumPy是Python科学计算的基础库,提供了Pandas建立在NumPy之上,提供了用于数数据可视化是数据分析的重要组成部分常用强大的多维数组对象和处理这些数组的工具据分析的DataFrame和Series数据结构安的Python可视化库包括Matplotlib(基础安装的核心装是一绘图库,提供类似的)、pip installnumpy NumPypipinstallpandas DataFrameMATLAB API是ndarray对象,它比Python标准列表更高个表格数据结构,包含行标签和列标签;Seaborn(基于Matplotlib的高级绘图库,效,支持向量化操作,无需显式循环基本操Series是一维标记数组Pandas提供数据导提供更美观的默认样式和高级统计图表)和作包括数组创建、索引、切片、形状操作、数入导出、数据清洗、数据转换、数据聚合和描Plotly(交互式可视化库,支持网页展示)学运算和线性代数述性统计等功能,是数据分析的核心工具这些库可以生成各种图表线图、柱状图、散点图、热图、箱线图等。
个人认证
优秀文档
获得点赞 0