Py程序与基础教程 20_第1页
Py程序与基础教程 20_第2页
Py程序与基础教程 20_第3页
Py程序与基础教程 20_第4页
Py程序与基础教程 20_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Python程序设计与算法基础教程(第4版×项目实训.题库.微课视频.AI编程版)目录(1)2第1章Python程序设计导论第2章Python语言基础第3章程序流程控制第4章常用内置数据类型第5章组合数据类型第6章输入、输出和文件第7章错误和异常处理第8章函数和函数式编程第9章面向对象的程序设计第10章模块和模块化程序设计目录(2)3第11章数据结构与算法基础第12章图形用户界面第13章图形绘制和数据可视化第14章数值日期和时间处理第15章字符串和文本处理第16章数据库访问第17章网络编程和通信第18章

并行计算:线程、进程和协程第19章系统管理附录Python计算生态(电子资源)第1章Python程序设计导论本章要点:1.1程序设计语言1.2Python语言概述1.3Python语言版本和开发环境1.4使用Python解释器解释执行Python程序1.5使用文本编辑器和命令行编写和执行Python源文件程序1.6使用集成开发环境IDLE编写和执行Python源文件程序1.7程序的打包和发布1.8在线帮助和相关资源1.1程序设计语言计算机系统由硬件和软件组成物理计算机和外围设备统称为硬件计算机执行的程序称为软件软件一般分为系统软件和应用软件两大类计算机程序指定计算机完成任务所需的一系列步骤编程语言,又称为程序设计语言,是一组用来定义计算机程序的语法规则。每一种语言都有一套独特的关键字和程序指令语法编程语言编程语言分为低级语言和高级语言两类低级语言与特定的机器有关高级语言独立于机器机器语言和汇编语言属于低级语言机器语言是第一代程序设计语言,使用二进制代码编写程序,可读性差,但能够直接被计算机识别和执行汇编语言是第二代程序设计语言,使用简单的助记符来表示指令高级语言是独立于计算机体系结构的语言,其最大特点是类似自然语言的形式描述对问题的处理过程C、C++、C#、Java和Python按范式对编程语言分类面向过程的编程语言FORTRAN、COBOL、Basic、Ada、Pascal、C面向对象的编程语言Java、C#、C++、Smalltalk、VisualBasic函数式编程语言Lisp、Scheme、Haskell、F#逻辑式编程语言:PrologPython程序设计语言属于多范式编程语言计算思维和程序设计方法人类在认识世界和改造世界过程中形成了以下三种基本的思维逻辑思维:以推理和演绎为特征,以数学学科为代表实验思维:以实验和验证为特征,以物理学科为代表计算思维:以设计和构造为特征,以计算机学科为代表计算思维的本质是抽象(Abstraction)和自动化(Automation)程序设计方法属于计算思维的范畴,常见的程序设计方法主要包括两种结构化程序设计和面向对象的程序设计程序设计方法结构化程序设计通常采用自顶向下(Top-Down)、逐步求精(StepwiseRefinement)的程序设计方法自顶向下程序设计的基本思想问题分解、算法实现、组合程序采用自顶向下方法设计的程序,一般通过自底向上(Bottom-Up)的方法来实现先实现、运行和测试每一个基本函数,再测试由基本函数组成的整体函数,这样有助于定位错误程序的编写和执行用文本编辑器编写和编辑程序Notepad、Vim、Emacs、Sublime等专用的IDE开发环境,例如IDLE、Spyder、VisualStudioCode等使用文本编辑器编写一个程序后,将文件保存到磁盘上,包含程序代码的文件称之为源文件(sourcefile)将源文件转换成机器语言有以下两种转换方法编译:编译器(Compiler)将源代码翻译成目标语言解释:解释器(Interpreter)直接解释执行高级程序设计语言根据执行机制分类高级编程语言静态语言和脚本语言两类采用编译方式执行的语言属于静态语言,例如C、C++、C#、Java等优点在于:编译后的目标代码可以直接运行;编译所产生的目标代码执行速度通常更快采用解释方式执行的语言属于脚本语言,例如JavaScript、PHP、Python等优点在于:源代码可以在任何操作系统上的解释器中运行,可移植性好;解释执行需要保留源代码,因此程序纠错和维护十分方便1.2Python语言概述英音/ˈpaɪθən/,美音/ˈpaɪθɑːn/是一种解释型、面向对象的编程语言是一个开源语言,拥有大量的库,可以高效地开发各种应用程序Python语言的特点简单、高级、面向对象、可扩展性、免费开源、可移植性、丰富的库、可嵌入性Python语言的应用范围操作系统管理、科学计算、Web应用、图形用户界面(GUI)开发、其他(游戏开发等)1.3Python语言版本和开发环境2个主要版本:Python2和Python3Python3在设计时,没有考虑向下兼容Python语言的实现:Python解释器常用的Python实现:Cpython、Jython、IronPython、PyPyPython语言的集成开发环境IDLE(内置)、Spyder、PyCharm、Eclipse+Pydev插件、VisualStudio+PythonToolsforVisualStudio、PythonWin下载和安装Python本书基于Windows10/11和

Python3.13

