Python期末复习

时间:2024-10-07 16:13:46

                                                   第二章Python基础

2.1 Python的代码格式

2.1.1缩进

Python代码的缩进可以通过Tab控制,也可使用空格控制。空格是Python3首选的缩进方法,一般使用4表示一级缩进;Python3不允许混合使用Tab和空格

2.1.2注释

单行注释以“#开头,用于说明当前行或之后代码的功能。单行注释既可以单独占一行,也可以位于标识的代码之后,与标识的代码共占一行

 多行注释是由三对双引号单引号包裹的语句,主要用于说明函数或类的功能

2.1.3语句换行

Python官方建议每行代码不超过79字符,若代码过长应该换行。Python会将圆括号、中括号和大括号中的行进行隐式连接,我们可以根据这个特点实现过长语句的换行显示。

string=(“Python是一种面向对象、解释型计算机程序设计语言,

      “Guido van Rossum1989年底发明。

        第一个公开发行版发行于1991年,”     

      源代码同样遵循 GPL(GNU General Public License)协议。”)

2.2.2Python标识符

现实生活中,人们常用一些名称来标记事物。例如,每种水果都有一个名称来标识

若希望在程序中表示一些事物,开发人员需要自定义一些符号和名称,这些符号和名称叫做标识符 Python中的标识符需要遵守一定的规则。

注意:

标示符由字母、下划线和数字组成,且数字不能开头。
Python 中的标识符是区分大小写的。例如, andy Andy 是不同的标识符。
Python 中的标识符不能使用关键字

为了规范命名标识符,关于标识符的命名提以下建议:

见名之意

常量名使用大写的单个单词或由下画线连接的多个单词模块名、函数名使用小写的单个单词或由下画线连接的多个单词;类名使用大写字母开头的单个或多个单词。

2.2.2Python关键字

关键字Python已经使用的、不允许开发人员重复定义的标识符。Python3中一共有35关键字,每个关键字都有不同的作用。在Jupyter单元格中执行“help(”关键字“)”可查看关键字的声明。

关键字区分大小写

Python 3.7中有 35 个关键字。该数字在一段时间内可能会略有变化。
所有关键字必须是小写的,其中 True,False 和 None 除外。

2.3.1变量

与其他编程语言不同,Python 没有声明变量的命令。

程序在运行期间用到的数据会被保存在计算机的内存单元中,为了方便存取内存单元中的数据Python使用标识符来标识不同的内存单元,如此,标识符与数据建立了联系。

变量(Variable可以看成一个小箱子,专门用来“盛装”程序中的数据。每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据。

标识内存单元的标识符又称为变量名Python通过赋值运算符“=”将内存单元中存储的数值与变量名建立联系,即定义变量,具体语法格式如下变量 =

将内存单元中存储的数据10与变量名a建立联系

 2.3.2数据类型

根据数据存储形式的不同,数据类型分为基础的数字类型和比较复杂的组合类型,其中数字类型又分为整型浮点型布尔类型复数类型;组合类型分为字符串列表元组字典等。

 Python内置的数字类型有整型int)、浮点型float)、复数类型complex)和布尔类型(bool),其中intfloatcomplex分别对应数学中的整数、小数和复数;bool类型比较特殊,它是int的子类,只有TrueFalse两种取值。数字类型的示例如下:

整型: 0     101     -239

浮点型:  3.1415     4.2E-10     -2.334E-9

复数类型:  3.12+1.2.3j     -1.23-93j

布尔类型:  True     False

字符串是一个由单引号、双引号或者三引号包裹的、有序的字符集合。示例如下:

使用单引号包含: 'Python123'

使用双引号包含:  "Python4*&%" 

使用三引号包含:  '''Python s1 ~(())'''

列表是多个元素的集合,它可以保存任意数量、任意类型的元素,且可以被修改。Python中使用“[]”创建列表,列表中的元素以逗号分隔,示例如下:

[1, 2, 'hello']

元组与列表的作用相似,它可以保存任意数量与类型的元素,但不可以被修改。Python中使用“()”创建元组,元组中的元素以逗号分隔,示例如下:

(1, 2, 'hello'])

集合与列表和元组类似,也可以保存任意数量、任意类型的元素,不同的是,集合使用“{}”创建,集合中的元素无序且唯一。示例如下:

{'apple', 'orange', 1}

