【python】考前复习,python基础语法知识点整理(下)

简介: 变量就是用来保存数据的,如果一个数据我们要经常用到,创建一个变量把这个数据保存起来,在后面使用的时候就会很方便.

10.列表(list)


列表是python中内置的可变序列,是包含若干元素的有序连续内存空间

所有的元素存放在 [] 中

元素之间用逗号隔开


列表的定义


列表的定义有两种方式:

使用字面值创建列表

使用list()创建列表

实例:

# 使用使用字面值创建列表

# []就代表一个空列别

a = []

print(type(a))

# 使用list()创建列表

b = list()

print(type(b))

# 输出的结果为:

# <class 'list'>

# <class 'list'>

列表可以在定义时进行初始化,但与C/Java等里面的数组不同的是,数组只能放同一类型的变量,例如整型数组就只能放整数类型的元素,而列表不同,列表可以存放不同数据类型的元素

示例:

a = [1,2,3]

print(a)

# 输出[1, 2, 3]

b = list((1,2,3))

print(b)

# 输出[1, 2, 3]

c = [1,1.2,"ads",False,[1,2,3]];#也可以存放列表的数据

print(c)

# 输出[1, 1.2, 'ads', False, [1, 2, 3]]


列表的下标访问


对列表的元素,可以通过 列表名[下标] 这种形式进行访问

注意:这里的下标都是从0开始的 ,下标的有效范围是0到列表长度-1

如果超出下标的有效范围,那么就会出现异常

列表的长度可以直接使用内置函数len(列表名)获取

len()不止能求列表的长度,也可以求字符串、元组、字典等这个类型的长度

# 下标的范围[0,2]

a = [1,2,3]

print(len(a))

# 输出结果:3

print(a[1]) #对列表的元素进行访问

# 输出结果:2

a[2] = 5 #对列表的元素进行修改

print(a)

# 输出结果:[1, 2, 5]

python中的下标也可以写成负数的形式

a = [1,2,3]

print(a[len(a)-1])

# 输出结果:3

print(a[-1])

# 输出结果:3

对于这里面的-1可以理解为len(列表名)-1把len(列表名)这个给省略了,也可以理解为是倒数第一个元素,只要能记住,大家怎么理解都行

如果是用负数表示下标,那么下标的有效范围就是[-len(列表名),-1]


嵌套列表的下标


在讲列表定义的时候说过列表的元素类型不限制,当然也就可以在列表中存放列表

示例:

a = [[1, 2, 3], [4, 5, 6]]

1

对于这种列表里面是嵌套的列表,也是支持下标索引的

例如:

a = [[1, 2, 3], [4, 5, 6]]

print(a[0][1])

# 输出结果:

# 2

上面的代码可以分成两步进行理解:

可以把[1,2,3]和[4,5,6]看出是a列表中的两个元素,a[0]就是得到[1,2,3]这个列表

a[0][1]就相当于访问了[1,2,3]这个列表的第二个元素,所以输出结果为2


列表的常用方法


以下是列表中一些常用的内置函数:

方法 说明

列表名.append(x) 将元素x添加到列表的最后位置

列表名.extend(L) 将列表L中的所有元素添加到列表的尾部

列表名.insert(index,x) 在列表的index位置插入元素x

列表名.remove(x) 在列表中删除首次出现的元素x

列表名.pop([index]) 删除并返回列表对象的指定位置的元素,默认为最后一个元素

列表名.clear() 删除列表中所有元素,但保留列表对象

列表名.index(x) 返回第一个值为x的元素下标,做不存在x,则抛出异常

列表名.count(x) 返回指定元素x在列表中的个数

列表名.reverse() 对列表元素进行原地翻转

列表名.sort(key=None,reverse=False) 对列表元素进行原地排序

列表名.copy() 对列表元素进行浅拷贝

len(列表名) 统计列表中元素的个数


11.元组(tuple)


元组和列表一样可以存放多个,不同数据类型的元素

与列表最大的不同就是:列表是可变的,而元组不可变


元组的定义


元组的定义: 使用()定义元组,元素之间使用逗号隔开

a = (1, 2, True, "python")

b = ((1, 2, 3), (4, 5, 6))


