【学习路线】Python基础 详细知识点学习路径(附学习资源)

小狮妹 2024-12-19 14:37:10 浏览数 (431)
反馈

符号表解释:

可根据知识点前的符号按需选学,并获取知识点描述和学习资源。

 必学:核⼼知识点,经常⽤到。

建议学:重要知识点,专业⼈⼠的基⽯。

⾯试重点:经常出现的⾯试知识点。

可有可⽆:边缘区域,不是必须探索的地⽅。

知识描绘:知识点描述,快速理解。

学习资源:关联的学习资源。

学习⽬标:阶段性⽬标。


学习路线:基础

资源:

Python3 教程>>>

Python3 入门学练课程>>>

Python3 入门视频课程>>>

Python 官⽅⽂档>>>


⽬标:能⽤Python编写待办事项列表应⽤程序:创建⼀个简单的控制台应⽤,允许⽤户添加、删除和查看待办事项。


Python 安装

教程资源 >>>

课程资源 >>>

开发⼯具:

VS Code

特点:跨平台,插件丰富,内置Git和终端,适⽤于多种编程语⾔。

 PyCharm

特点: 专为Python设计,智能代码助⼿,强⼤的调试⼯具

Sublime

特点: 轻量级,快速,⾼度可定制,⽀持多⽂件同时处理,代码快速跳转。


变量

1、定义变量

  • 在Python中,变量是存储数据值的容器。

  • 定义变量时,不需要显式声明数据类型。Python是动态类型语⾔,会在运⾏时⾃动推断数据类型。

  • 示例:x = 5 这⾥,x 是变量名,它被赋值为整数 5。

2、关键字

  • 关键字是Python中预定义的、具有特殊意义的保留字。

  • 关键字不能⽤作变量名、函数名或其他标识符。

  • 示例:if, else, for, while, class 等。

3、命名规则

  • 变量名必须以字⺟或下划线开头,不能以数字开头。

  • 变量名可以包含字⺟、数字和下划线(A-z, 0-9, 和 _ )。

  • 变量名是⼤⼩写敏感的,例如,myVar 和 myvar 是两个不同的变量。

  • 应避免使⽤Python的内置函数名和关键字作为变量名,以防⽌冲突。

4、基本数据类型

  • 数值类型: 如 int (整数), float (浮点数)。

  • 字符串: ⽤于表示⽂本数据,例如 str。

  • 布尔值: 表示真或假,如 bool(True 或 False)。

  • 列表, 元组, 字典: ⽤于存储集合数据。

5、类型转换

  • 可以使⽤内置函数如 int(), float(), str() 等来转换数据类型。

  • 示例:int("123") 会将字符串 "123" 转换为整数 123。

  • ⾃动类型转换发⽣在执⾏特定操作时,例如,将整数与浮点数相加时,整数会⾃动转换为浮点数。


运算符和表达式

描述:Python中的运算符和表达式是编程的基础元素之⼀,它们⽤于执⾏计算、值的⽐较和逻辑运算。

1、算术运算符

  • 加法+​:⽤于两个数值的相加,如 3 + 4 结果为 7。

  • 减法-​:⽤于两个数值的相减,如 5 - 2 结果为 3。

  • 乘法*​:⽤于两个数值的相乘,如 3 * 4 结果为 12。

  • 除法/​:⽤于两个数值的相除,如 8 / 2 结果为 4.0(结果总是浮点数)。

  • 取模%​:返回除法的余数,如 5 % 2 结果为 1。

  • 幂**​:⽤于求幂,如 2 ** 3 结果为 8。

  • 整除//​:返回两数相除的整数部分,如 5 // 2 结果为 2。

2、⽐较运算符

  • 等于== ​: 判断两个值是否相等。

  • 不等于!=​ : 判断两个值是否不等。

  • 大于 >、小于 < ​: ⽐较两个值的⼤⼩。

  • 大于等于 >=、小于等于 <= ​: ⽐较两个值的⼤⼩,包含等于的情况。

3、逻辑运算符

  • 与 and ​: 两个条件同时为真时,结果为真。

  • 或 or ​: 两个条件中⾄少有⼀个为真时,结果为真。

  • 非 not​ : 取反,真变假,假变真。

