首页 > 基础资料 博客日记

【2024】Python入门,详细基础教程,零基础入门,详细图文

2025-01-15 05:00:09基础资料围观107

Java资料网推荐【2024】Python入门,详细基础教程,零基础入门,详细图文这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣

目录

前言

第一章 软件安装

一、Python解释器

二、代码编辑器

三、软件安装

1、Python解释器 安装

2、检测Python解释器是否安装成功

3、PyCharm代码编辑器 安装

4、打开PyCharm代码编辑器

第二章 新建Python程序文件

一、PyCharm中文界面设置

二、新建项目

三、新建Python代码文件

第三章 基础语法指令

一、print —— 打印指令,代码输入与运行

二、字符串与字符串连接符

1、字符串连接

2、单双引号转义

3、换行

4、三引号跨行字符串

三、变量

四、数学运算

五、注释

六、数据类型

1、字符串 str

2、整数 int、浮点数 float

3、布尔类型 bool

4、空值类型 NoneType

七、input——用户输入指令

八、条件语句

九、嵌套/多条件判断

十、逻辑运算

十一、列表 []

十二、元组 tuple

十三、集合 set

十四、字典 {}

十五、for循环

十六、range整数序列

十七、while循环

十八、格式化字符串

1、format方法

2、f-字符串

十九、函数

二十、引入模块

1、import 语句

2、from…import… 语句

3、from…import * 语句

4、其他

第四章 进阶函数

一、类

1、类的定义 class

2、类的命名

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。其中优先选择Python,Python容易教,容易学,其一:语法简洁;其二:封装得更适合新手,对于新手来说,更应该先专注于理解逻辑,而不是计算机底层构造,Python无需了解指针和内存管理等计算机偏底层的内容;其三:内置函数非常多,已写好的工具较多。

        Python的主要应用:脚本、网站后端、数据分析、机器学习等。

        Java有完善的工具库和框架,稳定性高,适合做网站后端、安卓应用、桌面应用。

        JavaScript主要应用在网站前端,也可以做网站后端、移动端、小程序。

        C的好处自由度高,可以直接操作内存和计算机硬件,帮助了解底层构造。C的主要应用:硬件、嵌入式、操作系统等底层软件开发。

       下图是以目的为导向的编程语言分类图。

       总结:新手不用花过多时间纠结第一门语言学什么,因为很多编程语言的语法定义差别不大。只要学会第一门语言,之后的语言更容易上手。比起选择什么语言,更关键的是什么时候动起来。

名言:种一棵树最好的时间是十年前,其次是现在。

第一章 软件安装

一、Python解释器

        机器是无法直接读懂编写的Python代码的,而是需要一个解释器作为中间的翻译,把代码转换为字节码后再执行,Python的运行过程为翻译一行,执行一行。

        一般常说的安装Python,本质上指的是安装Python解释器。

        

二、代码编辑器

        用于编写程序代码,代码编辑器种类非常多。

        推荐使用PyCharm。

        

三、软件安装

        基于Windows安装 Python解释器 和 PyCharm代码编辑器。

1、Python解释器 安装

        Python官方网址: 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

         点击主页右侧【下载】/【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(“爸!!”)

        全英文输入法输入相应代码,符号也必须再因为状态下输入,否则会出错。

        注:引号可以是双引号,也可以是单引号。引号以及引号内的内容为字符串。即使里面写的数字,也会被视为字符串。

        打印显示  爸!!

         打开PyCharm软件,主界面会有之前新建的项目文件,双击打开项目。如果主界面没有项目文件,可以点击右上角的【打开】按钮寻找。

         点击左侧【项目】,打开项目列表;

         右击项目文件名新建程序文件;注意不能右击venv文件夹将程序文件新建到此文件夹目录内,venv文件夹是此项目的虚拟环境文件,不可在此增加或者删减文件。代码文件需要与此文件夹分开。

         依次点击【新建】——【Python文件】;

         输入文件名,后缀添加 .py ,按回车键确认;

        注意:文件名要求以英文、数字、下划线组成;不要有空格、表情包等;

         程序文件添加完成;

         测试运行代码。代码输入完成后,右击代码框,选择【运行】按钮运行代码;

         运行窗口,显示程序运行状态。运行窗口的第一行和最后一行是软件自动生成的,第一行为PyCharm在运行代码时自动触发的运行指令,最后一行末尾显示为0,则代表程序无错误,如果是非零的数字,代表程序有错误。中间部分为程序运行的结果输出内容。

         如果程序编辑错误,软件会自动用红色下划线提示,运行了错误的程序,运行窗口也会有错误提示内容。最后一行末尾数字也会是非零的数字。

        注:如果不知道错误原因,可以复制错误提示的最后一行到百度内,粘贴并搜索,能找到别人也遇到过相似的问题的处理方式和原因。(上图错误内容复制:SyntaxError: invalid character ‘(’(U+FF08))。

二、字符串与字符串连接符

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”),返回长度5,

                   len(“哟!”),返回长度2。

                   len(“\n”),返回长度1。\n为一个完整的转义符,即 换行。

         可以提取字符串中某一个位置的单个字符;

“Hello”[4]  返回为 o

字符串编码从0起始。

2、整数 int、浮点数 float

6     -32         整数 int

6.0    10.07      浮点数 float

3、布尔类型 bool

        只有以下两种值:

真           假

Ture         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(x>5 and (x<10 or x==12))

十一、列表 []

列表 特点:有序,可重复,可扩展

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  value

contacts = {}

一个空字典用 花括号 {} 表示。

         键必须为不可变数据类型;即字符串、整数、浮点数等,不能为列表。

         添加或更新键值对的方法:字典名[“键”] = “值“

         判断键是否存在字典里面:键”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 statistics

print(statistics.median([19, -5, 36]))

print(statistics.mean([19, -5, 36]))

2、from…import… 语句

from 模块名 import 函数名,变量名         引入模块的某些函数或变量

from后面添加模块名,import后面添加函数名或变量名,需要引入多个的时候用逗号进行分隔。

此方法在使用时不需要再带上模块名。

示例:

from statistics import median, mean

print(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、类的定义 class

2、类的命名

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方法后将会释放系统资源,每次调用文件完成后都应该关闭文件。

     

with open(“./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 标准库 — Python 3.13.0 文档

 👉 京东网上商城

👉图灵社区


文章来源:https://blog.csdn.net/weixin_42399800/article/details/143822422
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!

标签:

相关文章

本站推荐

标签云