元组也是可以嵌套的


如果想要定义空元组,也可以使用关键字tuple进行定义

示例:

a = ()

b = tuple()

print(a)

print(type(a))

print(b)

print(type(b))

# 输出结果:

# ()

# <class 'tuple'>

# ()

# <class 'tuple'>

如果用tuple 定义元组,实际上是得到了元组的类对象


定义只有一个元素的元组


如果要定义只有一个元素的元组,需要在元素的后面加一个 "逗号"

示例:

str1 = ("python")

print(type(str1))

str2 = ("python",)

print(type(str2))

# 输出结果:

# <class 'str'>

# <class 'tuple'>

一定不能省略逗号,如果省略,就不是元组了


元组的下标访问


其实元组的下标访问和列表是一样的,掌握了列表的下标访问,那元组也就不在话下了


元组的常用方法


方法 描述

元组名.index(x) 查询x在元组中的下标,如果存在返回下标,否则会报错

元组名.count(x) 统计x在元组中出现的次数

len(元组名) 返回元组的元素个数


12.再识字符串(str)


虽然之前介绍了字符串,但是是以数据类型的角度来介绍字符串的,而现在要以数据容器的视角来看字符串


字符串是字符的容器,可以存放任意多个字符


字符串的下标索引


字符串也可以通过下标进行访问里面的字符

从前往后,下标从0开始

从后往前,下标从-1开始

示例:

str1 = "python"

print(f"2下标的字符是: {str1[2]}")

print(f"-2下标的字符是: {str1[-2]}")

# 输出结果:

# 2下标的字符是: t

# -2下标的字符是: o

字符串和元组一样,是无法修改的数据容器

如果想要通过下标进行修改特定的字符,编译器则会报错


字符串的常用方法


方法 描述

字符串.index(要查找字符串) 查找特定字符串的下标索引

字符串.replace(字符串1,字符串2) 将全部的字符串1都替换为字符串2,但不会修改原本的字符串,而是得到一个新字符串

字符串.split(分割符字符串) 按照指定分隔符字符串,将字符串分成多个字符串,并存在列表中,字符串本身不变,而是得到一个新的列表对象

字符串.strip(字符串) ()里字符串可以传也可以不传,不传参就是去除前后空格,传参则去除前后指定字符串,这里依旧不修改字符串本身,而是得到一个新的字符串

字符串.count(字符串) 统计某个字符串在字符串中出现的次数

len(字符串) 得到字符串的长度


13.集合(set)


集合是一种无序可变的容器对象

集合最大的特点:同一个集合内元素是不允许有重复的


集合的定义


集合的定义使用 {} ,但{}不能用于定义空集合!!! 可以使用set()定义一个空集合

元素之间用逗号隔开

a = set()

# 自动去重

b = {1,"python",2.3,1,"python",2.3,1,"python",2.3,"python"}

print(type(a))

print(b)

print(type(b))

# 输出结果:

# <class 'set'>

# {1, 2.3, 'python'}

# <class 'set'>

集合是不支持下标索引访问


集合的常用方法


方法 描述

集合.add(元素) 集合内添加一个元素

集合.remove(元素) 删除集合内指定的元素

集合.pop() 从集合内随机取出一个元素

集合.clear() 清除集合

集合1.difference(集合2) 得到一个新的集合,包含两个集合的差集,原集合不变

集合1.difference_update(集合2) 从集合1中删除集合2中存在的元素,集合1改变,集合2不变

集合1.union(集合2) 得到一个新的集合,内含两个集合的所有元素,原集合不变

len(集合) 统计集合中(去重后)元素的个数


14.字典(dict)


字典的定义

字典的定义也是使用 {} 定义空字典也可以使用dict()

不过字典元素的类型则需要是 键值对(key : value)

key和value可以是任意类型的,但是key不能是字典

字典中不允许key重复

a = {}

b = dict()

c = {"张三":95, "李四":89,"王五":97}

print(type(a))

print(type(b))

print(c)

print(type(c))

# 输出结果:

# <class 'dict'>

# <class 'dict'>

# {'张三': 95, '李四': 89, '王五': 97}

# <class 'dict'>

键和值之间用 : 分割