4、赋值运算符

  • 赋值 =​ : 将右侧的值赋给左侧的变量,如 x = 5。

  • 复合赋值:如 +=, -=, *=, /=, %=, **=, //= 等,将算术操作与赋值结合,例如 x += 3 等同于 x = x + 3。

5、身份运算符

  • is、is not ​: ⽤于判断两个变量是否引⽤同⼀个对象。

6、成员运算符

  • in、not in​ : ⽤于检查序列(如列表、字符串)中是否存在(或不存在)⼀个值。


流程控制

1、条件分⽀

  • if 语句​ : 检查⼀个条件,如果条件为真,则执⾏相关代码块。

  • elif 语句​ : 在if条件不满⾜时,检查另⼀个条件。

  • else 语句​ : 当所有if和elif条件都不满⾜时,执⾏else部分的代码。

2、循环

  • for 循环​ : 遍历序列或其他可迭代对象,对每个元素执⾏代码块。

  • while 循环​ : 当给定条件为真时,重复执⾏代码块。

3、循环控制语句

  • break ​: 提前退出整个循环。

  • continue​ : 跳过当前循环的剩余部分,⽴即开始下⼀次迭代。


基本数据结构

1、字符串 (String)

  • ⽤于存储⽂本。

  • 由字符组成,如 "hello"。

  • 不可变(immutable),意味着⼀旦创建,其内容不能更改。

  • 提供丰富的⽅法进⾏操作,如索引、切⽚、连接和格式化。

2、列表 (List)

  • ⽤于存储有序的数据集合。

  • 可以包含不同类型的元素,如 [1, "hello", 3.14]。

  • 可变(mutable),可以添加、删除或更改其元素。

  • ⽀持索引和切⽚操作,可以通过索引访问或更改元素。

3、元组 (Tuple)

  • 类似于列表,但是不可变。

  • ⽤于存储有序的数据集合,如 ("apple", "banana", "cherry")。

  • ⼀旦创建,不能修改其内容(添加、删除或更改元素)。

  • 常⽤于函数返回多个值或将多个值作为⼀个整体进⾏处理。

4、集合 (Set)

  • ⽤于存储⽆序的、唯⼀的元素集。

  • 元素不重复,如 {1, 2, 3}。

  • 可变,可以添加或删除元素,但不能包含可变元素(如列表)。

  • ⽀持数学上的集合操作,如并集、交集、差集等。

5、字典 (Dictionary)

  • 存储键值对,每个键对应⼀个值。

  • 例如,{"name": "Alice", "age": 25}。

  • 键通常是字符串或数字,值可以是任何数据类型。

  • 可变,可以添加、删除或更改键值对。

  • ⽆序,不能通过索引。


函数

 资源 >>>

定义

1、参数传递

  • 函数可以接受参数,这些参数在函数调⽤时被传递给函数。

  • 参数可以是必需的,也可以是可选的(带有默认值)。

  • Python还⽀持关键字参数(允许你通过参数名指定参数)和可变数量的参数(使⽤*args和**kwargs)。

2、作⽤域

描述: 在Python中,变量的作⽤域决定了在哪⾥可以访问该变量。

  • 局部作⽤域:在函数内定义的变量只能在该函数内部访问。

  • 全局作⽤域:在函数外定义的变量可以在整个代码中访问。

  • global关键字⽤于在函数内部访问全局变量。

  • nonlocal关键字⽤于在嵌套函数中访问外层函数的局部变量。

3、lambda 表达式

lambda表达式是⼀种创建匿名函数的⽅式。

 资源 >>>

4、常⽤内置函数

描述: Python提供了许多内置函数,这些函数随时可⽤,⽆需导⼊模块。

  • print():打印输出。

  • len():返回对象的⻓度或元素个数。

  • type():返回对象的类型。

  • range():⽣成⼀个数值序列。

  • str(), int(), float(): ⽤于类型转换。

  • input(): ⽤于从⽤户获取输⼊。

  • sum(): 计算序列中所有元素的总和。

  • max(), min(): 查找序列中的最⼤或最⼩值。

  • sorted(): 返回排序后的序列。


向对象编程 (OOP)

1、类和对象

