【2026】Python入门详细基础教程零基础入门详细图文目录前言第一章 软件安装一、Python解释器二、代码编辑器三、软件安装1、Python解释器 安装2、检测Python解释器是否安装成功3、PyCharm代码编辑器 安装4、打开PyCharm代码编辑器第二章 新建Python程序文件一、PyCharm中文界面设置二、新建项目三、新建Python代码文件第三章 基础语法指令一、print —— 打印指令代码输入与运行二、字符串与字符串连接符1、字符串连接2、单双引号转义3、换行4、三引号跨行字符串三、变量四、数学运算五、注释六、数据类型1、字符串 str2、整数 int、浮点数 float3、布尔类型 bool4、空值类型 NoneType七、input——用户输入指令八、条件语句九、嵌套/多条件判断十、逻辑运算十一、列表 []十二、元组 tuple十三、集合 set十四、字典 {}十五、for循环十六、range整数序列十七、while循环十八、格式化字符串1、format方法2、f-字符串十九、函数二十、引入模块1、import 语句2、from…import… 语句3、from…import /* 语句4、其他第四章 进阶函数一、类1、类的定义 class2、类的命名3、类的构造函数4、定义类的方法函数5、类的继承二、Python文件路径三、Python文件操作1、open() 方法打开文件2、read() 方法读取文件方法一3、readline() 方法读取文件方法二4、readlines() 方法读取文件方法三5、close() 方法关闭文件6、write() 方法写文件7、r同时支持读写文件四、Python异常处理五、Python测试1、assert 断言2、unittest 单元测试3、测试代码4、高效测试代码六、Python高阶和匿名函数1、高阶函数2、匿名函数第五章 其他一、相关本文相关程序代码获取通过百度网盘分享的文件链接https://pan.baidu.com/s/12hT6P2kKaDe/_8JeFwuQrrA提取码f12b前言–编程入门阶段不用花时间学习和记忆细枝末节这样会分散新手去理解核心逻辑的精力而且很常用的知识也很容易被遗忘。真实世界里的编程不是闭卷考试不需要把语言的细节全部记住因为随时可以上网搜索和查阅技术文档。写多代码的人最后都会意识到更重要的是具备搜索问题、发现答案和高效解决的能力而不是成为记忆大师。入门编程语言选择建议Python、Java、JavaScript、C。其中优先选择PythonPython容易教容易学其一语法简洁其二封装得更适合新手对于新手来说更应该先专注于理解逻辑而不是计算机底层构造Python无需了解指针和内存管理等计算机偏底层的内容其三内置函数非常多已写好的工具较多。Python的主要应用脚本、网站后端、数据分析、机器学习等。Java有完善的工具库和框架稳定性高适合做网站后端、安卓应用、桌面应用。JavaScript主要应用在网站前端也可以做网站后端、移动端、小程序。C的好处自由度高可以直接操作内存和计算机硬件帮助了解底层构造。C的主要应用硬件、嵌入式、操作系统等底层软件开发。下图是以目的为导向的编程语言分类图。总结新手不用花过多时间纠结第一门语言学什么因为很多编程语言的语法定义差别不大。只要学会第一门语言之后的语言更容易上手。比起选择什么语言更关键的是什么时候动起来。名言种一棵树最好的时间是十年前其次是现在。第一章 软件安装一、Python解释器机器是无法直接读懂编写的Python代码的而是需要一个解释器作为中间的翻译把代码转换为字节码后再执行Python的运行过程为翻译一行执行一行。 一般常说的安装Python本质上指的是安装Python解释器。二、代码编辑器用于编写程序代码代码编辑器种类非常多。 推荐使用PyCharm。三、软件安装基于Windows安装 Python解释器 和 PyCharm代码编辑器。1、Python解释器 安装Python官方网址 [Welcome to Python.org](https://www.python.org/ Welcome to Python.org)进入官网主页后鼠标放在 【Downloads】 选项区域会出现软件版本弹窗点击软件版本直接下载软件。(网页会自动识别电脑系统根据电脑系统适配相应的软件版本)软件下载完成后点击“打开文件”开始安装。勾选安装界面“Add Python 3.10 to PATH”前面的选框。其目的是将Python添加到系统环境变量中让电脑知道Python安装的位置。然后点击“Install Now”开始安装。如果安装过程中出现如下路径长度提示点击此处并在弹窗中点击“是”关闭弹窗后此路径长度提示消除后点击“Close”关闭安装界面则安装结束。2、检测Python解释器是否安装成功在电脑的【搜索栏】中输入“cmd”。点击“命令提示符”。在弹出的“命令提示符”窗口中输入“python”然后按回车键。窗口中出现Python版本信息相关内容即为安装完成关闭该窗口即可。3、PyCharm代码编辑器 安装PyCharm官方网址[PyCharm适用于数据科学和 Web 开发的 Python IDE](https://www.jetbrains.com.cn/pycharm/ PyCharm适用于数据科学和 Web 开发的 Python IDE)点击主页右侧【下载】/【Download】按钮。进入下载页面往下滑到黑色背景区域点击黑色背景区域的【下载】按钮下载软件。注上部分白色背景区域为专业版需付费仅30天免费试用期。下方黑色背景区域为社区版为免费版本。软件下载完成后点击“打开文件”开始安装。在安装界面点击【Next】。安装路径选择界面可不修改使用默认路径点击【Next】。安装选项界面勾选“Create Desktop Stortcut”下方的选框此项为安装完成后生成桌面图标安装选项界面勾选“Create Associations”下方的选框此项是将Python所有文件使用此软件PyCharm打开。点击【Next】。选择开始菜单文件夹界面直接点击【Install】开始安装软件。安装完成后点击【Finish】完成安装。4、打开PyCharm代码编辑器双击打开桌面的PyCharm图标。勾选同意用户协议选项再点击【Continue】按钮。数据共享界面。选择是否共享匿名数据可以选择不共享点击【Don’t Send】。出现如下界面则PyCharm已安装完成。第二章 新建Python程序文件一、PyCharm中文界面设置打开PyCharm主界面点击【Plugins】即插件按钮。在右侧搜索栏中输入“chinese”然后按回车键搜索。找到如图“汉”图标的插件点击右侧的【Install】按钮下载插件。重启PyCharm软件成效。下图为重启后的主界面语言已修改为中文。二、新建项目点击主页的【新建项目】按钮。【位置】项目文件存储目录建议点击右侧文件夹按钮在电脑上新建一个文件夹用于存储此项目所有文件。基本解释器右侧下拉选择已安装的解释器。取消“创建main.py欢迎脚本”的勾选框。此项会自动创建一个初始文件可以不需要此初始文件。设置完成后点击右下角的【创建】按钮。项目文件新建完成下图为项目主界面项目文件夹内自动创建添加了关联文件。项目文件夹内不要存放与项目无关的文件容易混乱。PyCharm自动创建的venv文件夹为虚拟环境文件夹表示此项目独立的Python虚拟环境存在的目的是让不同的项目可以使用不同的Python解释器版本还有安装的第三方库等。此文件夹不要移动不要删除不要往里面放任何东西。注如果在项目文件夹内无法找到venv文件夹。原因大概率是在新建项目步骤时勾选了“先前配置的解释器”而不是“使用此工具新建环境Virtualenv”。虚拟环境的好处是可以让不同项目使用不同解释器版本、第三方库等适用于程序员做多个项目以及团队合作的情况。但对新手来说用虚拟环境不是必要的所以如果没有venv文件夹也不用专门回去修改。三、新建Python代码文件右击项目文件夹名称在弹窗上点击【新建】在附属弹窗上点击【Python文件】在【新建Python文件】选择【Python文件】在输入框输入文件名称后缀加上【.py】按回车键确认新建后会弹出【将文件添加到Git】提示框新手可以不用了解可以勾选【不再询问】再点击【取消】。Python代码文件新建结束。第三章 基础语法指令一、print —— 打印指令代码输入与运行print(“爸!!”)全英文输入法输入相应代码符号也必须再因为状态下输入否则会出错。 注引号可以是**双引号**也可以是**单引号**。引号以及引号内的内容为字符串。即使里面写的数字也会被视为字符串。 打印显示 爸!图片](https://i-blog.csdnimg.cn/direct/1694f7e1b64940c0a62a6fa8c59e4311.png)打开PyCharm软件主界面会有之前新建的项目文件双击打开项目。如果主界面没有项目文件可以点击右上角的【打开】按钮寻找。点击左侧【项目】打开项目列表右击项目文件名新建程序文件注意不能右击venv文件夹将程序文件新建到此文件夹目录内venv文件夹是此项目的虚拟环境文件不可在此增加或者删减文件。代码文件需要与此文件夹分开。依次点击【新建】——【Python文件】输入文件名后缀添加.py按回车键确认注意文件名要求以英文、数字、下划线组成不要有空格、表情包等程序文件添加完成测试运行代码。代码输入完成后右击代码框选择【运行】按钮运行代码运行窗口显示程序运行状态。运行窗口的第一行和最后一行是软件自动生成的第一行为PyCharm在运行代码时自动触发的运行指令最后一行末尾显示为0则代表程序无错误如果是非零的数字代表程序有错误。中间部分为程序运行的结果输出内容。如果程序编辑错误软件会自动用红色下划线提示运行了错误的程序运行窗口也会有错误提示内容。最后一行末尾数字也会是非零的数字。注如果不知道错误原因可以复制错误提示的最后一行到百度内粘贴并搜索能找到别人也遇到过相似的问题的处理方式和原因。上图错误内容复制SyntaxError invalid character ‘’(UFF08)。二、字符串与字符串连接符1、字符串连接字符串之间用“”号作为连接符。例如print(“Hello”” World””!”)2、单双引号转义print(“He said “good!””) 此行程序会出错默认为前面两个引号为一组后面两个引号为一组第二个到第三个引号之间的内容会出错。 需要改为以下指令 print(‘He said “good!”’) print(“He said ‘good!’”)如果一句话内有单引号和双引号例如“He said “Let’s go!””需要在引号前加反斜杠**/**表示后面的引号为引号符号是内容的一部分不是结束符。print(“He said /“Let/’s go!/””)上一句打印出来是He said “Let’s go!”3、换行/n表示换行print(“Hello!/nHi!”)打印出来的内容如下图Hi!显示在下一行。4、三引号跨行字符串三个连在一起单引号或双引号。“” “”‘’’ ‘’’三、变量变量名称规则字母、数字、下划线组成不能有除了下划线以外的符号不能有空格不能以数字开头不能用双引号包括变量区分大小写不能使用专用关键字。变量命名建议不要使用拼英使用英文单词组命名Python3.0版本后支持中文变量但是不建议使用中文变量可能存在乱码。Python变量命名约定俗成使用下划线命名法。1**、字母全部小写。**2**、不同单词用下划线分隔。**例如user/_age user/_gender变量赋值操作用单等号例如 my/_love 123456789代码是一行一行执行的故使用变量时变量必须在此之前定义否则会出错。四、数学运算带双引号的数字是字符串“6”带小数点的数字都是浮点数6.0不带小数的数字为整数6。加 减- 乘/ 除/ 乘方//*在程序前添加import math****指令可以将Python内置的函数库加载到程序内。使用内置函数可以直接访问例如math.sin(1)内置函数库网址math — 数学函数 — Python 3.13.0 文档五、注释#为注释符仅当前行注释。快捷键ctrl/如果需要撤销注释选择注释行按ctrl/将撤销注释。快捷键注释方法适用于一次性注释连续的多行或连续的撤销注释。三引号注释“” “”也适用于多行注释。如果将多行注释前面加上变量名和等号将代表将此内容赋值给一个变量。str 一二三四 五六七八 九十六、数据类型Python语言在定义变量时不需要指定变量的数据类型Python程序会根据变量值自动确定变量类型。1、字符串 str字符串特点是被双引号或单引号包裹例如”字符串” ‘字符串’可以对字符串使用len指令得到字符串长度例如 len(“Hello”)返回长度5len(“哟”)返回长度2。len(“/n”)返回长度1。/n为一个完整的转义符即 换行。可以提取字符串中某一个位置的单个字符“Hello”[4]返回为o字符串编码从0起始。2、整数 int、浮点数 float6 -32 整数 int6.0 10.07 浮点数 float3、布尔类型 bool只有以下两种值真 假True False区分大小写4、空值类型 NoneType只有一种值None表示完全没有值None不是0不是空字符串””也不是False。当不确定变量数据类型时可以使用type指令反馈变量类型。七、input——用户输入指令执行**input**指令时读取用户输入的数据。八、条件语句比较运算符等于。!比较运算符不等于。条件判断语法结构执行语句需要缩进四个空格如果不缩进默认为条件语句已经执行结束。九、嵌套/多条件判断下图表示多条件嵌套写法注意缩进数量。条件判断语句内可以使用连续的判断符号if 0 score 100:三目运算符是 if…else… 双分支结构的缩写形式。格式结果1 if 条件 else 结果2结果1条件成立时返回的结果结果2条件不成立时返回的结果例子 second/_max num1 if num1 num2 else num2判断num1是否大于num2如果成立则返回num1的值赋值给左边的变量否则返回num2的值给左边的变量。十、逻辑运算与and 所有条件为True才会返回True只要有一个为False就为False。或or 只要有一个条件为True就会返回True所有条件为False才为False。非not 操作对象为True则返回Flase操作对象是Flase则返回True。优先级顺序 not —— and —— or也可以使用括号改变运算顺序not(x5 and (x10 or x12))十一、列表 []列表 特点有序可重复可扩展shopping/_list []一个空列表用中括号 []表示。shopping/_list [“**键盘”,”鼠标”]在列表内添加内容的方法**shopping/_list.append [“**显示器”]在列表内删除内容的方法****shopping/_list.remove [“**显示器”]列表内可放不同类型的数据列表求长度返回的是列表中元素的数量shopping/_list [“键盘”,”鼠标”,”硬盘”]len(shopping/_list)返回为3也可以通过索引获取列表中某个元素。shopping/_list [“键盘”,”鼠标”,”硬盘”]print(shopping/_list[0])返回为 键盘列表索引也是从0开始。列表为可变数据类型。十二、元组 tuple元组 特点有序可重复不可扩展不可变但又很像列表的数据结构。元组内可放多个元素。列表用方括号元组用圆括号()。元组不可变添加、删除等操作都不能操作可以把元组作为键使用十三、集合 set集合 特点无序不可重复可扩展以上程序运行输出内容十四、字典 {}键 值key valuecontacts {}一个空字典用花括号 {}表示。键必须为不可变数据类型即字符串、整数、浮点数等不能为列表。添加或更新键值对的方法字典名[“键”] “值“判断键是否存在字典里面**“**键”in 字典名删除键与对应的值del字典名[“键”]如果键不存在指令会报错。求键值对数量**len(**字典名)返回字典的键、值、键值对的方法十五、for循环等同于break终止当前循环,使程序跳出循环体。continue****结束当前循环剩余语句继续下一轮循环**pass****在Python中是一个空语句什么都不做占位语句**它的主要目的是为了保持程序结构的完整性。当你在编写代码时可能只想先搭建起程序的整体逻辑结构而暂时不去实现某些细节。在这种情况下你可以使用pass语句来占位这样就可以避免因为语句块为空而导致的语法错误。pass语句不会执行任何操作它只是一个空白的语句块。十六、range整数序列range 表示整数序列range(5,10)第一个数字为起始值第二个数字为结束值注结束值不在序列范围内。range(5,10,2)range的第三个参数为步长不指明的时候默认为1十七、while循环以下三段程序效果相同有明确的循环对象或次数时用for循环。循环次数未知时用while循环。十八、格式化字符串1、format方法format内的参数起始编号以0开始即花括号引用的0表示第一个参数1表示第二个参数。format还可以根据关键词引用这种方式就不需要考虑参数在format内的哪个位置只根据关键词引用。2、f-字符串f字符串引用已定义的字符串变量。format方法调到用字符串可以直接调用数字不需要额外进行数字转字符串的操作。还可以使用冒号点数字f来指定浮点数在格式化是保留几位小数。十九、函数Python内置函数自定义函数。除了内置函数还可以自定义函数格式如下注意四个而空格缩进。函数返回值 return函数运行完成后没有写返回值默认返回值为 None。print、append、len、sum等函数的返回值均为None自定义函数返回值示例二十、引入模块Python含有很多的函数模块不同模块内存不同功能的函数可以在程序里面引入使用。1、import 语句import加上模块名引入模块需要使用模块的函数或变量的时候格式如下模块名.函数名模块名.变量名示例import statisticsprint(statistics.median([19, -5, 36]))print(statistics.mean([19, -5, 36]))2、from…import… 语句from模块名 import 函数名,变量名****引入模块的某些函数或变量from后面添加模块名import后面添加函数名或变量名需要引入多个的时候用逗号进行分隔。此方法在使用时不需要再带上模块名。示例from statistics import median, meanprint(median([19, -5, 36]))print(mean([19, -5, 36]))3、from…import /* 语句from**模块名 import /***引入模块的所有内容from后面添加模块名import后面加/号将模块里面的所有内容进行引入在使用时全都不需要在前面添加模块名。优点需要使用同一个模块的不同函数或变量可以直接使用不需要再加模块名。缺点如果因引用多个模块不同模块内可能包含相同名称的函数运行时可能出现错误。此方法不建议使用。示例from statistics import /print(median([19, -5, 36]))print(mean([19, -5, 36]))4、其他在PyCharm软件内查看Python模块函数代码方法按住ctrl再点击代码中的函数即会显示源代码。除了引入官方的模块以外还可以引入第三方模块引入方法与引用官方模块一样前提是引入之前需要提前安装好第三方的模块。第三方库搜索网站PyPI · The Python Package Index如果安装第三方库在PyCharm的【终端】窗口输入pip install 后面加上库的名字。安装完成后即可使用库的函数。第四章 进阶函数一、类1、类的定义 class2、类的命名Python常用类的命名方法为Pascal命名法即首字母大写。3、类的构造函数类的构造函数主要作用是定义实例对象的属性。必须命名为//init//前后必须有两个下划线。括号内可以放任意数量的参数但是第一个永远是被占用的用于表示自身约定俗称为self它能把属性绑定在实列的对象上。从参数中获取值在创建对象时在括号内写入要传入的参数**//init//**函数将会绑定传入的参数。4、定义类的方法函数定义类的方法与创建普通函数差不多。 有两点区别 1、需要创建在class里面前面需要有缩进来表示属于该类的方法。 2、和 /_/_init/_/_ 一样第一个参数被占用用于表示对象自身约定俗成为 self 。5、类的继承子类可以继承父类的属性和方法。 在子类名称后的括号中写上父类的名称此时父类的方法就会继承到子类中。调用函数和方法时优先看所属的类是否有没有该方法函数如果过有则执行该类的方法如果没有会往上找父类的同名方法使用。如果子类程序中有**//init//方法则创建子类实例时优先调用子类的构造函数导致实例只有子类的//init//中的属性参数而父类的//init//属性参数不会被调用。此时在子类中用supper()**方法返回当前类的父类在子类的构造函数中写supper().//init//()则会调用父类的构造函数子类将会继承父类的构造函数中的属性。什么时候可以用继承如果说A是B那么就可以把A写成是B的子类。二、Python文件路径不同操作系统文件存储路径Linux、macOS等操作系统所有文件存储在根目录下根目录用**斜杠(/)**表示。Windows操作系统每个磁盘分区都有根目录用分区名加**反斜杠(/)**表示。定义文件位置的方法有两种绝对路径和相对路径。1、绝对路径从根目录出发的路径。对于Linux、macOS等系统绝对路径以斜杠(/)开头路径中每个目录之间用斜杠进行分隔最后以目标文件或目标目录结尾。对于Windows系统绝对路径以分区名加反斜杠(/)开头路径中每个目录之间用反斜杠进行分隔最后以目标文件或目标目录结尾。2、相对路径从一个参考位置出发。表示从指定文件位置出发其他文件处于什么路径。用相对路径时用点(.)表示参照物所在的目录用点点(…)表示更上一层的父目录。如果继续往上走就用点点(…)跟上斜杠或者反斜杠进行分隔后面跟上点点(…)表示当前文件所属目录的父目录的父目录。如果是往更下层走同样以斜杠或反斜杠来分隔路径中的目录。相对路径都是以点(.)或点点(…)开头。**./(./)**是可以省略的在同一路径下相互用相对路径找到彼此可以直接使用文件名。三、Python文件操作1、open() 方法打开文件open()方法打开文件括号内放文件路径可以是相对路径也可以是绝对路径。示例open(“./data.txt”) 相对路径open(“/usr/demo/data.txt”) 绝对路径open()方法的第二个参数表示模式模式是一个字符串常见的字符串有“r”表示读取模式**“w”**表示写入模式。示例open(“/usr/demo/data.txt”,”r”)注第二个参数可以不写不写时默认为读取模式 ”r”。读取模式下如果找不到文件就会报FileNotFoundError的错误表示文件不存在。**open()**方法还有一个可选参数encoding表示编码方式。一般文件编码方式为UTF-8。示例f open(“./data.txt”, ”r”, encoding”utf-8”)如果open()方法执行成功将会返回一个文件对象后续可以对这个对象进行读取或写入操作。2、read() 方法读取文件方法一运行read()方法会一次性读取文件里面的所有内容并以字符串的形式返回。一般操作的文件以文本为主。其他类似word文件内有字体颜色、字号区分的文件很可能读取有误。运行read()方法后再次调用时返回的结果为空因为程序会记录文件读取到哪个位置第一次运行read()时已经读到结尾第二次运行时后面已经没有内容。文件太大时不建议使用read()方法因为读出来的内容会占用很大的内存。如果不需要一次性读取整个文件可以在read()传一个数字表示读多少个字节下次调用read时会从上次结束位置继续往下读。3、readline() 方法读取文件方法二只读取文件一行内容下次调用时继续读取下一行根据**换行符**来判断什么时候结束本行。并且换行符会被当成读到的内容的一部分。读取到结尾后继续读取将会返回空字符串表示后面已经无内容。一般采用while循环判断只要返回的不是空字符串就继续读取下一行否则退出循环。4、readlines() 方法读取文件方法三读取文件内容并将每行作为**列表元素**返回。一般和for循环结合使用。先调用readlines方法把每行读取出来再逐行循环列表所有内容。三种读取文件的方法5、close() 方法关闭文件调用close方法后将会释放系统资源每次调用文件完成后都应该关闭文件。withopen(“./data.txt”) as f:print(f.read()) #对文件的操作如上方式可以不用调用close方法关闭文件文件操作完成后会自动关闭文件。注意对文件操作的代码需要缩进缩进的代码块执行完毕后会自动关闭文件。6、write() 方法写文件写文件与读文件类似都需要先打开文件并且在操作完成后关闭文件。同样可以使用 **with open() as f:** 方式。with open(“./data.txt”,”w”, encoding”utf-8”) as f:open的第二个参数传入w即为写文件模式写文件模式找不到文件不会像读文件模式那样报错而是自动创建传入文件名的那个文件。第三个参数为encoding编码格式。注使用w模式打开文件进行写入时如果文件已存在将会把原有文件内容全部清空。如果不想重写文件内容而是增加文件内容则open()的第二个参数需要传入附加模式”a”参数。如果文件名不存在会直接创建文件。无论是”w”模式还是”a”模式都不能读取文件原本的内容如果在这两个模式下调用read()方法程序会报错不支持读操作(UnsupporttedOperation)。7、r同时支持读写文件open()方法的第二个参数传入”r”参数就可以同时支持读写文件。四、Python异常处理程序报错类型有很多。可以通过try/except语句捕捉异常try后加冒号换行后在缩进的代码块里放入可能产生错误的代码接下来在except后面跟上需要捕捉的错误名字以及冒号。以上程序用户输入的内容可能不是浮点数将会报错ValueError错误就可以在except后面放入ValueError去捕捉。再在下一行放入出现错误代码后需要执行的代码。可以分别捕捉多个错误代码如果不知道可能出现什么错误可以写except:即为除了以上列出的错误代码以外的任何错误都执行此代码。需要注意的是try/except语句在捕捉错误时依次从上往下运行如果第一个except已经捕捉到错误之后的except将不会执行与if/elif语句类似只有第一个符合条件的分支会运行。else:表示没有出现任何错误时执行的语句。finally:无论是否发生错误都会执行的语句。五、Python测试1、assert 断言assert后面可以跟上任何布尔表达式在assert后面跟上我们认为为True的表达式如果assert后面的表达式最终求出来为True则正常结束继续运行后面的代码。如果求出来的结果为False则会产生**“AssertionError”断言错误**。一旦出现断言错误程序将会终止。一般会使用专门做测试的库能一次性跑多个测试用例并且能直观展示哪些测试通过。2、unittest 单元测试unittest对软件中最小可测试单元进行验证。比如验证某函数的某个方面表现是否符合预期。unittest库时Python自带的不需要额外安装。 因unittest是一个库需要用import语句引用到测试程序内。 一般把测试代码放到独立文件内。而不是和要测试的功能放到一起。这样更清晰地划分实现代码和测试代码。测试代码中还需要将需要测试的函数或类引入进来如果测试文件和被测试文件位于同一文件夹下引入语法是:from文件名 import 函数名from文件名 import 类名3、测试代码引入测试模块 unittest单元测试模块并且引入需要测试的函数。创建一个测试的类作为unittest.TestCase的子类继承unittest.TestCase的各种测试功能。在此类下面定义各种需要测试的用例每个测试用例都是类的一个方法。 测试方法命名必须以 **test/_** 开头。因为 unittest 库只把 test/_ 开头的方法当作测试用例以上测试可以使用 unittest 库里面 unittest.TestCase 类的assertEqual 方法自编辑的类已经继承测试unittest.TestCase 类可直接使用self调用父类方法传入的第一个参数和第二个参数如果相等则测试通过如果不相等则测试不通过程序也不会报错退出。测试用例编辑完成后需要在编辑器的【终端】窗口中输入 python -m unittest 运行unittest库这个库就会自动搜索所有继承了unittest库里TestCase类的子类运行所有以test/_开头的方法然后展示测试结果。运行结束后会提示一共运行了几个测试用例并且展示测试结果 一个**·**表示一个测试一个测试通过F表示一个测试不通过。如果有测试不通过unittest会详细输出哪个文件下面的哪个方法造成了测试失败以及为什么失败。4、高效测试代码unittest.TestCase类的常见测试方法。假如需要测试一个类为了调用各种类方法需要创建示例对象由于不同测试用例之间是独立的测试不同方法的时候需要不停的创建新的对象。为了减少重复代码可以使用TestCase类里的setUp方法在运行测试代码时也就是 tset/_ 开头的方法前setUp方法都会先被运行一次这样只需要在setUp方法里面把测试对象创建好作为当前测试类的一个属性然后在各个方法里面获取已经创建好的对象去写测试语句。六、Python高阶和匿名函数1、高阶函数一个函数里面些多个运行逻辑每次增加逻辑时需要在这个函数继续增加程序此写法不优雅直观。为了优雅直观的表示函数可以将函数的各种计算方式独立成单独的函数。运行计算方式时直接调用传入的函数将计算结果显示出来。这种将函数作为参数的函数叫做高阶函数。作为参数的函数是直接用函数名进行传入表示函数其本身后面不能带括号和参数入过带括号即表示调用此函数从而传入的是函数的执行结果。高阶函数还可以同时调用多个函数。2、匿名函数匿名函数不需要写名字即用即仍可以把匿名函数当作没有名字且占用行数更少的函数。以lambda作为关键字。 可以直接在高阶函数的括号内写上关键字 lambda 再跟上 变量名后面再跟上冒号 冒号后面直接写上需要返回的结果无需写return.如果需要给匿名函数增加参数直接用逗号分隔即可。以上匿名函数写成普通函数如下图所示除了作为高阶函数的参数匿名函数还可以定义好后直接被调用。调用方式和普通函数一样都是括号然后括号里面传入参数唯一的区别是前面的匿名函数也是要被括住表示这是一个整体。匿名函数也有局限性冒号后没法有多个语句或表达式只适用于比较简单的场景对于多步骤的复杂逻辑或者设计循环递归等它可能不灵活没法用它写出来即使写出来可读性会很差。第五章 其他一、相关Python标准库Python 标准库 — Python 3.13.0 文档看完这套Python入门教程后想继续巩固基础推荐书籍《Python编程从入门到实践第3版》《Python编程从入门到实践 第3版》([美]埃里克·马瑟斯Eric Matthes)【简介/_书评/_在线阅读】 - 当当图书 京东网上商城图灵社区《网络安全从零到精通全套学习大礼包》96节从入门到精通的全套视频教程免费领取如果你也想通过学网络安全技术去帮助就业和转行我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。网络安全学习路线图想要学习 网络安全作为新手一定要先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取先按照路线图学习方向不对努力白费。对于从来没有接触过网络安全的同学我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线大家跟着这个路线图学习准没错。配套实战项目/源码所有视频教程所涉及的实战项目和项目源码学习电子书籍学习网络安全必看的书籍和文章的PDF市面上网络安全书籍确实太多了这些是我精选出来的面试真题/经验以上资料如何领取