每个键值对之间用逗号分割

字典不支持下标索引访问元素,但是可以通过Key值找到对应的Value值

# 语法:

字典名[Key]

使用起来和下标索引访问是差不多的

示例:

a = {"张三":95, "李四":89,"王五":97}

print(a["张三"])

# 输出结果:

# 95


字典的常用方法


方法 描述

字典[Key] = Value 如果Key存在,就是修改元素. 如果不存在,就相当于新增一个元素

字典.pop(Key) 取出对应的Value,同时删除Key和Value

字典.clear() 清空字典

字典.keys() 取出字典中所有的Key,一般用于for循环遍历字典

len(字典) 统计字典中元素的个数


15.文件操作


文件操作就太好用代码进行演示,因此每个人的电脑里的文件都是不一样的,所有就没怎么有示例了. 见谅!

文件主要有三个操作:打开文件,读写文件和关闭文件


文件编码

编码(coding)是指用代码来表示各组数据资料,使其成为可利用计算机进行处理和分析的信息。


文件的编码有很多,例如:GBK,Unicode,UTF-8等等

其中UTF-8是我们最常用的,UTF-8也被称为万国码,只要没有特殊要求都可以设置成UTF-8编码


文件的打开

python中,使用open()函数,可以打开一个文件或者创建一个新文件


# open函数的介绍:

f = open(name,mode,encoding)

name:就是要打开文件的文件名(也可以是文件所在的具体路径)

mode:设置文件的访问模式:读取,写入,追加

encoding:编码格式(推荐使用UTF-8)

f是一个文件对象

mode的三种访问模式:

模式 描述

r 以只读的方式打开文件

w 对文件进行写入,如果文件存在,则会把原来的内容全部删掉,从头编辑,如果文件不存在,则会创建一个新文件

a 对文件进行追加,如果文件存在,则会在原内容后面追加新的内容,如果不存在,则会创建新文件并追加内容

open()函数中encoding的不是第三位,不能直接传参数,而是要用encoding="编码格式"

示例:

open("文件名", "访问模式", encoding="UTF-8")

注意上面的encoding


文件的读取


文件读取相关的方法有三个:

方法 描述

文件对象.read(num) num表示要从文中取出的数据长度(单位是字节),如果没有传入num,就会读文件中的所有数据

文件对象.readlines() 按照行的方式对整个文件内容进行一次性读取数据,并返回一个列表,每一行的数据为一个元素

文件对象.readline() 每次只读取一行的数据

注意:在读取文件的时候会有一个文件指针记录读取的位置,下一次读就会从文件指针的地方开始读

例如:如果调用read()来读取文件,但没有把文件读完,在调用一次read()方法,那么会从上一次read()最后一读到的地方开始读取

除了上述的三种方法,也可以使用for循环来读取文件

# 使用方法:

# f是文件对象

for line in f:

   print(line)


文件的关闭


关闭文件可以使用文件对象.close()方法


如果不关闭文件,程序不会停止,那么这个文件就会一直被编译器占用

为了避免忘记关闭文件,我们就可以使用with open这种写法


with open()

# 语法:

# f是文件对象

with open(name,mode) as f:

   进行文件

这种写法可以自动帮我们关闭文件


文件的写入


文件写入有三个步骤:1.打开文件 2.调用文件对象的write()方法 3.调用文件对象的flush()方法

示例:

# 1.打开文件 mode记得设置为"w"(写入)

f = open("文件名", "w", encoding="UTF-8")

# 2.调用文件对象的write()方法

f.write("hello python")

# 3.刷新缓冲区

f.flush()

注意:

调用write()方法,内容不会直接写到文件中,而是会先存储在缓冲区中

调用flush()方法后,刷新缓冲区之后,文件才会真正写到文件中

close()方法中是内置了flush()功能的,不调用flush()方法而调用close()方法也是可以将内容写入文件的

write()方法写文件时,若文件存在,会将原文件中的内容给删掉,再写入内容.如果不存在,则会创建新文件并写入内容


文件的追加


文件的追加和上面的文件写入差不多,只需要将mode值改成"a"即可

"a"模式下,若文件不存在会创建文件,若文件存在,则会再原文件内容的后面追加新内容

