当前位置:   article > 正文

python学习笔记_python笔记

python笔记

目录

1.1 python简介

1.2 python特点

2.1 python3基础语法

2.1.1 编码

2.1.2 标识符

2.1.3 python保留字

2.1.4 注释

2.1.5 行与缩进

2.1.6 多行语句

2.1.7 数字类型

2.1.8 字符串

2.1.9 同一行显示多条语句

2.1.10 多个语句构成代码组

2.1.11 print输出

2.1.12 import与from…import

3.1 基本数据类型

3.1.1 多个变量赋值

3.2 标准数据类型

3.2.1 Number(数字)

3.2.2 String(字符串)

3.2.2.1 字符串格式化

3.2.2.2 三引号

3.2.2.3 f-string

3.2.3 bool(布尔类型)

3.2.4 List(列表)

3.2.4.1 更新列表

3.2.4.2 删除列表元素

3.2.4.3 列表脚本操作符

​3.2.4.4 列表比较

3.2.4.5 列表函数&方法

​3.2.5 Tuple(元组)

3.2.6 Set(集合)

​3.2.7 Dictionary(字典)

3.2.7.1 字典键的特性

3.2.7.2 字典内置函数&方法

3.2.8 bytes 类型

3.3 数据类型转换

3.3.1 隐式类型转换

3.3.2 显式类型转换

3.4 运算符

3.4.1 算术运算符

​3.4.2 比较运算符

3.4.3 赋值运算符

3.4.4 位运算符

​3.4.5 逻辑运算符

​3.4.6 成员运算符

3.4.7 身份运算符

4.1条件控制

4.1.1 if语句

4.1.2 match…case

4.2 循环语句

4.2.1 while循环

4.2.2 for循环

4.2.3 range()函数

4.2.4 break和continue语句及循环中的else子句

4.2.5 pass语句

5.1 推导式

5.1.1 列表推导式

5.1.2 字典推导式

5.1.3 集合推导式

5.1.4 元组推导式(生成器表达式)

5.2.1 迭代器

5.2.1.1 创建一个迭代器

5.2.1.2 StopIteration

5.2.2 生成器

6.1 函数

6.1.1用户自定义函数

6.1.1.1 定义一个函数

6.1.1.2 语法

6.1.1.3 函数调用

6.1.1.4 参数传递

6.1.1.4.1 可更改(mutable)与不可更改(immutable)对象

6.1.1.5 参数

6.1.1.5.1  必需参数

6.1.1.5.2 关键字参数

6.1.1.5.3 默认参数

6.1.1.5.4 不定长参数

6.1.2 匿名函数

6.1.2.1 语法

6.1.3 return语句

6.1.4 强制位置参数

6.2 装饰器

6.2.1 基本语法

6.2.2 使用装饰器

6.2.3 带参数的装饰器

6.2.4 类装饰器

7 数据结构

7.1 列表

​7.1.1 将列表当做栈使用

7.1.1.1 创建一个空栈

7.1.1.2 压入(Push)操作

7.1.1.3 弹出(Pop)操作

7.1.1.4 查看栈顶元素(Peek/Top)

7.1.1.5 检查是否为空(IsEmpty)

7.1.1.6 获取栈的大小(Size)

7.1.2 将列表当作队列使用

7.1.2.1 创建队列

7.1.2.2 向队尾添加元素

7.1.2.3 从队首移除元素

7.1.2.4 查看队首元素(不移除)

7.1.2.5 检查队列是否为空

7.1.2.6 获取队列大小

7.2 元组和序列

7.3 集合

7.4 字典

7.4.1 遍历技巧

8 模块

8.1 import语句

8.2 from … import 语句

8.3 from … import * 语句

8.4 深入模块

8.5 __name__属性

8.6 dir() 函数

8.7 标准模块

8.8 包

9.1 输入和输出

9.1.1 输出格式美化

9.1.2 旧式字符串格式化

9.1.3 读取键盘输入

9.1.4 读和写文件

9.1.5 文件对象的方法

9.1.5.1 f.read()

9.1.5.2 f.readline()

9.1.5.3 f.readlines()

9.1.5.4 f.write()

9.1.5.5 f.tell()

9.1.5.6 f.seek()

9.1.5.7 f.close()