构建Python开发平台【例1.1】下载Python安装程序/downloads/windows/单击超链接Windowsinstaller(64-bit),以下载目前最新版本Python3.13(64位)的安装程序python-3.13.5-amd64.exe【例1.2】安装Python应用程序(1)双击下载的Windows格式安装文件python-3.13.5-amd64.exe(2)在定制Python对话框窗口中,注意需要选中“Addpython.exetoPATH”复选框(3)单击InstallNow超链接,安装Python程序安装和管理Python扩展包Python3.4以后的版本包含pip和setuptools库pip用于安装管理Python扩展包setuptools用于发布Python包pip的典型应用是从PyPI(PythonPackageIndex)上安装Python第三方包【例1.3】更新pip和setuptools包在Windows命令提示符窗口中,输入命令行命令“pipinstall-Upipsetuptools”,更新pip和setuptools包【例1.4】安装NumPy包在Windows命令提示符窗口中,输入命令行命令“pipinstallNumPy”,安装NumPy包【例1.5】安装Matplotlib包在Windows命令提示符窗口中,输入命令行命令“pipinstallMatplotlib”,安装Matplotlib包1.4使用Python解释器解释执行Python程序(1)Python的默认安装路径为…AppData\Local\Programs\Python\Python313\,包括Python解释器python.exePython库目录和其它文件【例1.6】运行Python解释器在Windows搜索框中输入关键字Python,选择“Python3.13(64-bit)”命令【例1.7】输出Helloworld!Python解释器的提示符为:>>>>>>print('Hello,world!')使用Python解释器解释执行Python程序(2)【例1.8】使用Python解释器进行数学运算>>>11+22+33+44+55#输出:165>>>(1+0.01)**365>>>

(1-0.01)**365提示:假设一年有365天,如果每天进步1%,一年后就进步38倍(3800%);但是,如果每天懈怠1%,一年后就只剩2%了【例1.9】使用解释器环境中特殊变量:_>>>11+22#输出:33>>>_#输出:33>>>_+33#输出:66【例1.10】同时运行多个表达式:同时运行多个以逗号分隔的表达式,返回结果为元组>>>2,2**10#输出:(2,1024)【例1.11】关闭Python解释器Ctrl+Z及回车键;或者输入quit()命令;或者直接关闭命令行窗口运行Python集成开发环境IDLE(1)【例1.12】运行Python内置集成开发环境IDLE在Windows搜索框中输入关键字IDLE,选择“IDLE(Python3.1364-bit)”命令【例1.13】使用集成开发环境IDLE解释执行Python语句>>>print('Good!'*5)Good!Good!Good!Good!Good!运行Python集成开发环境IDLE(2)【例1.14】使用IDLE执行多行代码打印0到9范围的数字,分隔符为空格>>>forxinrange(10):print(x,end='')【例1.15】关闭IDLE输入quit()命令;或者直接关闭IDLE窗口,均可以关闭Python解释器1.5使用文本编辑器和命令行编写和执行Python源文件程序(1)将Python程序编写成文本文件(.py)编写Python源代码文件程序、并通过Python编译器/解释器的执行程序的流程使用文本编辑器和命令行编写和执行Python源文件程序(2)【例1.16】使用文本编辑器(记事本)编写Helloworld程序在记事本中,输入程序源代码。文件另存为hello.py注意,“保存类型”选择“所有文件”,“编码”选择UTF-8Helloworld程序(hello.py)源代码分析第1行为注释。以符号#开始,到行尾结束第2行调用内置库的函数print,输出:Hello,World!使用文本编辑器和命令行编写和执行【例1.17】使用Windows命令提示符窗口运行hello.py(1)在Windows搜索框中输入关键字cmd,选择“命令提示符”命令,打开Windows命令提示符窗口(2)输入命令行命令“pythonc:\pythonpa\ch01\hello.py”,按回车键执行程序(3)输入命令行命令“c:\pythonpa\ch01\hello.py”,按回车键执行程序(4)输入“cdc:\pythonpa\ch01”,输入命令行命令“pythonhello.py”,按回车键执行程序(5)切换到工作目录“c:\pythonpa\ch01”,然后输入命令行命令“hello.py”,按回车键执行程序使用文本编辑器和命令行编写和执行【例1.18】使用资源管理器运行hello1.py(1)程序hello1.py的内容如下:importrandom#导入库模块print("Hello,World")#输出:Hello,Worldprint("你今天的幸运随机数是:",random.choice(range(10)))#输出从0到9之间随机选择的数input()#等待用户输入(2)在资源管理器中,双击c:\pythonpa\ch01目录下的hello1.py文件,执行hello1.py源程序(3)程序hello1.py中每一行代码的含义如下: 第1行代码导入库模块random。Python可以导入和使用功能丰富的标准库或扩展库。 第2行代码调用内置库函数print()输出“Hello,World”。 第3行代码使用random库中的choice函数,在0~9范围中随机选择一个数并输出。 第4行代码调用内置库函数input()。用户按Enter键,程序结束运行使用文本编辑器和命令行编写和执行【例1.19】命令行参数示例(hello_argv.py)hello_argv.py的内容如下:importsysprint('Hello,'+sys.argv[1])程序运行结果:1.6使用集成开发环境IDLE编写和执行Python源文件程序【例1.20】使用IDLE编写求解2的1024次方的程序(bigint.py)(1)在Windows搜索框中输入关键字IDLE,选择“IDLE(Python3.1364-bit)”命令,打开内置集成开发环境IDLE(2)执行IDLE菜单命令File|NewFile(或者按快捷键Ctrl+N),新建Python源代码文件(3)在Python源代码编辑器中输入程序源代码:print("2的1024次方:",2**1024)(4)执行IDLE菜单命令File|Save(或者按快捷键Ctrl+S),保存文件为bigint.py。(5)执行IDLE菜单命令Run|RunModule(或者按快捷键F5),输出程序运行结果【例1.21】使用IDLE编辑hello1.py程序importrandom#导入库模块print("GoodLuck!")#输出:GoodLuck!print("你今天的幸运随机数是:",random.choice(range(10)))#输出从0到9之间随机选择的数input()#等待用户输入1.7程序的打包和发布Python程序打包和发布最常用的是第三方的扩展包PyInstaller,它是用于将Python源程序生成直接运行的程序【例1.22】安装PyInstaller包在Windows命令提示符窗口中,输入命令行命令“pipinstallpyinstaller”,以安装PyInstaller包使用PyInstaller生成可执行程序pyinstaller选项Python源文件【例1.23】使用PyInstaller生成可执行文件(1)打开Windows命令行窗口。在Windows命令提示符窗口中,切换到C:\pythonpa\ch01目录。(2)生成可执行文件。输入命令行命令“pyinstaller-Fhello1.py”,以生成可执行文件。(3)运行可执行文件。切换到C:\pythonpa\ch01\dist目录下,输入“hello1.exe”,按Enter键执行程序,并观察运行结果。1.8在线帮助和相关资源(1)Python交互式帮助系统直接键入help()函数可进入交互式帮助系统键入help(object)可获取关于object对象的帮助信息【例1.24】使用Python交互式帮助系统示例(1)进入交互式帮助系统。在Python解释器中,键入help(),按回车键(2)显示安装的所有模块。键入modules,然后按回车键(3)显示与random相关的模块。键入modulesrandom,然后按回车键(4)显示模块random的帮助信息。键入random,然后按回车键(5)显示random模块random函数的信息。键入random.random,然后按回车键(6)退出帮助系统。键入quit,然后按回车键【例1.25】使用Python内置函数获取帮助信息(1)查看Python内置对象列表。输入命令:>>>dir(__builtins__)(2)查看float的信息。输入命令:>>>float