文件追加,依旧要进行flush()操作


16.异常处理


异常:即便 Python 程序的语法是正确的,在运行它的时候,也有可能发生错误。运行期检测到的错误被称为异常。也就是我们常说的BUG


异常的捕获


如果程序有异常会有两种情况:

程序遇到异常终止运行

对BUG进行提醒,程序继续运行

通常情况遇到BUG时都是第一种情况,但如果我们对异常进行捕获,就会出现第二种情况

捕获异常的作用:提前假设某处会出现异常,提前做好准备,当程序出现异常时,就可以提前做好准备

# 语法:

try:

   可能会出现异常的代码

except:

   出现异常后执行的代码

示例:

a = [1,2,3]

try:

   print(f"列表的第一个元素:{a(0)}")

except:

   print("列表使用[]来进行下标访问!")

   print(f"列表的第一个元素:{a[0]}")

# 输出结果:

# 列表使用[]来进行下标访问!

# 列表的第一个元素:1

代码我们可知:因为事先对try里面的代码进行处理了,try里面的代码出现异常时,try里面的代码没有被执行,而是直接去执行except里面的代码了,这就是异常的捕获

除了这种捕获异常外,我们还可以捕获指定的异常


捕获指定的异常


# 语法:

try:

   可能出现异常的代码

except 异常类型 as e:

   出现异常时执行的代码

try:

   print(a)

except NameError as e:

   print("变量未定义!")

   print(e)

# 输出结果:

# 变量未定义!

# name 'a' is not defined

上述代码也只能变量未定义这个指定的异常,如果出现了别的异常,程序依旧会终止运行


捕获多个异常


捕获除了可以捕获指定的异常,还可以捕获多个异常

# 语法

try:

   可能出现异常的代码

except (异常1,异常2,...) as e:

出现异常时执行的代码

示例:

b = [1,2,3]

try:

   print(b[5])

   print(a)

except (NameError,IndexError) as e:

   print("变量未定义 或者 下标索引错误")

   print(e)


捕获全部的异常


捕获全部的异常的异常方法有两个:

# 方法1:

try:

   可能出现异常的代码

except:

   出现异常时执行的代码

# 方法2:

try:

   可能出现异常的代码

except Exception as e:

   出现异常时执行的代码

Exception 是所有异常类的父类


else和finally


else 是程序没出现时执行的代码

示例1:

a = [1,2,3]

try:

   print(a[0])

except:

   print("出现异常了")

else:

   print("没有出现异常")

# 输出结果:

# 1

# 没有出现异常

示例2:

a = [1,2,3]

try:

   print(a[5])

except:

   print("出现异常了")

else:

   print("没有出现异常")

# 输出结果:

# 出现异常了

finally 里面的语句不管程序有没有异常都会执行

示例1(出有异常的情况):

a = [1,2,3]

try:

   print(a[5])

except:

   print("出现异常了")

else:

   print("没有出现异常")

finally:

   print("finally 里的语句一定会被执行")

# 输出结果:

# 出现异常了

# finally 里的语句一定会被执行

示例2(无异常的情况):

a = [1,2,3]

try:

   print(a[1])

except:

   print("出现异常了")

else:

   print("没有出现异常")

finally:

   print("finally 里的语句一定会被执行")

# 输出结果:

# 2

# 没有出现异常

# finally 里的语句一定会被执行

else和finally再捕获异常时可以写也可以不写


异常的传递性


异常是具有传递性的,这句话有点抽象,看下面这段代码:

def func1():

   a = [1,2,3]

   print(a[10])

def func2():

   func1()

try:

   func2()

except Exception as e:

   print(e)

# 输出结果:

# list index out of range

这里程序出现异常了,虽然是func2()里出的问题,但func2()里面是调用的func1()函数,func1()中的打印下标索引越界了.但依旧被捕获到了.

异常从func1函数传递到了func2,然后被捕获到了,这就是异常的传递性


17.结语


这篇文章也是写了好久,因为是复习用的,有些地方其实讲的不那么仔细,如果有意见也可以提出,后面我也会不断对本文进行改进的

如果有需要,后面也可以单独写文章对某些知识点做更细致的讲解

