Python 核心

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

本全面的教程将指导你了解 Python 编程的核心概念和最佳实践。无论你是初学者还是有经验的开发者,你都将学习如何利用 Python 核心的强大功能来构建健壮且高效的应用程序。从理解数据类型和控制流到掌握面向对象编程以及使用标准库,本指南涵盖了每个开发者都应该了解的 Python 核心的重要方面。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python(("Python")) -.-> python/ControlFlowGroup(["Control Flow"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/BasicConceptsGroup -.-> python/numeric_types("Numeric Types") python/BasicConceptsGroup -.-> python/strings("Strings") python/BasicConceptsGroup -.-> python/booleans("Booleans") python/BasicConceptsGroup -.-> python/comments("Comments") python/BasicConceptsGroup -.-> python/type_conversion("Type Conversion") python/BasicConceptsGroup -.-> python/python_shell("Python Shell") python/ControlFlowGroup -.-> python/conditional_statements("Conditional Statements") python/ControlFlowGroup -.-> python/for_loops("For Loops") subgraph Lab Skills python/variables_data_types -.-> lab-391592{{"Python 核心"}} python/numeric_types -.-> lab-391592{{"Python 核心"}} python/strings -.-> lab-391592{{"Python 核心"}} python/booleans -.-> lab-391592{{"Python 核心"}} python/comments -.-> lab-391592{{"Python 核心"}} python/type_conversion -.-> lab-391592{{"Python 核心"}} python/python_shell -.-> lab-391592{{"Python 核心"}} python/conditional_statements -.-> lab-391592{{"Python 核心"}} python/for_loops -.-> lab-391592{{"Python 核心"}} end

Python 核心入门

Python 是一种广泛使用的高级编程语言,以其简单性、可读性和通用性而闻名。它是一种解释型语言,这意味着代码是逐行执行的,便于测试和调试。Python 常用于各种应用程序,包括网页开发、数据分析、机器学习和自动化。

要开始学习 Python 核心,你需要在系统上安装 Python。可以从 Python 官方网站(https://www.python.org/downloads/)下载 Python。安装好 Python 后,你就可以开始编写和运行 Python 代码了。

开始学习 Python 最简单的方法之一是使用交互式 Python shell,也称为 Python 解释器。你可以通过打开终端或命令提示符并输入 pythonpython3(取决于你的系统配置)来访问 Python 解释器。

## 使用 Python 解释器的示例
>>> print("Hello, World!")
Hello, World!
>>> x = 5
>>> y = 10
>>> print(x + y)
15

在上面的示例中,我们首先使用 print() 函数打印字符串 “Hello, World!”。然后,我们分别将值 5 和 10 赋给变量 xy,并打印这两个数字的和。

编写和运行 Python 代码的另一种方法是创建一个扩展名为 .py 的 Python 脚本文件。然后,你可以使用 pythonpython3 命令从命令行运行该脚本。

## Python 脚本文件的示例
print("This is a Python script.")
x = 5
y = 10
print(x + y)

要运行此脚本,请保存文件(例如 example.py)并在终端中执行以下命令:

python example.py

这将输出:

This is a Python script.
15

Python 还提供了丰富的内置函数和模块,可用于执行各种任务,从简单的字符串操作到复杂的数据分析和机器学习。我们将在以下部分更详细地探讨这些主题。

Python 数据类型和变量

Python 是一种动态类型语言,这意味着变量无需显式声明就能存储不同数据类型的值。Python 支持多种内置数据类型,包括:

数值类型

  • 整数(int):整数,例如 142-10
  • 浮点数(float):带小数点的数字,例如 3.142.718-0.5
  • 复数(complex):具有实部和虚部的数字,例如 2+3j-1-2j

文本类型

  • 字符串(str):字符序列,例如 "Hello, World!"'Python is awesome'"""This is a multi-line string."""

布尔类型

  • 布尔值(bool):逻辑值 TrueFalse

序列类型

  • 列表(list):有序的项目集合,例如 [1, 2, 3]["apple", "banana", "cherry"][True, False, True]
  • 元组(tuple):不可变的有序项目集合,例如 (1, 2, 3)("red", "green", "blue")(True, False, True)
  • 范围(range):数字序列,例如 range(5)(0, 1, 2, 3, 4)或 range(1, 11, 2)(1, 3, 5, 7, 9)。

映射类型

  • 字典(dict):无序的键值对集合,例如 {"name": "John", "age": 30, "city": "New York"}

集合类型

  • 集合(set):无序的唯一元素集合,例如 {1, 2, 3}{"apple", "banana", "cherry"}{True, False}

你可以通过使用赋值运算符 = 为变量赋值来在 Python 中创建变量。例如:

x = 42
name = "Alice"
is_student = True

Python 中的变量可以随时重新赋值为不同的数据类型,如下例所示:

x = 42       ## x 是一个整数
x = 3.14     ## x 现在是一个浮点数
x = "hello"  ## x 现在是一个字符串

Python 还支持动态类型检查,这意味着你可以对不同数据类型的变量执行操作,而无需显式的类型声明或转换。

x = 5
y = 10.0
print(x + y)  ## 输出:15.0

在上面的示例中,Python 会自动将整数 x 转换为浮点数以执行加法运算。

控制流:条件语句和循环

Python 提供了几种控制流语句,使你能够根据特定条件或重复任务来控制代码的执行。

条件语句

Python 中最常见的条件语句是 if-elif-else 语句,它允许你根据一个或多个条件执行不同的代码块。

age = 18
if age < 18:
    print("你是未成年人。")
elif age >= 18 and age < 21:
    print("你是成年人。")
else:
    print("你已成年。")

Python 还支持三元运算符,它提供了一种简洁的方式来编写简单的 if-else 语句。

is_student = True
status = "学生" if is_student else "非学生"
print(status)  ## 输出:学生

循环

Python 提供了两种主要的循环结构:for 循环和 while 循环。

for 循环

for 循环用于遍历序列,如列表、元组、字符串或范围。

fruits = ["苹果", "香蕉", "樱桃"]
for fruit in fruits:
    print(fruit)

你也可以使用 range() 函数创建一个数字序列来遍历。

for i in range(5):
    print(i)  ## 输出:0, 1, 2, 3, 4

while 循环

while 循环用于在特定条件为真时执行一段代码。

count = 0
while count < 5:
    print(count)
    count += 1

for 循环和 while 循环都可以与 breakcontinue 语句结合使用,以控制循环的执行。

for i in range(10):
    if i == 5:
        break
    print(i)  ## 输出:0, 1, 2, 3, 4

在上面的示例中,当 i 的值达到 5 时,循环将终止。

for i in range(10):
    if i % 2 == 0:
        continue
    print(i)  ## 输出:1, 3, 5, 7, 9

在这个示例中,continue 语句跳过偶数,只打印奇数。

函数、模块和包

函数

Python 中的函数是可重复使用的代码块,用于执行特定任务。它们可以接受参数、执行操作并返回值。

def greet(name):
    return f"你好,{name}!"

print(greet("爱丽丝"))  ## 输出:你好,爱丽丝!

函数还可以有默认参数、可变长度参数和关键字参数。

def calculate_area(length, width, unit="厘米"):
    area = length * width
    return f"{area} {unit}²"

print(calculate_area(5, 10))       ## 输出:50 厘米²
print(calculate_area(5, 10, "米"))  ## 输出:50 米²

模块

Python 中的模块是包含 Python 定义和语句的文件。它们允许你组织和重用代码。

## math_utils.py
def add(a, b):
    return a + b

def subtract(a, b):
    return a - b
## main.py
import math_utils

result = math_utils.add(5, 3)
print(result)  ## 输出:8

你也可以使用 from 关键字从模块中导入特定的函数或变量。

from math_utils import add, subtract

result = add(5, 3)
print(result)  ## 输出:8

Python 中的包是组织成层次结构的模块集合。它们提供了一种将相关模块组合在一起并更有效地管理它们的方法。

my_package/
    __init__.py
    module1.py
    module2.py
    subpackage/
        __init__.py
        module3.py

要使用包,你可以使用点号表示法导入其模块或子包。

import my_package.module1
result = my_package.module1.function_from_module1()

from my_package.subpackage import module3
result = module3.function_from_module3()

包和模块对于在大型 Python 项目中组织和重用代码至关重要。

面向对象编程基础

面向对象编程(OOP)是一种编程范式,专注于使用对象来设计和实现软件应用程序。在 Python 中,OOP 是一个强大的工具,使你能够创建可重用和可维护的代码。

类和对象

OOP 的基本构建块是对象。类是定义对象的属性(特性)和行为(方法)的蓝图或模板。对象是类的实例。

class Car:
    def __init__(self, make, model, year):
        self.make = make
        self.model = model
        self.year = year

    def start(self):
        print("启动汽车。")

    def stop(self):
        print("停止汽车。")

my_car = Car("丰田", "凯美瑞", 2020)
my_car.start()  ## 输出:启动汽车。
my_car.stop()   ## 输出:停止汽车。

继承

继承是一种机制,允许你基于现有类创建新类。新类继承现有类的属性和方法,还可以添加或修改它们。

class ElectricCar(Car):
    def __init__(self, make, model, year, battery_capacity):
        super().__init__(make, model, year)
        self.battery_capacity = battery_capacity

    def charge(self):
        print("给电动汽车充电。")

my_electric_car = ElectricCar("特斯拉", "Model S", 2022, 100)
my_electric_car.start()       ## 输出:启动汽车。
my_electric_car.charge()      ## 输出:给电动汽车充电。

多态性

多态性是指不同类的对象能够被当作共同超类的对象来对待的能力。这使你能够编写更通用、更灵活的代码。

def drive(vehicle):
    vehicle.start()
    vehicle.stop()

drive(my_car)       ## 输出:启动汽车。, 停止汽车。
drive(my_electric_car)  ## 输出:启动汽车。, 给电动汽车充电。

封装

封装是将对象的内部实现细节对外部世界隐藏起来的原则。这通过使用访问修饰符(如 publicprivateprotected)来实现。

class BankAccount:
    def __init__(self, owner, balance):
        self.__owner = owner
        self.__balance = balance

    def deposit(self, amount):
        self.__balance += amount

    def withdraw(self, amount):
        if self.__balance >= amount:
            self.__balance -= amount
        else:
            print("资金不足。")

account = BankAccount("爱丽丝", 1000)
account.deposit(500)
account.withdraw(200)  ## 输出:1300
account.__balance = -500  ## 由于封装,这将不起作用

这些 OOP 概念,以及抽象类、接口和装饰器等其他概念,为编写模块化、可扩展和可维护的 Python 代码提供了强大的方式。

Python 标准库和第三方包

Python 附带了一个庞大而全面的标准库,它提供了用于各种任务的广泛模块和函数,如文件输入输出、网络、数据处理等等。此外,Python 社区还开发了一个庞大的第三方包生态系统,扩展了该语言的功能。

Python 标准库

Python 标准库分为几个类别,包括:

  • 文件和目录处理osshutilpathlib
  • 数据结构和算法collectionsheapqitertools
  • 文本处理restringtextwrap
  • 日期和时间datetimetimecalendar
  • 数学和统计mathstatisticsdecimal
  • 网络和互联网urllibhttpsmtplib
  • 并发和并行threadingmultiprocessingasyncio
  • 数据序列化jsonpicklecsv

以下是一个使用 os 模块列出目录中文件的示例:

import os

directory = "/path/to/directory"
for filename in os.listdir(directory):
    print(filename)

第三方包

Python 社区开发了一个庞大的第三方包生态系统,可以使用 pipconda 等包管理器进行安装。一些流行且广泛使用的第三方包包括:

  • Web 开发DjangoFlaskFastAPI
  • 数据科学和机器学习NumPyPandasScikit-learnTensorFlowPyTorch
  • 数据可视化MatplotlibSeabornPlotly
  • 自动化和脚本RequestsSeleniumParamiko
  • 实用工具和生产力PytestBlackFlake8Sphinx

要在终端中安装第三方包,可以使用以下命令:

pip install package_name

安装后,你可以在 Python 代码中导入并使用该包:

import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(arr)

Python 标准库和第三方包提供了大量的工具和功能,可以帮助你构建强大而高效的应用程序。

Python 核心最佳实践与编码规范

随着你对 Python 的掌握日益熟练,遵循最佳实践和编码规范来编写简洁、可维护且高效的代码非常重要。以下是一些需要考虑的关键准则:

代码格式化与风格

  • 遵循 PEP 8 风格指南,以确保代码格式化、命名规范和代码结构的一致性。
  • 使用 blackautopep8 等工具自动格式化你的代码。
  • 编写清晰简洁的变量、函数和类名,以描述其用途。
  • 使用文档字符串(docstring)记录你的代码,遵循 PEP 257 指南

模块化设计

  • 将你的代码分解为更小的、可重用的模块和包,以提高代码的组织性和可维护性。
  • 使用 if __name__ == "__main__": 模式,使你的模块能够作为独立脚本运行。
  • 利用 Python 的内置模块和第三方包,避免重复造轮子。

错误处理与异常

  • 使用 try-except 块处理预期的异常,并提供有意义的错误消息。
  • 抛出自定义异常,以传达代码中的特定错误情况。
  • 优雅地处理异常,避免让它们不必要地在调用栈中向上传播。

数据结构的有效使用

  • 根据用例选择合适的数据结构(列表、元组、集合、字典)。
  • 利用内置函数和方法高效地操作数据。
  • 通过使用生成器、列表推导式和其他内存高效的结构,避免不必要的数据复制。

高效且符合 Python 风格的代码

  • 尽可能使用生成器表达式和列表推导式,而不是显式循环。
  • 利用 Python 的内置函数,如 map()filter()reduce(),执行常见的数据转换。
  • 通过使用 f 字符串或 join() 方法,避免不必要的字符串拼接。
  • 使用 with 语句管理文件和数据库连接等资源。

测试与调试

  • 使用 unittestpytest 等测试框架编写单元测试,以确保代码的正确性。
  • 使用内置的 pdb 模块或 ipdb 等第三方工具进行交互式调试。
  • 利用日志记录来帮助排查故障并理解应用程序的运行时行为。

通过遵循这些最佳实践和编码规范,你可以编写更具可读性、可维护性和高效性的 Python 代码,从而更轻松地与其他开发者协作,并随着时间的推移扩展你的项目。

总结

在本 Python 核心教程结束时,你将对该语言的基本概念、最佳实践和工具拥有扎实的理解。你将有能力编写简洁、可维护且高效的 Python 代码,使你成为一名更熟练、更通用的开发者。借助从本指南中学到的知识,你将能够应对广泛的编程任务,并为蓬勃发展的 Python 生态系统做出贡献。