(3)查看内置类float的帮助信息。输入help(float)命令在线帮助和相关资源(2)Python文档:Python语言及标准模块的详细参考信息【例1.26】使用Python文档(1)打开Python文档。在Windows搜索框中输入关键字Python,选择“Python3.13Manuals(64-bit)”命令(用户也可以在IDLE环境按F1键),打开Python文档(2)浏览random模块帮助信息。在右上角的搜索框中输入关键字random,然后按Enter键,显示与关键字random相关的帮助信息。点击浏览random模块的帮助信息(3)查找有关math的帮助信息。在右上角的搜索框中输入关键字math,然后按Enter键,显示与关键字math相关的帮助信息。点击浏览math模块的帮助信息Python官网:

/用户可以下载各种版本的Python程序或者查看帮助文档等Python扩展库索引(PyPI):

/所有人都可以下载第三方库或上传自己开发的库到PyPI。PyPI推荐使用pip包管理器来下载第三方库PEP(1)PythonEnhancementProposals(Python增强提案,也译为Python改进建议书)Python核心开发者主要通过邮件列表讨论问题、提议、计划等,PEP通常是对多方信息进行汇总,并经过部分核心开发者的审查和认可而最终形成的正式文档PEP的官网是/dev/peps/,这也是PEP0的网址。其它PEP的地址是将编号拼接在后面,例如PEP20的网址为/dev/peps/pep-0020/,以此类推PEP通常是对多方信息进行汇总,并经过部分核心开发者的审查和认可而最终形成的正式文档官方将PEP分成以下三类。(1)I(InformationalPEP,信息类)。提供各种信息,包括告知类信息、指导类信息等等。例如PEP20(TheZenofPython,即著名的Python之禅)、PEP404(Python2.8Un-releaseSchedule,即不会有Python2.8版本的提案)(2)P(ProcessPEP,流程类)。提供Python流程信息,例如PEP1(PEPPurposeandGuidelines,即关于PEP的指南)、PEP347(MigratingthePythonCVStoSubversion,即关于迁移Python代码仓)(3)S(StandardsTrackPEP,标准类)。描述Python的新功能和新实践,例如PEP498(LiteralStringInterpolation,字面字符串插值)PEP(2)通过阅读PEP可以帮助读者深入了解Python的特性和发展历程,例如:(1)了解Python有哪些特性,这些特性与其它语言特性的差异,为什么要设计这些特性,是如何设计的,怎样更好地运用这些特性等。(2)跟进社区动态,获知业内的最佳实践方案,调整学习方向,改进工作业务的内容。(3)参与热点议题讨论,或者提交新的PEP,为Python社区贡献力量。PEP提案已经累积产生近500个,读者可以关注以下的PEP,例如:PEP0—IndexofPythonEnhancementProposals,官方列举了所有的PEP,可以按序号、按类型以及按状态进行检索。

PEP7—StyleGuideforCCode,C扩展。

PEP8—StyleGuideforPythonCode,编码规范(必读)。

PEP20—TheZenofPython,Python之禅(建议阅读)。

PEP202—ListComprehensions,列表生成式。

PEP274—DictComprehensions,字典生成式。

PEP234—Iterators,迭代器PEP(3)PEP提案(continued……)PEP257—DocstringConventions,文档注释规范。

PEP279—Theenumerate()built-infunction,enumerate枚举。

PEP282—ALoggingSystem,日志模块。

PEP289—GeneratorExpressions,生成器表达式。

PEP318—DecoratorsforFunctionsandMethods,装饰器。

PEP342—CoroutinesviaEnhancedGenerators,协程。

PEP343—The"with"Statement,with语句。

PEP380—SyntaxforDelegatingtoaSubgenerator,委派生成器。

PEP405—PythonVirtualEnvironments,虚拟环境。PEP(4)PEP提案(continued……)PEP471—os.scandir()function,遍历目录。

PEP484—TypeHints,类型约束。

PEP492—Coroutineswithasyncandawaitsyntax,async/await语法。

PEP498—LiteralStringInterpolationPython,字符串插值。

PEP525—AsynchronousGenerators,异步生成器。

PEP572—AssignmentExpressions,表达式赋值。

PEP3105—Makeprintafunction,将print语句改为函数。

PEP3115—MetaclassesinPython3000,元类。

PEP3120—UsingUTF-8asthedefaultsourceencoding,将UTF-8作为默认的源编码。