文章比较长,可能有些地方写的不是很好,还请见谅!

感谢你的观看! 希望这篇文章能帮到你!

相关文章
|
25天前
|
Python
python知识点
【8月更文挑战第27天】python知识点
31 1
|
30天前
|
XML 前端开发 数据格式
三分钟搞定 Python XPath 语法
XPath(XML Path Language)是一种用于在 XML 文档中查找信息的语言。它基于树状结构的 XML 文档,可以通过路径表达式来选取节点或节点集。也常常用来解析 HTML。 如果你是一个前端,对用路径获取元素可能陌生又熟悉。陌生是很多的路径,熟悉的路径上又有熟悉的属性和方法。下面我们就来探究一下 XPath 的魅力。
WK
|
1月前
|
存储 机器学习/深度学习 JSON
Python入门知识点
Python入门覆盖历史、设计理念、变量、数据类型、控制结构等。了解Python的发展,掌握动态类型的灵活性,熟悉整数、浮点数、字符串等数据类型。学会if/else、for/while循环构建逻辑流程,使用def定义函数,lambda快速创建匿名函数。通过类实现面向对象编程,利用模块和包组织代码。掌握try-except处理异常,open()进行文件操作。利用标准库和第三方库增强功能,理解集合、字典、列表推导式的应用,深入魔法方法、递归、装饰器等高级特性,以及上下文管理器和字符串、列表、元组的操作技巧。
WK
25 0
|
6天前
|
IDE Java 开发工具
Python的语法
Python的语法。
17 5
|
9天前
|
监控 Python Windows
python知识点100篇系列-pysnooper用于调试
PySnooper是一个便捷的Python调试工具,用于监控代码执行过程及局部变量的变化,替代繁琐的打印语句。作为GitHub上的热门开源项目,它通过装饰器自动记录代码执行细节。安装简便,支持多种平台,可通过pip安装。使用时,只需在目标函数上添加装饰器即可实时查看变量变化或将其记录至日志文件。此外,还支持使用with块对特定代码段进行调试。更多详细信息可参阅其官方使用文档。
python知识点100篇系列-pysnooper用于调试
|
1月前
|
存储 Python
Python时间模块四大必备知识点
Python时间模块四大必备知识点
40 4
Python时间模块四大必备知识点
|
18天前
|
存储 数据挖掘 程序员
揭秘Python:掌握这些基本语法和数据类型,你将拥有编程世界的钥匙!
【9月更文挑战第3天】Python 是一种简洁强大的高级编程语言,其清晰的语法和丰富的功能深受程序员喜爱。本文从基本语法入手,介绍 Python 的代码结构特点,如通过缩进区分代码块,使逻辑更清晰。接着详细讲解主要数据类型:数值型、字符串、列表、元组、集合与字典,每个类型均附有示例代码,帮助初学者快速掌握 Python,为后续学习打下坚实基础。
26 2
|
28天前
|
Unix 开发者 iOS开发
开发知识点-Python-virtualenv
`virtualenv`通过其简易性、灵活性与高度的可配置性,成为Python开发中推荐的环境隔离工具之一。随着Python生态的发展,类似的工具如 `venv`(Python 3.3+自带的轻量级环境构建工具)和 `pipenv`(提供更复杂的依赖管理功能)也越来越受欢迎,但 `virtualenv`仍保持着重要的地位,尤其是在需要维护旧项目或者系统没有提供最新工具的情况下。
30 1
|
29天前
|
IDE Java 测试技术
Python接口自动化测试框架(基础篇)-- 基础语法(真的很基础)
这篇文章是关于Python编程语言的基础语法介绍,包括编码、标识符、注释、行和缩进、输入输出以及导包等基础知识点,旨在帮助初学者理解并掌握Python编程的基础。
17 2
|
29天前
|
测试技术 索引 Python
Python接口自动化测试框架:回顾Python3基础语法知识总览
本文是Python 3基础语法知识的全面总结,涵盖了标识符、数据类型、运算符、控制流程、函数、模块和文件操作、异常处理以及面向对象编程的各个方面,旨在为编写Python接口自动化测试框架提供必要的语法知识支持。
19 1