1.1 类 (Class)

  • 类是创建对象的蓝图或模板。它为对象定义了特定的属性和⽅法。

  • 类是⽤来定义数据以及数据操作的⽅法的。你可以将类看作是构建对象的模具。

1.2 对象 (Object)

  • 对象是根据类定义创建的实例。每个对象都有特定的属性和⽅法。

  • 对象是类的实例化,具有类定义的所有特性。每个对象都可以有不同的属性值,使得每个对象都是独⼀⽆⼆的。

  • 对象的创建通常称为实例化,并且对象可以使⽤类中定义的⽅法。

2、三⼤特性

2.1 封装

 描述: 封装是OOP中将数据(属性)和操作数据的代码(⽅法)捆绑在⼀起的概念。这样做的⽬的是隐藏对象的内部状态,只通过公共接⼝暴露功能。

  • self ​: 在类的⽅法中,self代表类的实例⾃身。它是对当前对象的引⽤。

  • 属性: 类的变量,⽤于存储数据。

  • ⽅法: 类中定义的函数,⽤于定义对象的⾏为。

    • 类⽅法(Class Method): 使⽤@classmethod装饰器定义,接受类本身作为第⼀个参数(通常命名为cls)。

    • 实例⽅法(Instance Method): 类的普通⽅法,接受实例⾃身self作为第⼀个参数。

    • 静态⽅法(Static Method): 使⽤@staticmethod装饰器定义,不接受self或cls参数,类似普通函数但属于类的命名空间。

  • 访问控制: 控制外部对类内部属性和⽅法的访问权限。Python通过前置下划线实现(如单下划线 _ 和双下划线 __)。

2.2 继承

 描述: 继承允许⼀个类(⼦类)继承另⼀个类(⽗类)的属性和⽅法,从⽽实现代码重⽤。

  • 单继承: ⼦类只继承⼀个⽗类。

  • 多继承: ⼦类可以继承多个⽗类。Python⽀持多继承,允许定义继承多个⽗类的类。

2.3 多态

 描述: 多态是指不同类的对象对同⼀消息作出响应的能⼒,即相同的接⼝调⽤可以有不同的执⾏结果。

  • ⽅法重写(Method Overriding): ⼦类可以重写⽗类的⽅法,提供特定于⼦类的实现。在调⽤这个⽅法时,会使⽤⼦类的版本,⽽不是⽗类的。

3、运算符重载

 描述: 运算符重载允许为类的实例⾃定义Python内置操作符的⾏为。

  • 通过定义特殊⽅法(magic methods),类可以改变其实例的运算符⾏为。

  • 例如,通过重载__add__⽅法,可以定义两个类实例使⽤+运算符时的⾏为。

4、装饰器

 描述: 装饰器是⼀种设计模式,⽤于修改或增强函数或⽅法的⾏为,⽽不改变其代码。

  • 在Python中,装饰器是⼀种函数,它接受⼀个函数作为参数并返回⼀个新的函数。

  • 装饰器通过在函数定义之前使⽤@符号应⽤,例如@decorator_name。

  • 它们常⽤于⽇志记录、性能测试、事务处理、权限校验等。

  • 装饰器可以应⽤于任何可调⽤的对象,包括类和类的⽅法。

5、反射

 描述: 反射是指程序在运⾏时检查和修改其结构(如类或函数)的能⼒。

  • 在Python中,可以通过内置函数如getattr(), setattr(), hasattr(), 和delattr()实现反射,⽤于动态地访问或修改对象的属性。

  • type()和isinstance()等函数可以⽤于获取对象的类型信息。

  • 反射使得程序可以更加动态,例如根据条件动态调⽤⽅法或访问属性,但也可能使得代码难以理解和维护。


模块

 描述:模块是包含Python代码的⽂件。模块可以定义函数、类和变量,也可以包含可执⾏的代码。模块的使⽤是Python编程的基础之⼀,它提⾼了代码的可重⽤性和组织性。

1、导⼊模块

 描述: Python中导⼊模块通常使⽤import语句。

1.1 基本导⼊

  • 直接使⽤import语句,后⾯跟模块名。

  • 例如:import math。之后可以通过math.function_name的⽅式调⽤模块内的函数。

1.2 从模块导⼊特定项

  • 使⽤from ... import ...语法。

  • 例如:from math import sqrt。这样可以直接使⽤sqrt⽽⽆需math.sqrt。