PEP3333—PythonWebServerGatewayInterfacev1.0.1,Web服务器开发接口PEP(5)【例1.27】PEP-0008:Python编码规范PEP-0008官网地址为/dev/peps/pep-0008/用户可以了解Python编程规范,主要包括以下内容。(1)缩进与换行:每一级缩进使用四个空格。(2)限制每行的最大长度为79个字符。(3)空行。顶层函数和类之间使用两个空行,类的方法之间使用一个空行,在函数中使用空行表示不同逻辑段落。(4)import语句位于文件的顶部。(5)避免多余的空格(6)注释规范。(7)命名规范。(8)其他。使用is代替==进行布尔值比较PEP(6)【例1.28】PEP-0020:Python之禅PEP-0020官网地址为/dev/peps/pep-0020/用户可以了解Python编程的指导准则在Python解释器中输入importthis,也可以输出“TheZenofPython(Python之禅)”的内容“TheZenofPython(Python之禅)”对应的中文翻译以及解释如下所示Beautifulisbetterthanugly:优美胜于丑陋(Python以编写优美的代码为目标)

Explicitisbetterthanimplicit:明确胜于隐晦(优美的代码应当是清晰明了的,具有规范的命名和相似的风格)。

Simpleisbetterthancomplex:简单胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)。

Complexisbetterthancomplicated:复杂胜于凌乱(如果复杂是不可避免的,那代码之间也不能有错综难懂的关系,要保持接口简洁)。

Flatisbetterthannested:扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)Sparseisbetterthandense:稀疏胜于紧凑(优美的代码要有适当的间隔,不要奢望一行代码解决问题)PEP(7)“TheZenofPython(Python之禅)”对应的中文翻译以及解释如下所示(continued……)Readabilitycounts:可读性很重要(优美的代码是易于理解的)。

Specialcasesaren'tspecialenoughtobreaktherules:特例也并不能特殊到可以违背这些规则(这些规则是至高无上的)。

Althoughpracticalitybeatspurity:实用性胜于纯粹性(实用性优先)。

Errorsshouldneverpasssilently:错误不应被默默地忽略(应该明确地处理所有错误)。

Unlessexplicitlysilenced:除非明确要求忽略错误(程序员需要考虑忽略错误的后果)。

Inthefaceofambiguity,refusethetemptationtoguess:当遇到模棱两可的情况,不要尝试去猜测(猜测往往会导致错误)Thereshouldbeone--andpreferablyonlyone--obviouswaytodoit:肯定有一种通常也是唯一一种最佳的解决方案(如果不确定,就用穷举法)。

Althoughthatwaymaynotbeobviousatfirstunlessyou'reDutch:最佳的解决方案最初并不是显而易见的,因为我们并不是Python之父(这里的Dutch是指GuidovanRossum)。

Nowisbetterthannever:做也许好过不做(现在开始做比不做好)PEP(8)“TheZenofPython(Python之禅)”对应的中文翻译以及解释如下所示(continued……)Althoughneverisoftenbetterthan*right*now:然而,不假思索就盲目动手还不如不做(动手之前要细思量)。

Iftheimplementationishardtoexplain,it'sabadidea:如果一个实现方案很难解释清楚,它就不是一个好的解决方案(晦涩难懂往往会导致错误)。

Iftheimplementationiseasytoexplain,itmaybeagoodidea:如果一个实现方案易于解释,它就很有可能是一个好的方案(简明易懂往往是最佳的解决方案)。