字典中的元素是“键(Key值(Value”形式的键值对,键不能重复Python中使用“{}”创建字典,字典中的各元素以逗号分隔,示例如下:

{"name": "zhangsan", "age": 18}

2.3.3变量的输入和输出

程序要实现人机交互功能,需能从输入设备接收用户输入的数据,也需要向显示设备输出数据。

input()函数用于接收用户键盘输入的数据,返回一个字符串类型的数据,其语法格式如下所示:

input([prompt])

prompt表示函数的参数,用于设置接收用户输入时的提示信息。

print()函数用于向控制台中输出数据,它可以输出任何类型的数据,其语法格式如下所示:

print(*objects, sep=' ', end='\n', file=)

p objects :表示输出的对象。输出多个对象时,对象之间需要用分隔符分隔。
p sep :用于设定分隔符,默认使用空格作为分隔。
p end :用于设定输出以什么结尾,默认值为换行符 \n
p file :表示数据输出的文件对象。

 实例:

2.4.1打印购物小票 

本实例要求编写代码,实现打印购物小票的功能。

 2.4.2打印蚂蚁森林植树证书

植树证书中包含申请日期树苗编号等信息。本实例要求编写代码,实现打印植树证书信息的功能。

2.5.1整型

整数类型(int简称整型,它用于表示整数。整型常用的计数方式有4种,分别是二进制(以“0B”或“0b”开头)、八进制(以数字“0o”或“0O”开头)、十进制十六进制(以“0x”或“0X”开头)。以4种计数方式表示整型数据5,示例如下:

0b101  # 二进制

0o5  # 八进制

5  # 十进制

0x5  # 十六进制

为了方便使用各进制的数据,Python中内置了用于转换数据进制的函数:bin()oct()int()hex(),关于这些函数的功能说明如下。

 2.5.2浮点型

浮点型(float用于表示实数,由整数和小数部分(可以是0)组成例如,3.140.9。较大或较小的浮点数可以使用科学计算法表示。

科学计数法会把一个数表示成a10n次幂相乘的形式,数学中科学计数法的格式为:

a×10n 1≤|a|<10n∈N

Python程序中省略“×”,使用字母eE代表底数10,示例如下:

-3.14e2  # 即-314

3.14e-3  # 0.00314

Python中的浮点型每个浮点型数据占8个字节(即64位),且遵守IEEE标准。Python中浮点型的取值范围为-1.8e308~1.8e308,若超出这个范围,Python会将值视为无穷大(inf)或无穷小(-inf)。

2.5.3复数类型

复数由实部虚部构成,它的一般形式为:real+imagj,其中real实部imag虚部j虚部单位。示例如下:

complex_one = 1 + 2j  # 实部为1,虚部为2

complex_two = 2j  # 实部为0,虚部为2

2.5.4布尔类型

Python中的布尔类型只有True(真)False(假)两个取值。实际上,布尔类型也是一种特殊的整型,其值True对应整数1False对应整数0若数据符合以下任一条件,其布尔值均为False

值为NoneFalse的常量

任何数字类型的0:00.00j

空组合数据类型:''()[]set(){}

2.5.5数字类型转换

Python内置了一系列可实现强制类型转换的函数,使用这些函数可以将目标数据转换为指定的类型。数字类型间进行转换的函数有int()float()complex()需要注意的是浮点型数据转换为整型数据后只保留整数部分

2.6运算符

 Python运算符是一种特殊的符号,主要用于实现数值之间的运算。根据操作数数量的不同,运算符可分为单目运算符、双目运算符;根据运算符的功能,运算符可分为算术运算符赋值运算符比较运算逻辑运算成员运算符

2.6.1算术运算符

Python中的算术运算符包括+-*///%**。以操作数a = 2b = 8为例对算术运算符进行使用说明。

 Python中的算术运算符既支持对相同类型的数值进行运算,也支持对不同类型的数值进行混合运算。在混合运算时,Python会强制将数值的类型进行临时类型转换,这些转换遵循如下原则:

整型与浮点型进行混合运算时,将整型转化为浮点型。

其他类型与复数运算时,将其他类型转换为复数类型。

2.6.2赋值运算符

赋值运算符的作用是将一个表达式对象赋值给一个左值。左值是指一个能位于赋值运算符左边的表达式,它通常是一个可修改的变量,不能是一个常量。例如将整数3赋值给变量numnum=3

赋值运算符允许同时为多个变量赋值

x = y = z = 1    # 变量xyz均赋值为1

Python中的算术运算符可以与赋值运算符组成复合赋值运算符,赋值运算符同时具备运算和赋值两项功能。以变量num为例, Python复合赋值运算符的功能说明及示例如下:

2.6.3比较运算符

比较运算符也叫关系运算符,用于比较两个数值,判断它们之间的关系。Python中的比较运算符包括==!=><>=<=,它们通常用于布尔测试,测试的结果只能是TrueFalse。以变量x=2y=3为例,具体如下:

2.6.4逻辑运算符

 Python中分别使用“or,“and,“not这三个关键字作为逻辑运算符,其中orand为双目运算符,not为单目运算符。以x=10y=20为例,具体如下:

2.6.5成员运算符

 成员运算符innot in用于测试给定数据是否存在于序列(如列表、字符串)中:

in:如果指定元素在序列中返回True,否则返回False。

not in:如果指定元素不在序列中返回True,否则返回False。

2.6.6位运算符

位运算符用于按二进制位进行逻辑运算,操作数必须为整数。以a=2b=3为例进行演示,具体如下:

 按位左移(<<)是指将二进制形式操作数的所有位全部左移n位,高位丢弃,低位补0

按位右移(>>)是指将二进制形式操作数的所有位全部右移n位,低位丢弃,高位补0

按位与(&)是指将参与运算的两个操作数对应的二进制位进行“与”操作。当对应的两个二进制位均为1时,结果位就为1,否则为0

按位或(|)是指将参与运算的两个操作数对应的二进制位进行“或”操作。若对应的两个二进制位有一个为1时,结果位就为1。若参与运算的数值为负数,参与运算的两个数均以补码出现。

 按位异或(^)是指将参与运算的两个操作数对应的二进制位进行“异或”操作。当对应的两个二进制位中有一个为1,另一个为0时,结果位为1,否则结果位为0。

按位取反(~)是指将二进制的每一位进行取反,0取反为11取反为0。按位取反操作首先会获取这个数的补码,然后对补码进行取反,最后将取反结果转换为原码。

2.6.7运算符优先级

Python支持使用多个不同的运算符连接简单表达式,实现相对复杂的功能,为了避免含有多个运算符的表达式出现歧义,Python为每种运算符都设定了优先级Python中运算符的优先级从高到低如下:

                                                         第三章 流程控制

3.1条件语句

3.1.1if语句

if句由关键字if判断条件冒号组成,if语句和从属于该语句的代码段可组成选择结构。

if 条件表达式:

    代码块

3.1.2 if-else语句

一些场景不仅需要处理满足条件的情况,也需要对不满足条件的情况做特殊处理。

if 判断条件:

    代码块1

else:

    代码段2

3.1.3 if-elif-else语句

Python除了提供单分支和双分支条件语句外,还提供多分支条件语句if-elif-else。多分支条件语句用于处理单分支和双分支无法处理的情况,其语法格式如下:

if 判断条件1:

    代码段1

elif 判断条件2:

    代码段2

elif 判断条件3:

    代码段3

...

else:

    代码段n

3.1.4嵌套

Python中通过if嵌套可以实现程序中条件语句的嵌套逻辑。if嵌套的语法格式如下所示:

if 判断条件1:        # 外层条件

    代码段1

if 判断条件2:    # 内层条件

        代码段2

...

实例:

3.2.1计算器

计算器极大地提高了人们进行数字计算的效率与准确性,无论是超市的收银台,还是集市的小摊位,都能够看到计算器的身影。计算器最基本的功能是四则运算

实例要求编写代码,实现计算器的四则运算

 3.2.2猜数字

数字由两个人参与,一个人设置一个数字,一个人猜数字,当猜数字的人说出一个数字,由出数字的人告知是否猜中:若猜测的数字大于设置的数字,出数字的人提示“很遗憾,你猜大了”;若猜测的数字小于设置的数字时,出数字的人提示“很遗憾,你猜小了”;若猜数字的人在规定的次数内猜中设置的数字,出数字的人提示“恭喜,猜数成功”。

本实例要求编写代码,实现遵循上述规则的猜数字程序

 3.3.1while语句

while语句一般用于实现条件循环,该语句由关键字while、循环条件和冒号组成,while语句和从属于该语句的代码段组成循环结构

while 条件表达式:

    代码块

3.3.2for语句

for语句一般用于实现遍历循环。遍历指逐一访问目标对象中的数据,例如逐个访问字符串中的字符;遍历循环指在循环中完成对目标对象的遍历。

for 临时变量 in 目标对象:

    代码块

3.3.3循环嵌套

循环之间可以互相嵌套,进而实现更为复杂的逻辑。循环嵌套按不同的循环语句可以划分为while循环嵌套for循环嵌套。while循环嵌套是指while语句嵌套whilefor语句。以while语句中嵌套while语句为

while 循环条件1:          # 外层循环

    代码段1

    while 循环条件2:     # 内层循环

        代码2

        ......

for循环嵌套是指for语句中嵌套了whilefor语句。以for语句中嵌套for语句为

for 临时变量 in 目标对象:          # 外层循环

    代码段1

    for 临时变量 in 目标对象:     # 内层循环

        代码2

        ......

3.4.1猜数字

7拍手游戏的规则是:从1开始顺序数数,数到有7或者包含7的倍数的时候拍手 

实例要求编写代码,模拟实现逢七拍手游戏,实现输出100以内需要拍手的数字的程序。

3.4.2打印五子棋棋盘

五子棋是一种由双人对弈的纯策略型棋类游戏,它使用的棋盘一般由横纵等距的各15条平行线构成,这些线垂直交叉形成的225个交叉点为对弈双方的落子点

实例要求编写代码,实现按用户要求打印指定大小的五子棋棋盘的程序。

3.5.1break语句

break语句用于结束循环,若循环中使用了break语句,程序执行到break语句时会结束循环;若循环嵌套使用了break语句,程序执行到break语句时会结束本层循环

 continue语句用于在满足条件的情况下跳出本次循环,该语句通常也与if语句配合使用。

3.6阶段案例——房贷计算器

 房贷计算器是支付宝平台中搭载的一款在线计算工具,按用户选择的贷款类型(商业贷款、公积金贷款、组合贷款)、贷款金额(万)、期限(年)、利率(%)可计算得出每月月供参考(元)、支付利息(元)、还款总额(元)这些信息。

房贷计算式如下:

每月月供参考 = 贷款金额 × [月利率 × (1 + 月利率)  ^ 还款月数] ÷ { [(1 +月利率)  ^ 还款月数] - 1}

还款总额 = 每月月供参考 × 期限 × 12

支付利息 = 还款总额 - 贷款金额 × 10000

以上计算方式中月利率(月利率=利率÷12)指以月为计息周期计算的利息。不同贷款类型的利率是不同的:对于商业贷款而言,五年以下(含五年)的贷款利率是4.75%,五年以上的贷款利率是4.90%;对于公积金贷款利率而言,五年以下(含五年)的贷款利率是2.75%,五年以上的利率是3.25%

本案例要求编写程序,根据以上计算方式开发一个房贷计算器。

4.1 字符串介绍

字符串是一种用来表示文本的数据类型,它是由符号或者数值组成的一个连续序列

Python支持使用单引号、双引号和三引号定义字符串,其中单引号和双引号通常用于定义单行字符串,三引号通常用于定义多行字符串

Python使用反斜杠“\”转义。如,在字符串中的引号前添加“\”,此Python解释器会将“\”之后的引号视为解释为一个普通字符,而非特殊符号。

转义字符:一些普通字符与反斜杠组合后将失去原有意义,产生新的含义。类似这样的由“\”和而成的、具有特殊意义的字符就是转义字符。转移字符通常用于表示一些无法显示的字符,例如空格、回车等等。

 4.2.1使用%格式化字符串

格式化字符串是指将指定的字符串转换为想要的格式。Python字符串可通%格式符格式化输出

 

 4.2.2 使用format()方法格式化字符串

虽然使用%可以对字符串进行格式化,但是这种方式并不是很直观,一旦开发人员遗漏了替换数据或选择了不匹配的格式符,就会导致字符串格式化失败。为了能更直观、便捷地格式化字符串,Python为字符串提供了一个格式化方法format()

 4.2.3 使用f-string格式化字符串

f-string提供了一种更为简洁的格式化字符串的方式,它在形式上以fF引领字符串,在字符串中使用“{变量名}”标明被替换的真实数据和其所在位置。

 4.3.1 进制转换(实例要求编写代码,实现将用户输入的十进制整数转换为指定进制的功能。)

4.3.2 文本进度条(实例要求编写程序,实现如图所示的文本进度条。)

4.4.1 字符串的查找与替换

实现字符串查找操作的find()方法,该方法可查找字符串中是否包含子串,若包含则返回子串首次出现的位置,否则返回-1

 实现字符串替换操作的replace()方法,该方法可将当前字符串中的指定子串替换成新的子串,并返回替换后的新字符串。

4.4.2字符串的分隔与拼接

split()方法可以按照指定分隔符对字符串进行分割,该方法会返回由分割后的子串组成的列表。

 

 join()方法使用指定的字符连接字符串并生成一个新的字符串。join()方法的语法格式如下。

 4.4.3 删除字符串的指定字符

strip()lstrip()rstrip()方法可以删除字符串中的指定字符。

字母大小写转换的方法有upper()lower()capitalize()title()

 center()ljust()rjust()3个方法来设置字符串的对齐方式。

 4.5.2字排版工具(实例要求编写代码,实现具有上述功能的文字排版工具。)

5.6.1 创建字典

字典的表现形式为一组包含在大括号“{}中的键值对,每个键值对为一个字典元素,每个元素通过逗号“”分隔,每对键值通过“”分隔,除了使用“{}”创建字典还可以使用内置函数dict创建字典。

 

 5.6.2 字典的访问

字典的值可通过“”或内置方法get()访问。

5.6.3 元素的添加和修改

字典支持通过为指定的键赋值或使用update()方法添加或修改元素

1> 通过键加元素:字典变量[] =

2> 使用update()添加元素:(key=value)

修改字典元素的本质是通过键获取值,再重新对元素进行赋值。修改元素的操作与添加元素的操作相同

5.6.4 字典元素的删除

Python通过pop()popitem()clear()方法删除字典中的元素。

pop():根据指定键值删除字典中的指定元

popitem():随机删除字典中的元

clear():清空字典中的元素

5.6.5 字典推导式

 7.1 文件的概述

操作系统以文件为单位对数据进行管理

文件标识的意义:找到计算机中唯一确定文件

文件标识的组成:文件路径、文件名主干、文件扩展名。

 根据数据的逻辑存储结构,人们将计算机中的文件分为文本文件二进制文件

文本文件:专门存储文本字符数据

二进制文件:不能直接使用文字处理程序正常读写,必须先了解其结构和序列化规则,再设计正确的反序列化规则,才能正确获取文件信

二进制文件和文本文件这两种类型的划分基于数据逻辑存储结构而非物理存储结构,计算机中的数据在物理层面都以二进制形式存储。

 7.2 文件的基础操作

1. 打开文件

 

 2. 关闭文件

Python可通过close()方法关闭文件,也可以使用with语句实现文件的自动关闭。

 7.2.2 文件的读写

1. 读取文件——readline()方法

了保证读取安全,通常多次调用read()方法,每次读取size字节的数据。

2.写文件——write()方法

写文件——writelines()方法

 7.2.3 文件的定位读写

()方法

 ()方法

 

 需要注意的是,在Python3中,若打开的是文本文件,那么seek()方法只允许相对于文件开头移动文件位置,若在参数from值为12的情况下对文本文件进行位移操作,将会产生错误。若要相对当前读写位置或文件末尾进行位移操作,需以二进制形式打开文件。

with open('','rb') as f:

    (5,0)

    (3,1)

7.3 文件的目录与管理

7.4 实例

 7.4.1 信息安全策略——文件备份

 实例要求编写程序,实现一个具备备份文件与文件夹功能的备份工具。

 

7.4.2 用户账户管理

 本实例要求编写程序,实现用户注册、登录、修改密码和注销功能(要求程序使用文件存储用户的账户信息)。

 

7.5 数据维度与数据格式化

根据“有联系”的概念的数量,事物可分为不同维度。

 二维数据的存储与读写

多维数据的格式化

 JSON是网络中常见的高维数据格式。JSON格式的数据遵循以下语法规则:

数据存储在 键值对 key:value )中,例如 姓名 : “ 张华
数据的字段由 逗号分隔 ,例如 姓名 ”: “ 张华 ”, “ 语文 ”: “116”
一个 花括号 保存一个 JSON 对象,例如 {“ 姓名 ”: “ 张华 ”, “ 语文 ”: “116”}
一个 方括号 保存一个数组,例如 [{“ 姓名 ”: “ 张华 ”, “ 语文 ”: “116”}]

JSON模块——json 

 ()函数

 ()函数

-elif因为9是正数,计算机中正数的原 

反码=补码,所以9的补码为00001001