9.1.6 pickle模块

10 错误和异常

10.1 语法错误

10.2 异常

10.3 异常处理

10.3.1 try/except

10.3.2 try/except...else

10.3.3 try-finally 语句

​10.4 抛出异常

10.5 用户自定义异常

10.6 定义清理行为

10.7 预定义的清理行为

11 面向对象

11.1 类

11.1.1 类定义

11.1.2 类对象

11.1.3 类的方法

11.2 继承

11.3 多继承

11.4 方法重写

11.5 类属性与方法

11.6 类的专有方法

11.7 运算符重载

12 命名空间和作用域

12.1 命名空间

12.2 作用域

12.3 全局变量和局部变量

12.4 global 和 nonlocal关键字


1.1 python简介

Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

1.2 python特点

1.易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

2.易于阅读:Python 代码定义的更清晰。

3.易于维护:Python的 成功在于它的源代码是相当容易维护的。

4.一个广泛的标准库:Python 的最大的优势之一是丰富的库,跨平台的,在 UNIX、Windows 和 Mac 兼容很好。

5.互动模式:互动模式的支持,可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。

6.可移植:基于其开放源代码的特性,Python 已经被移植(也就是使其工作)到许多平台。

7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用 C 或 C++ 完成那部分程序,然后从你的 Python 程序中调用。

8.数据库:Python 提供所有主要的商业数据库的接口。

9.GUI 编程:Python 支持 GUI 可以创建和移植到许多系统调用。

10.可嵌入: 你可以将 Python 嵌入到 C/C++ 程序,让你的程序的用户获得"脚本化"的能力。

2.1 python3基础语法

2.1.1 编码

默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 也可以为源码文件指定不同的编码。

2.1.2 标识符

第一个字符必须是字母表中字母或下划线 _ 。

标识符的其他的部分由字母、数字和下划线组成。

标识符对大小写敏感。

在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。

2.1.3 python保留字

保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

  1. >>> import keyword
  2. >>> keyword.kwlist
  3. ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

2.1.4 注释

单行注释以 # 开头

多行注释可以用多个 # 号,还有 ''' 和 """

2.1.5 行与缩进

python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。

缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

2.1.6 多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句。在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \。

2.1.7 数字类型

python中数字有四种类型:整数、布尔型、浮点数和复数。

int (整数), 如 1。

bool (布尔), 如 True。

float (浮点数), 如 1.23、3E-2

complex (复数), 如 1 + 2j、 1.1 + 2.2j

2.1.8 字符串

Python 中单引号 ' 和双引号 " 使用完全相同。