Namespacesareonehonkinggreatidea--let'sdomoreofthose:命名空间是一种绝妙的理念,我们应当多加利用(使用命名空间可以有效地解决名称解析问题)【拓展】读者可上网查询Python编程指导准则的具体含义和示例AI辅助编程AI辅助编程是指利用人工智能技术来辅助或自动化软件开发过程的一种新型程序设计方式。它结合了传统程序设计与人工智能的能力,旨在提升开发效率、降低门槛、优化代码质量,并支持开发者完成复杂的任务。AI辅助编程并不是完全取代人类开发者,而是通过人工智能技术增强开发者的生产力。其核心思想包括以下几个方面。(1)智能化代码生成。利用大语言模型(例如ChatGPT、DeepSeek等)根据自然语言描述或者其他上下文信息自动生成代码。开发者可以使用简单的语言来表达需求,而AI则会尝试将其转化为具体的实现(2)自动化流程。AI可以自动完成重复性任务,例如代码补全、错误修复、单元测试生成等。AI可以减少手动编码的工作量,让开发者专注于更高层次的设计和创新。(3)学习与优化。AI能够从历史代码库中学习最佳实践,并且为新项目提供建议。通过对代码的分析,AI可以帮助优化性能、减少冗余、提高可读性。(4)跨领域协作。AI编程不仅限于特定语言或者框架,还可以在不同领域之间提供支持,例如数据科学、嵌入式开发、Web开发等。相对于传统程序设计方法,AI辅助编程具有以下的优势(1)降低编程门槛。即使对某些程序设计语言不熟悉,也能通过自然语言描述生成代码。这种方式对初学者友好,减少了学习成本。(2)提升开发效率。自动生成代码和文档,缩短开发周期。自动化处理重复性任务,让开发者专注于核心问题。(3)增强代码质量。提供代码优化建议,避免常见错误。自动生成高质量的注释和文档,提升代码可维护性。(4)支持创新。让开发者有更多的时间去探索新技术和新想法。在短时间内尝试多种解决方案,加速创新过程。AI辅助编程正在改变传统的软件开发方式,为开发者提供了强大的支持。它不仅能显著提升开发效率,还能降低编程门槛,帮助开发者专注于创新和解决问题,AI辅助编程已经成为每位开发者不可或缺的助手。AI辅助编程的主要应用场景(1)代码生成与补全。根据注释或上下文生成完整的函数、类或模块。(2)调试与错误修复。自动识别代码中的语法错误、逻辑错误或潜在漏洞,并且提供修复建议。(3)文档生成。自动生成代码注释、API文档或项目说明文件。(4)自动化测试。自动生成单元测试用例,确保代码的正确性和稳定性。(5)代码优化。分析代码性能瓶颈,提出改进建议。(6)学习与教学。解释复杂代码的功能和原理,帮助初学者快速掌握程序设计技能。AI辅助编程的技术基础(1)大语言模型。基于深度学习的语言模型(例如ChatGPT、DeepSeek等),能够理解和生成自然语言以及程序设计语言。这些模型经过大量代码数据的训练,具备强大的代码生成和推理能力。(2)集成开发环境(IDE)。AI辅助编程工具通常集成到主流IDE中(例如VSCode、JetBrains系列等),提供无缝的开发体验。例如,GitHubCopilot直接嵌入到VSCode中,实时提供代码建议。(3)云计算与分布式计算。许多AI辅助编程工具依赖云端计算资源运行,支持大规模模型推理和实时响应。本地部署的工具则适合对隐私要求较高的场景。AI辅助编程工具AI辅助编程工具通常集成到主流IDE中(例如VSCode、JetBrains系列),这类工具近年来发展迅速,目前主流的AI辅助工具包括如下:(1)GitHubCopilot。基于OpenAI的Codex模型,集成到主流IDE(例如VSCode、JetBrains系列)中,支持多种程序设计语言,能够根据注释或上下文自动生成代码片段,使用方便。(2)Cursor。将AI(例如GitHubCopilot或其他大语言模型)深度集成到一个轻量级并且用户友好的IDE(类似于VSCode,但更加专注于AI辅助功能)中,为开发者提供无缝的程序设计体验。(3)ClaudeDev。一个集成在VisualStudioCode中的AI编程助手,基于Anthropic公司的Claude3.5Sonnet模型,为开发者提供自动化的程序设计支持。ClaudeDev自动处理复杂的程序设计任务,例如读写文件、创建项目、执行终端命令等,大大提高了开发效率。(4)Trae。字节跳动推出的一款AI辅助编程工具,旨在通过集成先进的AI模型(例如DeepSeek等),帮助开发者高效地完成代码生成、优化和调试任务。这是一款免费的AI辅助编程工具,本书将基于Trae,指导读者快速高效地进行Python程序设计实践。(5)其他常用的AI辅助编程工具包括通义灵码、豆包MarsCode、文心快码、CodeWisperer、Windsurf、Codeium、CodeGeeX等等Trae的安装和配置Trae(/treɪ/)字节跳动推出的一款AI辅助编程工具(基于VSCode),与AI深度集成,提供智能问答、代码自动补全以及基于Agent的AI自动编程能力。使用Trae开发项目时,可以与AI灵活协作,提升开发效率。Trae提供以下两种对话模式(1)TraeAI侧栏进入TraeIDE后,一般默认打开TraeAI侧栏。通过快捷键Ctrl+U可以关闭或打开TraeAI侧栏。在编码过程中,通过侧边栏对话框,可以通过会话方式来辅助编程:回答编码问题、讲解代码仓库、生成代码片段、修复错误等。在Chat模式下,根据需求,AI助手会自动创建新文件或者编辑已有文件并且自动保存生成的代码TraeIDE支持面向不同开发场景的编程助手——智能体(Agent)。智能体具有强大的功能:自主运行、完整的工具访问权限、上下文理解、多步骤规划等。TraeIDE提供内置智能体Builder。在侧边栏对话框中,通过@Builder调用Builder智能体。Builder可以帮助用户从零开始开发一个完整的项目TraeIDE支持添加上下文,默认上下文为当前活动的编辑文件,通过#引用符号添加多种类的上下文,包括代码、文件、文件夹和工作区,AI助手可以理解当前项目中的上下文,从而更精确地协助开发者完成开发需求Trae提供两种对话模式(1)TraeAI侧栏(2)行内对话Trae提供了内嵌在代码编辑器中的行内对话(InLineChat)。用户能够在编码的过程中随时唤起行内对话。使用行内对话可以让用户在与AI助手对话的同时更好地保持编码心流在编辑器内的光标处(或者选择任意代码),通过快捷键Ctrl+I点击悬浮菜单中的“编辑”按钮,可以唤起行内对话。在行内对话输入框中输入用户的需求,包括为代码添加注释、解释选中的代码、优化选中的代码等等,然后点击右侧的“发送”按钮或敲击回车键。AI助手生成的内容将以Diff的形式展示在编辑器内。可以预览变更前后的代码,然后选择采纳或拒绝。使用AI集成开发环境Trae开发Python应用程序需要先安装Python环境,建议安装使用Anaconda科学计算环境下载和安装Anaconda科学计算环境(1)下载Anaconda安装程序。打开Anaconda官网下载页面(网址为/download/),填写自己的邮件地址,勾选同意协议。单击submit按钮。然后在自己的邮箱中,通过收到的邮件中的下载链接进行Anaconda安装程序的下载。注意:如果网速太慢,也可以从国内清华大学开源软件镜像站(/anaconda/archive/)中去下载Anaconda3-2025.06-0-Windows-x86_64.exe(2)以管理员身份运行Anaconda安装程序。鼠标右击Anaconda3-2025.06-0-Windows-x86_64.exe,选择“以管理员身份运行”,打开安装程序向导(3)安装Anaconda应用程序。根据安装向导,按照默认选项,安装Anaconda应用程序下载、安装和配置TraeIDE(1)(1)下载TraeIDE。访问Trae的官网/,单击“立即获取TraeIDE”,或者窗口右上角的“下载IDE”,下载对应操作系统的版本。例如,对应Windows平台的“TraeCN-Setup-x64.exe”(2)安装Trae。双击下载的文件“TraeCN-Setup-x64.exe”,根据安装向导,选择默认的安装选项,完成安装(3)启动Trae。首次启动时,会进入“欢迎使用Trae”页面。单击“开始”按钮,开始Trae初始配置流程(4)配置主题。选择以下的主题之一:暗色、亮色和深蓝。此处选择“亮色”。单击“继续”按钮(5)导入VSCode或Cursor配置(可选)。如果系统安装了VSCode或Cursor,则可以单击“从VSCode导入”或“从Cursor导入”按钮,从对应的IDE中获取插件、IDE设置、快捷键设置等信息并一键导入到Trae中,帮助用户快速从其他IDE切换到Trae。也可以单击“跳过”按钮直接跳过该步骤下载、安装和配置TraeIDE(1)下载、安装和配置TraeIDE(2)(6)添加Trae相关的命令行。单击“安装`trae`命令”按钮,以授权运行在终端中使用命令行更快速地完成Trae相关的操作。例如,使用trae命令快速唤起Trae;使用traemy-app命令在Trae中打开一个项目(7)登录账号。随后,单击“登录”按钮,Trae会自动打开浏览器,使用手机号以及手机验证码登录Trae,注意勾选“我已阅读并同意服务条款和隐私协议”复选框。完成登录后,才可以在Trae中使用AI服务(8)登录成功后的Trae集成开发界面如下创建项目在Trae中,“项目”对应于文件夹。Trae提供以下三种创建项目的方式,即导入本地文件夹、从GitHub克隆仓库、从Git仓库的URL克隆。(1)创建本地文件夹。在Windows资源器中创建文件夹C:\pythonai\ch01。该文件夹为空的项目(2)打开项目。通过菜单命令“文件”|“打开文件夹”,选择“C:\pythonai\ch01”,导入本地项目。注意,请在“授权弹窗”中单击“信任文件夹并继续”按钮,并在随后的窗口中单击“是,我信任此作者”按钮,以授予信任权限配置Trae使用的大语言模型Trae预置了一系列业内表现比较出色的模型,包括Doubao-1.5-Pro、DeepSeek-V3-0324、DeepSeek-V3、DeepSeek-Reasoner(R1),可以直接切换不同的模型。此外,Trae还支持通过API密钥(APIKey)接入自定义模型,从而满足个性化的需求。(1)切换模型。在Trae侧边对话的输入框中,单击当前模型名称(Doubao-1.5-Pro)。打开模型列表,然后选择所需要使用的模型。安装支持Python语言编程的插件并选择指定Python运行环境(1)安装Python语言插件。在Trae中,单击左侧面板的(ExtensionStore,插件市场)图标,搜索并安装Python插件,如图所示,以支持Python语言的开发(2)安装Jupyter语言插件。在Trae中,单击左侧面板的(插件市场)图标,搜索并安装Jupyter插件,以支持Jupyter笔记本(3)选择指定Python运行环境。Trae会自动选择Python运行环境(Python解释器)。在Trae中,通过单击“查看”|“命令面板”命令,调出命令面板。在随后出现的命令面板中输入并选择Python:SelectInterpreter,然后选择指定Anaconda环境AI辅助编程:代码生成(自动补全代码)Trae内置原生的AI代码补全功能,无需手动开启。在编辑器内编写代码时,AI助手会阅读并理解已编写的代码,然后自动续写代码。将鼠标悬浮至自动补全的代码区域后,用户可以按下Tab键,接受所有自动补全的代码,或者使用Ctrl+→快捷键,逐字接受代码【例1.6.1】AI辅助编程:根据注释自动补全代码。(1)创建源文件hello.py。通过菜单命令“文件”|“新建文件”,输入文件名hello.py,按Enter键,选择保存位置,按Enter键以创建文件。(2)注释代码补全。输入如下的内容作为注释行:#生成一个随机整数,并打印该幸运数,格式为“今天的幸运数字是:x”。按Enter键,AI自动生成代码,如图所示,按Tab键确认,或者按Esc键取消(3)运行代码,并测试代码的运行结果AI辅助编程:智能问答(内嵌对话)可以通过以下两种方式唤起内嵌对话。在编辑器内的光标处,使用快捷键Ctrl+I。在编辑器内,选中任意代码,然后使用快捷键Ctrl+I或者单击悬浮菜单中的“编辑”按钮【例1.7.1】AI辅助编程:内嵌对话(绘制一个正方形)。(1)创建源文件hello2.py。(2)唤起内嵌对话。按快捷键Ctrl+I,唤起内嵌对话框。(3)进行对话。在内嵌对话框中输入提示词:绘制一个正方形,如图所示。(4)AI助手自动生成代码。在内嵌对话框中输入提示词后,按Enter键,AI助手自动生成代码,如图(5)接受或拒绝变更。单击“接受”按钮,接受变更(6)运行代码,并测试、查看代码的运行结果【例1.7.2】AI辅助编程:内嵌对话(编写一个函数计算两个数的最大公约数)辅助编程:文档生成(添加注释)根据代码,AI可以自动生成代码注释、API文档或者项目说明文件【例1.38】AI辅助编程:根据代码自动添加注释。(1)打开文件hello1.py。(2)选择需要注释的代码。此处选择全部代码。(3)添加注释。按快捷键Ctrl+I,唤起内嵌对话,在内嵌对话框中输入提示词:添加注释文档。按Enter键,AI助手自动生成注释文档。(4)接受或拒绝变更。单击“接受”按钮,接受变更AI辅助编程:代码生成(添加测试代码)编写一个函数后,AI可以自动生成覆盖各种边界条件的测试代码。(1)打开文件hello3.py。(2)进行对话(编写测试函数)。光标移动到源文件末尾,按快捷键Ctrl+I,唤起内嵌对话,在内嵌对话框中输入提示词:编写代码,测试gcd函数。按Enter键,AI助手自动生成代码。(3)接受或拒绝变更。单击“接受”按钮,接受变更。(4)运行代码,并测试、查看代码的运行结果AI辅助编程:代码解释AI可以解释复杂代码的功能和原理,帮助初学者快速掌握程序设计的技能。(1)打开文件hello.py。(2)进行对话(编写测试函数)。选中除第一行注释外的所有代码,按快捷键Ctrl+I,唤起内嵌对话,在内嵌对话框中输入提示词:请解释代码。按Enter键,AI助手自动生成代码解释信息。(3)接受或拒绝变更。单击“拒绝”按钮,清除解释信息AI辅助编程:代码优化AI可以对代码进行优化,从而提高代码的性能和质量。例如,将嵌套循环优化为更高效的算法,减少时间复杂度。【例1.39】AI辅助编程:代码优化。(1)打开文件hello.py。(2)进行对话。选中除第一行注释的所有代码,按快捷键Ctrl+I,唤起内嵌对话,在内嵌对话框中输入提示词:请优化码。按Enter键,AI助手自动尝试优化成代码。(3)接受或拒绝变更。单击“接受”按钮,接受变更AI辅助编程:智能问答(Chat模式)TraeAI侧栏(Chat模式)是编码过程中的全能AI伙伴,可以用来回答编码问题、讲解代码仓库、生成代码片段、修复错误等。打开Trae后,一般默认进入@Builder智能体模式,如图所示,单击“”退出智能体模式,进入Chat模式。【例】AI辅助编程:Chat模式对话(创建一个冒泡排序算法程序)(1)打开AI侧栏,进入到Chat模式。(2)输入提示词。在AI侧栏中输入提示词“创建一个Python文件,实现冒泡排序算法”。按Enter键,AI助手会自动生成回答。如图所示。(3)单击“应用”按钮,将代码变更应用于bubble_sort.py。(4)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更(5)运行代码,并测试、查看代码的运行结果【例】AI辅助编程:Chat模式对话(添加上下文)(1)打开AI侧栏,进入到Chat模式。(2)添加上下文。从左侧“资源管理器”栏中拖拽文件bubble_sort.py到AI侧栏中。(3)在上下文中进行对话。在AI侧栏中输入提示词“请解释代码,并尝试进行优化”。按Enter键,AI助手会自动生成回答。注意,也可以单击图中所示的“#上下文”按钮,以指定引用的上下文。(4)阅读回答结果。单击“应用”按钮,将代码变更应用于bubble_sort.py。(5)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更。AI辅助编程:调试与错误修复AI能够自动识别代码中的语法错误、逻辑错误或者潜在漏洞,并提供修复建议【例】AI辅助编程:代码调试与错误修复。(1)创建并打开文件calculate_sum.py。其中包含以下内容(存在错误)(2)添加上下文。从左侧“资源管理器”栏中拖拽文件calculate_sum.py到AI侧栏中(3)在上下文中进行对话。在AI侧栏中输入提示词“请修改代码中可能存在的错误”。AI助手会自动分析源代码代码,并尝试修改错误。如图所示(4)单击“应用”按钮,将代码变更应用于calculate_sum.py。(5)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更。(6)运行代码,并测试、查看代码的运行结果defcalculate_sum(numbers):sum=0fornumberinnumbers:sum+=numberreturnsum

