Python学习要点概览:深入详细版

发表时间: 2024-05-11 13:04

1. Python 基础语法和数据类型

1.1 基础语法

  • 缩进: Python 使用缩进来定义代码块,通常缩进四个空格。
  • 注释: 使用 # 开头的行表示注释,不会被 Python 解释执行。
  • 标识符: Python 的标识符是用来识别变量、函数、类、模块等对象的名称。标识符可以是字母、数字或下划线,但不能以数字开头。

1.2 数据类型

  • 整型 (int): 表示没有小数部分的数,例如:1, 100, -45
  • 浮点型 (float): 表示有小数部分的数,例如:1.0, -23.54, 3.14e-10(科学计数法)。
  • 布尔型 (bool): 表示真 (True) 或假 (False)。
  • 字符串 (str): 文本数据,可以使用单引号或双引号表示,例如:'hello', "world"
  • 字符串操作: 包括连接 (+), 重复 (*), 访问 ([]), 切片 ([:]), 以及字符串的方法如 .upper(), .lower(), .split() 等。

1.3 复合数据类型

  • 列表 (list): 有序的数据集合,可以包含不同类型的元素。定义方式是用方括号 [],元素间用逗号分隔,例如:[1, 'two', 3.0]
  • 列表操作: 包括添加元素 (append(), insert()), 删除元素 (remove(), pop()), 访问和切片等。
  • 元组 (tuple): 与列表类似,但一旦创建不可修改(不可变性)。使用圆括号 () 定义,例如:(1, 'two', 3.0)
  • 元组操作: 主要是访问和切片,没有添加或删除元素的方法。
  • 字典 (dict): 键值对集合,无序。定义方式是大括号 {},每个键值对以 key: value 的形式出现,例如:{'name': 'Alice', 'age': 25}
  • 字典操作: 访问 (dict['key']), 添加或修改 (dict['key'] = value), 删除 (del dict['key'], dict.pop('key')) 等。
  • 集合 (set): 无序的不重复元素集。使用大括号 {} 定义,例如:{1, 2, 3, 2} 会自动去除重复元素,变为 {1, 2, 3}
  • 集合操作: 包括添加 (add()), 删除 (remove(), discard()), 集合运算如并集 (|), 交集 (&), 差集 (-), 对称差集 (^) 等。

2. 控制流

2.1 条件语句

条件语句允许程序根据一个或多个条件的结果来决定执行哪些代码段。

  • if 语句: 是最基本的条件语句,用来执行一个特定块的代码,只有当条件为真时。
if condition:    # 执行代码
  • elif (else if) 语句: 可以跟在 if 语句后面,提供额外的条件检查。
if condition1:    # 条件1为真时执行elif condition2:    # 条件1为假,条件2为真时执行
  • else 语句: 在所有 ifelif 的条件都不为真时执行。
if condition1:    # 条件1为真时执行elif condition2:    # 条件1为假,条件2为真时执行else:    # 所有条件都不为真时执行

示例:

x = 20if x < 10:    print("小于 10")elif x < 20:    print("小于 20 但不小于 10")else:    print("至少 20 或更大")

2.2 循环结构

循环结构允许我们执行一个代码块多次,这通常用于处理集合的数据项、重复的任务等。

  • for 循环: 通过序列中的每个元素来迭代。
for element in sequence:    # 对序列中的每个元素执行代码块
  • while 循环: 当给定的条件为真时,重复执行代码块。
while condition:    # 条件为真时执行代码块

示例:

# for 循环示例for i in range(5):  # range(5) 生成一个包含 0, 1, 2, 3, 4 的序列    print(i)# while 循环示例count = 0while count < 5:    print(count)    count += 1  # 等同于 count = count + 1

2.3 循环控制语句

  • break: 立即退出当前循环体。
  • continue: 跳过当前循环的剩余代码,并开始下一次迭代。
  • else: 与循环配合使用,当循环正常结束时(即没有通过 break 退出)执行一次。

示例:

for i in range(1, 10):    if i % 5 == 0:        break    print(i)else:    print("循环正常结束,没有执行 break。")# 输出: 1, 2, 3, 4

3. 函数和模块

3.1 函数

函数是用来封装特定功能的代码块,它可以接受输入参数并返回一个结果。在 Python 中,使用 def 关键字定义函数。

  • 定义函数:
def function_name(parameters):    # 函数体    return result
  • 参数:
  • 位置参数: 按参数定义的顺序传递。
  • 默认参数: 函数调用时可选,如果未提供,则使用默认值。
  • 关键字参数: 允许函数调用时参数的顺序与声明不一致。
  • 可变参数:
  • *args: 接受任意数量的位置参数。
  • **kwargs: 接受任意数量的关键字参数。
  • 返回值: 使用 return 语句从函数返回值。如果没有 return 语句,函数默认返回 None

示例:

def greet(name, message="Hello"):    return f"{message}, {name}!"print(greet("Alice"))           # 使用默认消息print(greet("Bob", "Goodbye"))  # 提供自定义消息

3.2 模块

模块是包含 Python 定义和声明的文件。模块可以包含函数、类和变量,也可以包括可执行的代码。

  • 导入模块: 使用 import 语句导入模块。你可以导入整个模块或模块中的特定部分。
import math               # 导入整个模块from math import sqrt     # 导入特定函数
  • 使用模块: 导入模块后,可以使用模块名作为前缀来访问模块中的函数和变量。
print(math.sqrt(16))      # 使用导入的 sqrt 函数print(sqrt(16))           # 如果使用 from 形式导入,不需要前缀
  • 创建自己的模块: 任何 Python 文件都可以作为模块导入。创建一个 .py 文件,定义一些函数或变量,然后在另一个脚本中导入它。

示例 (创建并使用自定义模块):

  • 创建一个名为 my_module.py 的文件,内容如下:
def add(a, b):    return a + b
  • 在另一个文件中导入并使用该模块:
import my_moduleresult = my_module.add(10, 20)print(result)

函数和模块是 Python 编程的基础,使代码更加模块化和可重用。

4. 面向对象编程(OOP)

4.1 类和实例

在 Python 中,类是一个用于创建对象的蓝图或模板,对象是类的实例。

  • 定义类: 使用 class 关键字来定义一个类。类中通常包含一些方法(函数)和属性(变量)。
class MyClass:    def __init__(self, attribute):        self.attribute = attribute    def method(self):        return "Do something with " + self.attribute
  • 创建实例: 类的实例化通过调用类名和传递参数来实现,类似于函数调用。
instance = MyClass("value")print(instance.method()) # 输出: Do something with value

4.2 继承

继承是 OOP 中一个强大的特性,它允许一个类继承另一个类的属性和方法。

  • 基类(父类)和派生类(子类):
class BaseClass:    passclass DerivedClass(BaseClass):    pass
  • 扩展和修改: 子类可以扩展或修改父类的行为。
class Animal:    def sound(self):        return "Some sound"class Dog(Animal):    def sound(self):        return "Bark"

4.3 封装

封装是 OOP 的核心概念之一,意在隐藏对象的内部状态和复杂性,同时暴露出一些接口与外界交互。

  • 私有属性和方法: 通过在名称前加上双下划线 __ 来实现属性或方法的私有化。
class Encapsulated:    def __init__(self):        self.public = "Public"        self.__private = "Private"        def __private_method(self):        return "This is private"    def public_method(self):        return "Public method can access " + self.__private

4.4 多态

多态是 OOP 的另一个重要特性,允许不同类的对象通过相同的接口执行不同的操作。

  • 实现多态: 通过重写方法实现,确保不同的对象可以对相同的方法调用作出不同的响应。
class Cat(Animal):    def sound(self):        return "Meow"
  • 使用多态: 可以通过通用代码处理不同类的对象,使得代码更加灵活和可扩展。
animals = [Dog(), Cat()]for animal in animals:    print(animal.sound())  # 输出: Bark, Meow

面向对象编程为处理大规模软件项目提供了一种有效的方式,通过类和对象将数据及其相关操作封装在一起。

接下来,我们将深入了解 Python 中的文件处理和异常处理,这些是在实际开发中处理数据和维护程序稳定性不可或缺的部分。

5. 文件处理

在 Python 中,文件处理是通过内置的 open() 函数来完成的,它可以用于读取或写入文件。这是进行数据持久化和数据交换的基础。

5.1 打开文件

使用 open() 函数可以打开一个文件,创建一个文件对象,并返回它。

  • 基本用法:
file = open('file.txt', 'r')  # 打开文件以读取('r')
  • 模式:
  • 'r':读取模式。
  • 'w':写入模式,如果文件存在则覆盖,不存在则创建。
  • 'a':追加模式,写入数据时会追加到文件末尾。
  • 'b':二进制模式,用于读取或写入二进制文件。
  • '+':更新模式,用于读取和写入。