1.3 导⼊模块并重命名

  • 使⽤import ... as ...语法。

  • 例如:import numpy as np。之后可以使⽤np来代替numpy。

1.4 导⼊模块的所有项

  • 使⽤from ... import *语法。

  • 这会将模块中的所有项导⼊当前命名空间,但通常不推荐这样做,因为它可能导致命名冲突。

2、常⽤模块

  • math​ : 提供数学运算函数,如三⻆函数、对数函数等。

  • datetime​ : ⽤于处理⽇期和时间的模块。

  • os​ : 提供了许多与操作系统交互的功能。

  • sys ​: ⽤于访问与Python解释器紧密相关的变量和函数。

  • random​ : ⽤于⽣成随机数。

  • json​ : ⽤于读取和写⼊JSON格式数据。

  • re​ : 提供正则表达式⼯具。


 描述: 包(Package)是⼀种组织模块的⽅式,它们是包含模块的⽂件夹,并提供了⼀种层次结构,使得模块组织更加清晰。包的使⽤使得⼤型项⽬的代码管理变得更加容易。

1、导⼊包

 描述: 导⼊包的⽅法类似于导⼊模块,但它还涉及到包的层次结构。

1.1 直接导⼊包下的模块

  • 使⽤import语句指定包名和模块名。

  • 示例:import package.module。

1.2 从包中导⼊特定模块或函数

  • 使⽤from ... import ...语法。

  • 示例:from package import module 或 from package.module import function。

1.3 导⼊⼦包

  • 如果包中还包含⼦包,可以通过.来导⼊⼦包中的模块。

  • 示例:import package.subpackage.module。

2、⽣成包

 描述: 创建⼀个包涉及到创建⼀个包含模块和⼀个特殊⽂件init.py的⽂件夹。init.py可以为空,但它的存在告诉Python这个⽂件夹应该被视为⼀个Python包。

2.1 创建包⽬录

  • 创建⼀个⽂件夹,⽤于存放相关的模块。⽂件夹的名字就是包的名字。

2.2 添加模块

  • 在这个⽂件夹中创建Python⽂件(.py),每个⽂件都作为包的⼀个模块。

2.3 ​添加__init__.py文件

  • 在⽂件夹中创建⼀个名为__init__.py的⽂件。这个⽂件可以包含包的初始化代码,或者仅仅为空。


异常处理

1、捕获异常

在Python中,使⽤try和except语句来捕获异常。try块包含可能引发异常的代码,⽽except块包含在发⽣异常时要执⾏的代码。

2、try ... except ... else ... finally 结构

try语句还可以包含else和finally块。else块中的代码在try块中的代码没有引发异常时执⾏,⽽finally块中的代码始终会在try块执⾏后执⾏,⽆论是否发⽣异常。

3、⾃定义异常

在Python中,你可以通过创建⾃定义异常类来定义⾃⼰的异常类型。⾃定义异常类通常继承⾃内置的Exception类。


⽂件操作

1、打开⽂件

要与⽂件进⾏交互,⾸先需要打开它。使⽤内置的 open() 函数,传递⽂件路径和打开模式。打开模式包括:

  • 'r':只读模式

  • 'w':写⼊模式(会覆盖已存在的⽂件)

  • 'a':追加模式(将内容添加到⽂件末尾)

  • 'x':独占创建模式(如果⽂件已存在,则失败)

  • 'b':⼆进制模式

2、读取⽂件内容

通过打开⽂件后,可以使⽤ read() ⽅法读取整个⽂件的内容。你还可以使⽤readline() ⽅法逐⾏读取,或者使⽤ readlines() ⽅法将内容按⾏读取并存储在列表中。

3、写⼊⽂件内容

使⽤ write() ⽅法可以向⽂件写⼊内容。如果⽂件不存在,使⽤ 'w' 模式将创建⼀个新⽂件。你还可以使⽤ writelines() ⽅法写⼊多⾏内容。

4、关闭⽂件

在完成⽂件操作后,务必使⽤ close() ⽅法关闭⽂件。这有助于释放系统资源。为了确保⽂件在任何情况下都会被关闭,可以使⽤ with 语句创建上下⽂管理器。



0 人点赞