使用三引号(''' 或 """)可以指定一个多行字符串。

转义符 \。

反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。

按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string。

字符串可以用 + 运算符连接在一起,用 * 运算符重复。

Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。

Python 中的字符串不能改变。

Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。

字符串切片 str[start:end],其中 start(包含)是切片开始的索引,end(不包含)是切片结束的索引。

字符串的切片可以加上步长参数 step,语法格式如下:str[start:end:step]

2.1.9 同一行显示多条语句

Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割

2.1.10 多个语句构成代码组

缩进相同的一组语句构成一个代码块,我们称之代码组。

像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。

我们将首行及后面的代码组称为一个子句(clause)。

2.1.11 print输出

print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""

2.1.12 import与from…import

在 python 用 import 或者 from...import 来导入相应的模块。

将整个模块(somemodule)导入,格式为: import somemodule

从某个模块中导入某个函数,格式为: from somemodule import somefunction

从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc

将某个模块中的全部函数导入,格式为: from somemodule import *

3.1 基本数据类型

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

等号(=)用来给变量赋值。

等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

3.1.1 多个变量赋值

Python允许你同时为多个变量赋值。例如:

a = b = c = 1

也可以为多个对象指定多个变量。例如:

a, b, c = 1, 2, "runoob"

3.2 标准数据类型

Python3 中常见的数据类型有:

Number(数字)

String(字符串)

bool(布尔类型)

List(列表)

Tuple(元组)

Set(集合)

Dictionary(字典)

Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);

可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

此外还有一些高级的数据类型,如: 字节数组类型(bytes)。

3.2.1 Number(数字)

Python3 支持 int、float、bool、complex(复数)。

复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。

内置的 type() 函数和isinstance( , )可以用来查询变量所指的对象类型。

isinstance 和 type 的区别在于:

type()不会认为子类是一种父类类型。

isinstance()会认为子类是一种父类类型。

Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。

当你指定一个值时,Number 对象就会被创建。

可以使用del语句删除一些对象引用。可以通过使用del语句删除单个或多个对象。

数值运算

+,-,*,/,//,%,**

注:/ 返回一个浮点数,// 返回一个整数。

3.2.2 String(字符串)

反斜杠可以用来转义,使用r可以让反斜杠不发生转义。

字符串可以用+运算符连接在一起,用*运算符重复。

Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。

Python中的字符串不能改变。

3.2.2.1 字符串格式化

Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。

  1. print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
  2. #我叫 小明 今年 10 岁!

3.2.2.2 三引号

python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。

3.2.2.3 f-string

f-string 称为字面量格式化字符串,是新的格式化字符串的语法。

f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:

3.2.3 bool(布尔类型)

布尔类型只有两个值:True 和 False。

bool 是 int 的子类,因此布尔值可以被看作整数来使用,其中 True 等价于 1。

布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。

布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。

布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。

可以使用 bool() 函数将其他类型的值转换为布尔值。以下值在转换为布尔值时为 False:None、False、零 (0、0.0、0j)、空序列(如 ''、()、[])和空映射(如 {})。其他所有值转换为布尔值时均为 True。

3.2.4 List(列表)

列表写在方括号之间,元素用逗号隔开。

和字符串一样,列表可以被索引和切片。

列表可以使用 + 操作符进行拼接。

列表中的元素是可以改变的。

例:翻转字符串

  1. def reverseWords(input):
  2.       
  3.     # 通过空格将字符串分隔符,把各个单词分隔为列表
  4.     inputWords = input.split(" ")
  5.   
  6.     # 翻转字符串
  7.     # 假设列表 list = [1,2,3,4],  
  8.     # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
  9.     # inputWords[-1::-1] 有三个参数
  10.     # 第一个参数 -1 表示最后一个元素
  11.     # 第二个参数为空,表示移动到列表末尾
  12.     # 第三个参数为步长,-1 表示逆向
  13.     inputWords=inputWords[-1::-1]
  14.   
  15.     # 重新组合字符串
  16.     output = ' '.join(inputWords)
  17.       
  18.     return output
  19.   
  20. if __name__ == "__main__":
  21.     input = 'I like runoob'
  22.     rw = reverseWords(input)
  23.     print(rw)

3.2.4.1 更新列表

可以对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项

3.2.4.2 删除列表元素

可以使用 del 语句来删除列表的的元素。

3.2.4.3 列表脚本操作符

3.2.4.4 列表比较

列表比较需要引入 operator 模块的 eq 方法。

  1. # 导入 operator 模块
  2. import operator
  3. a = [1, 2]
  4. b = [2, 3]
  5. c = [2, 3]
  6. print("operator.eq(a,b): ", operator.eq(a,b))
  7. print("operator.eq(c,b): ", operator.eq(c,b))

以上代码输出结果为:

operator.eq(a,b):  False

operator.eq(c,b):  True

3.2.4.5 列表函数&方法

3.2.5 Tuple(元组)

元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同。

虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。

构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:

  1. tup1 = ()    # 空元组
  2. tup2 = (20,) # 一个元素,需要在元素后添加逗号。

3.2.6 Set(集合)

Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。

集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。

在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。

另外,也可以使用 set() 函数创建集合。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

3.2.7 Dictionary(字典)

列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。

键(key)必须使用不可变类型。

在同一个字典中,键(key)必须是唯一的。

3.2.7.1 字典键的特性

1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。

2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行

3.2.7.2 字典内置函数&方法

3.2.8 bytes 类型

在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。

与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。

bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。

创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀:

此外,也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码。

3.3 数据类型转换

3.3.1 隐式类型转换

在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。

3.3.2 显式类型转换

在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。

3.4 运算符

3.4.1 算术运算符

3.4.2 比较运算符

3.4.3 赋值运算符

注:python的赋值语句没有返回值。

3.4.4 位运算符

3.4.5 逻辑运算符

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/空白诗007/article/detail/989918
推荐阅读
相关标签
  

闽ICP备14008679号