5.2 读写文件

  • 读取:
content = file.read()     # 读取整个文件line = file.readline()    # 读取一行lines = file.readlines()  # 读取所有行到一个列表中
  • 写入:
file.write('Hello, world!')  # 写入字符串到文件
  • 迭代读取:
for line in open('file.txt', 'r'):    print(line.strip())  # 打印每一行,并移除行尾换行符

5.3 文件管理

使用 with 语句可以更安全地管理文件。with 语句会自动处理文件的打开和关闭,即使在文件操作中发生异常也能保证文件正确关闭。

with open('file.txt', 'r') as file:    for line in file:        print(line, end='')

6. 异常处理

异常处理是编程中处理错误和不可预知情况的一种方式。在 Python 中,异常是使用 tryexcept 语句来处理的。

6.1 基本异常处理

  • 捕获异常:
try:    # 尝试执行的代码    result = 10 / 0except ZeroDivisionError:    # 如果发生除以零的错误,则执行这里的代码    print("You can't divide by zero!")

6.2 捕获多种异常

可以指定多个异常类型,以处理不同类型的错误。

try:    # 尝试执行的代码    file = open('non_existent_file.txt')    data = file.read()except FileNotFoundError:    # 文件未找到错误    print("File not found.")except IOError:    # 输入/输出错误    print("Error reading file.")

6.3 finally 语句

无论是否发生异常,finally 块中的代码都会被执行。这常用于进行清理工作,如关闭文件。

try:    file = open('file.txt')    data = file.read()finally:    file.close()    print("File is closed.")

7. Python 标准库

Python 的标准库包含了许多有用的模块和函数,它们被设计来简化常见的编程任务。这里是一些特别常用的标准库模块:

7.1 os 和 sys

  • os 模块: 提供了与操作系统交互的功能,如文件和目录管理。
import osos.chdir('/path/to/directory')  # 改变当前工作目录os.mkdir('new_dir')            # 创建新目录
  • sys 模块: 用于访问与 Python 解释器紧密相关的变量和函数。
import syssys.argv  # 命令行参数列表sys.exit()  # 退出程序

7.2 datetime

用于处理日期和时间的模块,非常适合执行日期计算和转换。

import datetimenow = datetime.datetime.now()  # 获取当前日期和时间new_year = datetime.datetime(2024, 1, 1)  # 创建指定日期delta = new_year - now  # 计算时间差

7.3 re

提供正则表达式工具,用于复杂的字符串处理和匹配。

import repattern = re.compile(r'\d+')  # 匹配一个或多个数字matches = pattern.findall('hello 1234 world 5678')  # 查找所有匹配的部分

8. 常用第三方库

Python 社区提供了大量的第三方库,以下是一些在科学计算、数据分析、Web 开发等领域中非常流行的库:

8.1 numpy

一个提供多维数组对象和一系列处理数组的函数的库,是科学计算的基础。

import numpy as nparray = np.array([1, 2, 3])  # 创建一个一维数组matrix = np.array([[1, 2], [3, 4]])  # 创建一个二维矩阵

8.2 pandas

提供数据结构和数据分析工具。尤其是其 DataFrame 对象,使得数据操纵更为简单。

import pandas as pddf = pd.DataFrame({    'A': [1, 2, 3],    'B': [4, 5, 6]})print(df)

8.3 matplotlib 和 seaborn

这两个库用于数据可视化。matplotlib 是最基本的库,而 seaborn 是基于 matplotlib 的,提供了更高级的界面。

import matplotlib.pyplot as pltimport seaborn as sns# 使用 matplotlibplt.plot([1, 2, 3], [4, 5, 6])plt.show()# 使用 seabornsns.lineplot(x=[1, 2, 3], y=[4, 5, 6])plt.show()

8.4 flask 和 django

用于 Web 开发的框架。Flask 更为轻量级,适合小型项目,而 Django 提供了一整套完整的 Web 开发工具。

# Flask 示例from flask import Flaskapp = Flask(__name__)@app.route('/')def home():    return 'Hello, World!'if __name__ == '__main__':    app.run()# Django 需要更多的设置和配置,通常不在简短的示例中展示。

这些标准库和第三方库极大地扩展了 Python 的功能,使得它可以应用于几乎任何计算需求中。


以上就是python详细的知识点总结,如果还有其他想了解的,请下方评论中留言。