defmain():nums=[1,2,3,4,5]total=calculate_sum(nums)print("Thesumis:"+total)

if__name__=="__main__":main()AI辅助编程:智能学习AI可以提供实时的编程指导,帮助用户理解陌生的算法或库。也可以总结有关知识点,帮助用户巩固所学的知识。【例】AI辅助编程:知识点总结复习。(1)打开AI侧栏,进入到Chat模式。(2)输入提示词。在AI侧栏中输入提示词“请总结Python打印信息到屏幕的常用方法”。按Enter键,AI助手会自动生成回答。如图【例】AI辅助编程:库的学习。(1)打开AI侧栏,进入到Chat模式。(2)输入提示词。在AI侧栏中输入提示词“请解释如何使用csv库输出信息,并给出一个示例程序”。按Enter键,AI助手会自动生成回答。如图(3)单击“应用”按钮,将代码变更应用于csv_example.py。(4)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更。(5)运行代码,并测试、查看代码的运行结果AI辅助编程:智能构建(@Builder智能体)(1)@Builder智能体是项目开发过程中的全能AI伙伴。@Builder智能体可以帮助用户从头开发一个完整的项目。也可以将该模式无缝融入到项目构建的流程中。打开Trae后,一般默认进入@Builder智能体模式。若要在Chat模式切换到@Builder智能体,可以在TraeAI侧栏中,单击“@智能体”,然后选择Builder【例】AI辅助编程:智能构建(生成新文件)(1)打开AI侧栏,确认使用@Builder智能体。(2)输入提示词。在AI侧栏中输入提示词“创建一个Python文件,实现快速排序算法”。按Enter键,AI助手会自动在当前项目中创建文件quick_sort.py。如图(3)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更【例】AI辅助编程:智能构建(创建测试代码文件)(1)打开AI侧栏,确认使用@Builder智能体。(2)输入提示词。在AI侧栏中输入提示词“为快速排序算法创建一个独立的测试源代码,比较测试在不同规模下的运行时间”。按Enter键,AI助手会自动在当前项目中创建文件test_quick_sort.py(3)运行测试代码(可选)。单击“运行”按钮,可运行测试代码。(4)接受或拒绝变更。单击“全部接受”按钮,接受变更【例】AI辅助编程:智能构建(添加文档注释)(1)打开AI侧栏,确认使用@Builder智能体。(2)添加上下文。从左侧“资源管理器”栏中拖拽文件quick_sort.py到AI侧栏中(3)在AI侧栏中输入提示词“请添加文档注释”。按Enter键,AI助手会自动为quick_sort.py生成注释(4)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更。【例】AI辅助编程:智能构建(生成API规格文档)。(1)打开AI侧栏,确认使用@Builder智能体。(2)添加上下文。从左侧“资源管理器”栏中拖拽文件quick_sort.py和test_quick_sort.py到AI侧栏中(3)在AI侧栏中输入提示词“请生成API规格文档,格式为Markdown,文件名为quicksort.md”。按Enter键,AI助手会自动API规格文档quicksort.md(4)接受或拒绝变更。单击右侧的“全部接受”按钮或者左上方的“接受”按钮,接受变更AI辅助编程:智能构建(@Builder智能体)(2)本章小结实验和习题上机实践完成课本实例1.1~实例1.28,熟悉Python编辑、开发和运行环境复习题单选题填空题思考题案例研究一:安装和使用其它Python环境本章案例研究的主要目的是通过Anaconda的安装和使用,帮助学生使用其它Python开发环境进行学习和研究的方法Anaconda官网下载网址为/download/目前最新版本Windows版本的安装程序Anaconda3-2025.06-0-Windows-x86_64.exe双击Anaconda3-2025.06-0-Windows-x86_64.exe,安装Anaconda应用程序安装Anaconda后,就相当于安装了Python、IPython、集成开发环境Spyder以及一些常用的科学计算包案例研究的解题思路和源代码等以电子版形式提供,具体请扫描教程中的二维码案例研究一:使用IPython进行交互式科学计算【例CS1A.4】IPythonMagic函数使用示例使用%timeit命令快速测量代码运行时间In[6]:%timeitsum(range(1000000))使用%run命令运行脚本In[7]:%runc:\pythonpa\ch01\bigint.py使用%pylab进行交互式计算In[8]:%pylabIn[9]:x=linespace(-10,10,1000)In[10]:plot(x,sin(x))图CS-13使用%pylab在控制台动态绘图结果案例研究二:安装和使用PyCharm开发环境使用Python解释器、IDLE或Anaconda,可以满足学习Python或使用Python进行科学研究的要求如果需要使用Python进行项目开发,建议使用专业的集成开发环境。本章案例研究的主要目的是通过PyCharm的安装和使用,帮助学生使用PyCharm集成开发环境进行Python项目开发的方法本案例研究将介绍PyCharm专业版的安装和使用方法案例研究的解题思路和源代码等以电子版形式提供,具体请扫描教程中的二维码使用JetBrainsToolboxApp安装PyCharmJetBrains推荐使用JetBrainsToolboxApp安装JetBrains产品。使用JetBrainsToolboxApp可以安装和管理不同的产品或同一产品的多个版本,包括EarlyAccessProgram(EAP)和Nightly版本。JetBrainsToolboxApp维护所有项目的列表,以便在正确的IDE版本中快速打开项目从ToolboxApp网页(/toolbox/app/)下载并安装ToolboxApp(例如jetbrains-toolbox-1.24.12080.exe)后,运行Toolbox应用程序,将打开如图CS1B-1所示的窗口,单击通知区域中的图标并选择需要安装的产品和版本从Toolbox应用程序登录到用户的JetBrains帐户,将自动激活用户安装的任何IDE可用许可证PyCharm专业版的安装和使用方法【例CS1B.1】下载和安装PyCharm专业版【例CS1B.2】创建PyCharm项目【例CS1B.3】创建基于Django框架的PyCharm项目案例研究三:安装和使用VSCodeVSCode是一款轻量级但功能强大的代码编辑器,支持多种编程语言,适用于前端、后端、全栈开发,甚至数据科学和人工智能开发。它基于Electron框架构建,能够在Windows、macOS和Linux上运行,为开发者提供了高效、灵活的编程环境。通过安装支持Python语言编程的插件并选择指定Python运行环境,可以配置支持Python语言的VSCode开发环境。VSCode的新版更新在AI支持方面带来了许多创新功能,尤其是Agent模式和MCP协议的引入,极大地提升了开发者的编程体验和效率。通过安装AI辅助编程插件(例如,GitHubCopilot、CodeGeeX等等),可以配置支持AI辅助编程的VSCode开发环境VSCode的安装和配置使用VSCode开发Python应用程序需要先安装Python环境,建议安装使用Anaconda科学计算环境【例】下载和安装Anaconda科学计算环境。(1)下载Anaconda安装程序。打开Anaconda官网下载页面(网址为/download/),填写自己的邮件地址,勾选同意协议。单击submit按钮。然后在自己的邮箱中,通过收到的邮件中的下载链接进行Anaconda安装程序的下载(2)以管理员身份运行Anaconda安装程序。鼠标右击Anaconda3-2025.06-0-Windows-x86_64.exe,选择“以管理员身份运行”,打开安装程序向导。(3)安装Anaconda应用程序。根据安装向导,按照默认选项,安装Anaconda应用程序【例】下载、安装和配置VSCode(1)下载VSCode。访问VSCode的官网/,单击“DownloadforWindows”,或者窗口右上角的“Download”,下载对应操作系统的版本。例如,对应Windows平台的“VSCodeUserSetup-x64-1.101.2.exe”(2)安装VSCode。双击下载的文件“VSCodeUserSetup-x64-1.101.2.exe”,根据安装向导,选择默认的安装选项,完成安装。(3)安装Chinese(Simplified)(简体中文)插件。在VSCode中,单击左侧面板的图标,搜索并安装Chinese插件,如图所示,以支持Python语言的开发。单击“Install”安装,然后单击“ChangeLanguageandRestart”以重新启动VSCode显示中文界面【例】安装支持Python语言编程的插件并选择指定Python运行环境(1)安装Python语言插件。在VSCode中,单击左侧面板的图标,搜索并安装Python插件,以支持Python语言的开发(2)安装Jupyter语言插件。在VSCode中,单击左侧面板的图标,搜索并安装Jupyter插件,以支持Jupyter笔记本(3)选择指定Python运行环境。VSCode会自动选择Python运行环境(Python解释器)。在VSCode中,通过单击“查看”|“命令面板”命令,调出命令面板。在随后出现的命令面板中输入并选择Python:SelectInterpreter,然后选择指定Anaconda环境创建VSCode项目和编写运行Python程序VSCode中,“项目”对应于文件夹。打开文件夹即打开一个“项目”,也可以从版本控制中克隆项目。VSCode提供以下三种创建项目的方式,即导入本地文件夹、从GitHub克隆仓库、从Git仓库的URL克隆。【例】创建并打开项目。(1)创建本地文件夹。在Windows资源器中创建文件夹C:\pythonpa-CS\CS1C。该文件夹为空的项目。(2)打开项目。通过菜单命令“文件”|“打开文件夹”,选择“C:\pyth

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论