欢迎光临
我们一直在努力

Python 基础入门知识全梳理(从环境搭建到程序控制)

本文系统梳理 Python 入门阶段的核心知识点,涵盖 Python 语言简介、开发环境搭建、语法元素(输出/输入/变量/数据类型/注释)以及程序控制语句(条件判断/循环/异常处理),配合大量代码示例,适合零基础同学快速入门,也方便复习查阅。


一、初识 Python

1.1 认识 Python 语言

1.1.1 编程语言概述

编程语言(Programming Language)是人与计算机沟通的桥梁,通过特定的语法规则编写指令,让计算机完成指定任务。编程语言大致分为:

  • 机器语言:由 0 和 1 组成,计算机直接执行,但人类难以阅读。
  • 汇编语言:用助记符代替二进制,仍与硬件强相关。
  • 高级语言:接近自然语言,可读性强,如 Python、Java、C++ 等。高级语言需要通过编译或解释转换为机器可执行的代码。

为了更清晰地理解三类编程语言的区别,下表从执行方式、可读性、开发效率和典型代表四个方面进行对比:

语言类型执行方式可读性开发效率典型代表
机器语言 计算机直接执行(二进制指令) 极差(0/1 序列) 极低(需逐位编写) 无特定名称,即 CPU 指令集
汇编语言 通过汇编器转换为机器语言 较差(助记符,仍接近硬件) 较低(需了解硬件细节) x86 汇编、ARM 汇编
高级语言(编译型) 通过编译器一次性转换为机器语言后执行 好(接近自然语言) 高(抽象程度高) C、C++、Go、Rust
高级语言(解释型) 通过解释器逐行解释执行 好(接近自然语言) 高(无需编译,跨平台强) Python、JavaScript、Ruby、PHP

补充说明:

  • 编译型语言:程序运行前需要专门的编译过程,将源代码一次性转换为机器码(可执行文件)。执行速度快,但跨平台性较差(不同平台需重新编译)。
  • 解释型语言:程序运行时由解释器逐行解释执行,无需提前编译。便于调试和跨平台,但通常执行速度慢于编译型语言。
  • 混合型语言:部分语言(如 Java、C#)采用“编译为中间码 + 虚拟机解释/即时编译”的方式,兼具编译和解释的特点。

Python 属于解释型高级语言,它通过解释器逐行执行,无需编译,因此开发调试非常便捷,尤其适合初学者和快速原型开发。

1.1.2 Python 语言概述

Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言,由 Guido van Rossum 于 1989 年底发明。它的核心特点:

  • 语法简洁:代码像英语一样易读,适合初学者。
  • 开源免费:任何人都可以自由使用和分发。
  • 跨平台:支持 Windows、macOS、Linux 等主流操作系统。
  • 丰富的库:拥有庞大的标准库和第三方生态,覆盖 Web、人工智能、数据分析、自动化等领域。
  • 解释执行:无需编译,写完即可运行,便于调试。
1.1.3 Python 语言的发展

Python 自 1991 年正式发布以来经历了多个大版本演进,目前广泛使用的是 Python 3.x 系列(Python 2 已于 2020 年停止维护)。凭借在人工智能、数据科学、自动化测试等领域的强劲表现,Python 长期位居各大编程语言排行榜前列。

1.2 搭建 Python 开发环境

1.2.1 在 Windows 系统中搭建开发环境
  • 访问 Python 官网(https://www.python.org/downloads/)下载对应版本的安装包(.exe)。```bash python –version
  • 若正确显示版本号(如 `Python 3.12.0`),则说明安装成功。

    #### 1.2.2 在 macOS 系统中搭建开发环境

    macOS 自带 Python 2,建议通过 Homebrew 安装最新版 Python 3,或者从 Python 官网([https://www.python.org/downloads/](https://www.python.org/downloads/))下载 macOS 安装包:
    ```bash
    brew install python

    安装完成后验证:

    python3 –version

    1.3 第一个 Python 程序

    1.3.1 认识 IDLE

    IDLE(Integrated Development and Learning Environment)是 Python 自带的轻量级集成开发与学习环境,安装 Python 后即可使用。它包含:

    • 交互式解释器(REPL):输入一行代码立即看到结果,适合快速试验。
    • 文件编辑器:编写多行脚本并保存为 .py 文件后运行。
    1.3.2 实现 hello world 程序

    在 IDLE 交互模式中直接输入:

    print("hello world")

    运行结果:

    hello world

    也可以将代码保存为 hello.py 文件,通过命令行运行:

    python hello.py

    1.3.3 程序运行出现异常

    程序在运行过程中如果遇到错误,Python 会抛出**异常(Exception)**并打印出错信息。例如:

    print(1 / 0)

    运行结果:

    ZeroDivisionError: division by zero

    异常信息通常包含:异常类型 + 错误描述 + 出错位置(文件名与行号),学会阅读异常信息是排错的关键。

    1.2.3 环境配置与验证

    安装完成后,建议进行以下环境配置,确保 Python 能正常工作:

    1. 验证安装与版本 在命令行中运行以下命令,确认 Python 已正确安装并查看版本:

    # Windows 和 macOS 通用
    python –version
    # 或
    python3 –version

    如果显示类似 Python 3.12.0 的信息,说明安装成功。

    2. 配置 PATH 环境变量 PATH 环境变量告诉系统在哪里查找可执行文件。安装时勾选「Add Python to PATH」(Windows)或通过 Homebrew 安装(macOS)通常会自动配置。

    验证 PATH 是否包含 Python:

    • Windows:在命令行输入 where python 或 where python3
    • macOS/Linux:在终端输入 which python 或 which python3

    如果显示 Python 安装路径(如 C:\\Python312\\python.exe 或 /usr/local/bin/python3),则 PATH 配置正确。

    手动配置 PATH 环境变量(如果需要):

    Windows 系统:

  • 找到 Python 安装目录(如 C:\\Python312)
  • 右键点击「此电脑」→「属性」→「高级系统设置」→「环境变量」
  • 在「系统变量」中找到 Path,点击「编辑」
  • 点击「新建」,添加 Python 安装目录(如 C:\\Python312)
  • 再添加 Scripts 目录(如 C:\\Python312\\Scripts,用于 pip)
  • 点击「确定」保存所有更改
  • 重新打开命令行窗口,验证配置
  • macOS/Linux 系统:

  • 打开终端,编辑 shell 配置文件(如 ~/.bashrc、~/.zshrc 或 ~/.bash_profile)
  • 添加以下行(根据实际安装路径调整):export PATH="/usr/local/bin:$PATH"
    export PATH="/usr/local/opt/python@3.12/bin:$PATH"
  • 保存文件并执行 source ~/.bashrc(或对应配置文件)使配置生效
  • 重新打开终端验证
  • 3. 运行 Python 交互模式 在命令行输入 python(或 python3)进入交互式解释器(REPL):

    python

    出现 >>> 提示符表示成功进入,可以输入简单命令测试:

    >>> print("Hello, Python!")
    Hello, Python!
    >>> exit() # 退出交互模式

    4. 创建和运行 Python 脚本

  • 创建一个文本文件,命名为 test.py
  • 用文本编辑器打开,输入:print("Hello from script!")
  • 保存后,在命令行运行:python test.py
    如果输出 Hello from script!,说明环境配置完成。
  • 5. 安装包管理器 pip pip 是 Python 的包管理工具,用于安装第三方库。通常随 Python 一起安装。

    验证 pip 是否可用:

    pip –version
    # 或
    pip3 –version

    如果提示命令不存在,需要单独安装:

    • Windows:安装 Python 时确保勾选「Install pip」
    • macOS:brew install python 会包含 pip
    • 通用方法:下载 get-pip.py 并运行 python get-pip.py

    6. 创建虚拟环境(推荐) 虚拟环境可以为每个项目创建独立的 Python 环境,避免包冲突。

    创建虚拟环境:

    # 进入项目目录
    cd my_project

    # 创建虚拟环境
    python -m venv venv

    激活虚拟环境:

    • Windows:venv\\Scripts\\activate
    • macOS/Linux:source venv/bin/activate

    激活后,命令行提示符前会显示 (venv),表示已进入虚拟环境。使用 deactivate 退出。

    常见问题排查:

    • “python” 不是内部或外部命令:PATH 环境变量未配置,需要按照上述步骤手动添加 Python 安装目录到 PATH。
    • 命令找不到:尝试使用 python3 和 pip3 代替 python 和 pip。
    • 权限问题:在 macOS/Linux 上使用 sudo 或在 Windows 上以管理员身份运行。
    • 多个 Python 版本冲突:使用 python3 明确指定 Python 3 版本,或使用虚拟环境隔离。

    完成以上配置后,你的 Python 开发环境就准备就绪了,可以开始编写和运行 Python 程序。

    1.4 Python 语言代码的特点

    • 使用缩进(而非大括号)表示代码块,一般推荐 4 个空格。
    • 无需声明变量类型,赋值即定义。
    • 语句末尾不需要分号(一行写一条语句)。
    • 大小写敏感,Name 与 name 是两个不同的标识符。
    • 支持面向对象和函数式编程风格。

    二、Python 语法元素

    2.1 输出函数 print()

    2.1.1 函数

    函数是完成特定功能的代码集合,Python 通过「函数名 + 括号」的方式调用,括号内可传入参数。例如 print("hello") 中,print 是函数名,"hello" 是参数。

    2.1.2 print() 函数

    print() 是 Python 中最常用的输出函数,用于将内容打印到控制台。

    基本用法:

    print("hello world") # 输出字符串
    print(2026) # 输出整数
    print(3.14) # 输出浮点数

    输出多个值(默认用空格分隔):

    print("姓名:", "张三", "年龄:", 18)
    # 输出: 姓名: 张三 年龄: 18

    使用 sep 参数自定义分隔符:

    print("2026", "07", "13", sep="-")
    # 输出: 2026-07-13

    使用 end 参数控制结尾符(默认换行 \\n):

    print("加载中", end="")
    print("…100%")
    # 输出: 加载中…100%

    格式化输出:

    # f-string(推荐,Python 3.6+)
    name = "Python"
    version = 3.12
    print(f"{name} {version}") # 输出: Python 3.12

    # format 方法
    print("{} {}".format(name, version))

    # % 占位符
    print("%s %.2f" % (name, version))

    2.2 元素的命名

    2.2.1 变量的命名规则

    变量名是程序中存储数据的"容器",命名需遵守以下规则:

    • 只能由字母、数字、下划线组成。
    • 不能以数字开头。
    • 不能使用关键字(如 if、for、while、class 等)。
    • 区分大小写。
    • 见名知意,推荐使用 snake_case(小写下划线)风格。

    # 合法命名
    user_name = "Tom"
    _age = 18
    score1 = 95.5

    # 非法命名(会报错)
    # 1name = "Tom" # 不能以数字开头
    # my-name = "Tom" # 不能包含连字符
    # if = 10 # 不能使用关键字

    2.2.2 赋值语句

    通过 = 将右侧的值赋给左侧的变量:

    a = 10
    b = a + 5
    print(b) # 15

    # 多重赋值
    x, y, z = 1, 2, 3
    print(x, y, z) # 1 2 3

    # 链式赋值
    m = n = 100
    print(m, n) # 100 100

    2.3 基本数据类型

    2.3.1 数据类型的介绍

    Python 常见基本数据类型:

    类型关键字示例说明
    整数 int 10, -5, 0 不带小数点的数
    浮点数 float 3.14, -0.5 带小数点的数
    字符串 str "hello", 'a' 用引号包裹的文本
    布尔值 bool True, False 真假值,首字母大写

    age = 18 # int
    height = 1.75 # float
    name = "Python" # str
    is_student = True # bool

    2.3.2 检测数据类型

    使用 type() 函数查看变量类型:

    print(type(18)) # <class 'int'>
    print(type(3.14)) # <class 'float'>
    print(type("hello")) # <class 'str'>
    print(type(True)) # <class 'bool'>

    使用 isinstance() 判断变量是否为某类型:

    print(isinstance(18, int)) # True
    print(isinstance("hi", str)) # True

    2.3.3 强制转换数据类型

    通过类型构造函数进行转换:

    # 字符串 -> 整数
    num = int("123")
    print(type(num), num) # <class 'int'> 123

    # 整数 -> 字符串
    s = str(100)
    print(type(s), s) # <class 'str'> 100

    # 整数 -> 浮点数
    f = float(5)
    print(f) # 5.0

    # 浮点数 -> 整数(直接截断小数部分)
    n = int(3.99)
    print(n) # 3

    注意:int("abc") 会抛出 ValueError,因为 “abc” 无法转为整数。

    2.3.4 报错信息分析

    常见类型相关错误:

    # TypeError:类型不支持的操作
    print("年龄:" + 18)
    # TypeError: can only concatenate str (not "int") to str

    # 解决方案:将数字转为字符串
    print("年龄:" + str(18))

    阅读报错信息的技巧:先看异常类型,再看错误描述,最后定位出错行号。

    2.3.5 多行处理

    当一行代码过长时,可使用反斜杠 \\ 续行,或用括号隐式续行:

    # 反斜杠续行
    total = 1 + 2 + 3 + \\
    4 + 5 + 6
    print(total) # 21

    # 括号内可换行(推荐)
    result = (1 + 2 + 3 +
    4 + 5 + 6)
    print(result) # 21

    多行字符串使用三引号:

    text = """这是
    多行
    字符串"""

    print(text)

    2.4 输入函数 input()

    input() 用于从键盘接收用户输入,返回值始终是字符串类型:

    name = input("请输入你的名字:")
    print("你好," + name)

    若需要数值参与运算,必须先转换类型:

    age_str = input("请输入年龄:")
    age = int(age_str) # 转为整数
    print("明年你", age + 1, "岁")

    一行简写:

    age = int(input("请输入年龄:"))

    2.5 注释和"使用帮助"功能

    2.5.1 注释功能

    注释是写给开发者看的说明文字,不会被程序执行。

    # 这是单行注释

    """
    这是多行注释
    可以写多行说明
    """

    age = 18 # 行尾注释:定义年龄变量

    良好的注释习惯能让代码更易维护,但也不要过度注释显而易见的代码。

    2.5.2 "使用帮助"功能

    在交互模式中,可使用 help() 函数查看任意对象或函数的帮助文档:

    help(print) # 查看 print 函数的用法
    help(str) # 查看字符串类型的所有方法

    也可以在函数定义中编写文档字符串(docstring),供 help() 调用:

    def greet(name):
    """向指定的人打招呼"""
    print("hello, " + name)

    help(greet)

    项目案例:实现计算器

    综合运用输入输出与类型转换,实现一个简易计算器:

    a = float(input("请输入第一个数:"))
    op = input("请输入运算符(+ – * /):")
    b = float(input("请输入第二个数:"))

    if op == "+":
    print(a + b)
    elif op == "-":
    print(a b)
    elif op == "*":
    print(a * b)
    elif op == "/":
    print(a / b)
    else:
    print("不支持的运算符")


    三、程序控制语句

    3.1 条件判断语句

    3.1.1 if 语句

    if 语句用于在满足条件时执行某段代码:

    age = 18
    if age >= 18:
    print("已成年")

    注意:条件后必须有冒号 :,代码块通过缩进表示,建议统一使用 4 个空格。

    3.1.2 布尔值

    条件表达式的结果为布尔值 True 或 False。常见比较运算符:

    运算符含义示例
    == 等于 a == b
    != 不等于 a != b
    > 大于 a > b
    < 小于 a < b
    >= 大于等于 a >= b
    <= 小于等于 a <= b

    逻辑运算符用于组合多个条件:

    # and(与):两个条件都为 True 才为 True
    # or(或):任一条件为 True 即为 True
    # not(非):取反
    print(True and False) # False
    print(True or False) # True
    print(not True) # False

    3.1.3 if + else 语句

    else 在条件不成立时执行:

    age = 16
    if age >= 18:
    print("已成年")
    else:
    print("未成年")

    3.1.4 if + elif + else 语句

    elif(else if)用于判断多个互斥条件:

    score = 85
    if score >= 90:
    print("优秀")
    elif score >= 80:
    print("良好")
    elif score >= 60:
    print("及格")
    else:
    print("不及格")

    3.1.5 多个 elif 语句

    可以根据需要添加任意多个 elif,程序按从上到下顺序匹配,命中第一个满足条件的分支后不再继续判断:

    weekday = 3
    if weekday == 1:
    print("星期一")
    elif weekday == 2:
    print("星期二")
    elif weekday == 3:
    print("星期三")
    elif weekday == 4:
    print("星期四")
    elif weekday == 5:
    print("星期五")
    else:
    print("周末")

    3.1.6 条件判断语句的嵌套

    if 内部可以再嵌套 if,处理更复杂的逻辑:

    age = 20
    has_ticket = True

    if age >= 18:
    if has_ticket:
    print("允许入场")
    else:
    print("未成年需购票")
    else:
    print("未成年人禁止入场")

    3.1.7 多个条件判断语句

    使用 and、or 组合多个条件,避免过深的嵌套:

    age = 25
    gender = "男"

    if age >= 22 and gender == "男":
    print("达到法定结婚年龄")
    elif age >= 20 and gender == "女":
    print("达到法定结婚年龄")
    else:
    print("未达到法定结婚年龄")

    3.1.8 if + else 语句的复合写法

    对于简单的条件赋值,可使用三元表达式(条件表达式)让代码更简洁:

    # 普通写法
    if age >= 18:
    status = "成年"
    else:
    status = "未成年"

    # 三元表达式(等价)
    status = "成年" if age >= 18 else "未成年"

    3.1.9 if-elif-else 执行流程图

    为了更直观地理解 if-elif-else 语句的执行逻辑,下面通过流程图展示程序如何从上到下判断条件并选择分支:

    #mermaid-svg-aZCsDV4Oa02jBDOy{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-aZCsDV4Oa02jBDOy .error-icon{fill:#552222;}#mermaid-svg-aZCsDV4Oa02jBDOy .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-aZCsDV4Oa02jBDOy .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-aZCsDV4Oa02jBDOy .marker{fill:#333333;stroke:#333333;}#mermaid-svg-aZCsDV4Oa02jBDOy .marker.cross{stroke:#333333;}#mermaid-svg-aZCsDV4Oa02jBDOy svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-aZCsDV4Oa02jBDOy p{margin:0;}#mermaid-svg-aZCsDV4Oa02jBDOy .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy .cluster-label text{fill:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy .cluster-label span{color:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy .cluster-label span p{background-color:transparent;}#mermaid-svg-aZCsDV4Oa02jBDOy .label text,#mermaid-svg-aZCsDV4Oa02jBDOy span{fill:#333;color:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy .node rect,#mermaid-svg-aZCsDV4Oa02jBDOy .node circle,#mermaid-svg-aZCsDV4Oa02jBDOy .node ellipse,#mermaid-svg-aZCsDV4Oa02jBDOy .node polygon,#mermaid-svg-aZCsDV4Oa02jBDOy .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-aZCsDV4Oa02jBDOy .rough-node .label text,#mermaid-svg-aZCsDV4Oa02jBDOy .node .label text,#mermaid-svg-aZCsDV4Oa02jBDOy .image-shape .label,#mermaid-svg-aZCsDV4Oa02jBDOy .icon-shape .label{text-anchor:middle;}#mermaid-svg-aZCsDV4Oa02jBDOy .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-aZCsDV4Oa02jBDOy .rough-node .label,#mermaid-svg-aZCsDV4Oa02jBDOy .node .label,#mermaid-svg-aZCsDV4Oa02jBDOy .image-shape .label,#mermaid-svg-aZCsDV4Oa02jBDOy .icon-shape .label{text-align:center;}#mermaid-svg-aZCsDV4Oa02jBDOy .node.clickable{cursor:pointer;}#mermaid-svg-aZCsDV4Oa02jBDOy .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-aZCsDV4Oa02jBDOy .arrowheadPath{fill:#333333;}#mermaid-svg-aZCsDV4Oa02jBDOy .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-aZCsDV4Oa02jBDOy .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-aZCsDV4Oa02jBDOy .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aZCsDV4Oa02jBDOy .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-aZCsDV4Oa02jBDOy .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aZCsDV4Oa02jBDOy .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-aZCsDV4Oa02jBDOy .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-aZCsDV4Oa02jBDOy .cluster text{fill:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy .cluster span{color:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-aZCsDV4Oa02jBDOy .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-aZCsDV4Oa02jBDOy rect.text{fill:none;stroke-width:0;}#mermaid-svg-aZCsDV4Oa02jBDOy .icon-shape,#mermaid-svg-aZCsDV4Oa02jBDOy .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-aZCsDV4Oa02jBDOy .icon-shape p,#mermaid-svg-aZCsDV4Oa02jBDOy .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-aZCsDV4Oa02jBDOy .icon-shape .label rect,#mermaid-svg-aZCsDV4Oa02jBDOy .image-shape .label rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-aZCsDV4Oa02jBDOy .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-aZCsDV4Oa02jBDOy .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-aZCsDV4Oa02jBDOy :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}

    条件为 True

    条件为 False

    条件为 True

    条件为 False

    条件为 True

    条件为 False

    否(还有更多 elif)

    开始执行 if-elif-else 语句

    判断第一个 if 条件

    执行 if 代码块

    结束整个条件判断(后续 elif/else 不再判断)

    判断第一个 elif 条件

    执行该 elif 代码块

    判断下一个 elif 条件(如有更多)

    执行该 elif 代码块

    所有条件都为 False?

    执行 else 代码块

    流程图说明:

  • 开始判断:程序从第一个 if 条件开始判断。
  • 条件为真:如果某个条件为 True,则执行对应的代码块,然后立即结束整个条件判断结构,后续的 elif 和 else 都不会再判断。
  • 条件为假:如果条件为 False,则继续判断下一个 elif 条件。
  • 循环判断:重复步骤 2-3,直到找到第一个为 True 的条件。
  • 所有条件为假:如果所有 if 和 elif 条件都为 False,则执行 else 代码块(如果存在)。
  • 结束:执行完对应的代码块后,程序继续执行条件判断结构之后的代码。
  • 关键特点:

    • 顺序性:条件按书写顺序从上到下判断。
    • 互斥性:只会执行第一个满足条件的代码块。
    • 可选的 else:else 是可选的,当所有条件都不满足时执行。
    • 效率考虑:将最可能成立的条件放在前面可以提高程序效率。

    3.2 循环语句

    3.2.1 for 循环

    for 循环用于遍历可迭代对象(如字符串、列表、range 等):

    # 遍历字符串
    for ch in "Python":
    print(ch)

    # 配合 range() 生成数字序列
    for i in range(5): # 0 1 2 3 4
    print(i)

    for i in range(1, 6): # 1 2 3 4 5
    print(i)

    for i in range(0, 10, 2): # 0 2 4 6 8(步长为2)
    print(i)

    range(start, stop, step):包含 start,不包含 stop,step 为步长。

    3.2.2 while 循环

    while 在条件为 True 时重复执行代码块,需注意更新循环变量,否则会陷入死循环:

    n = 1
    while n <= 5:
    print(n)
    n += 1 # 别忘了更新变量!
    print("循环结束")

    3.2.3 嵌套循环

    循环内部再嵌套循环,常用于处理二维结构(如乘法表):

    # 九九乘法表
    for i in range(1, 10):
    for j in range(1, i + 1):
    print(f"{j}×{i}={i*j}", end="\\t")
    print() # 每行结束后换行

    输出(部分):

    1×1=1
    1×2=22×2=4
    1×3=32×3=63×3=9

    3.2.4 break 和 continue 语句
    • break:立即终止当前整个循环。
    • continue:跳过本次循环

    3.3 异常处理

    在程序运行过程中,难免会遇到各种错误(如除零、文件不存在、类型错误等)。Python 使用异常处理机制来捕获并处理这些错误,防止程序意外崩溃,并给出友好的错误提示。

    3.3.1 try-except 基本语法与示例

    try-except 是异常处理的基本结构。将可能出错的代码放在 try 块中,如果发生异常,则执行 except 块中的代码。

    try:
    # 可能出错的代码
    result = 10 / 0
    print("结果:", result)
    except:
    # 发生任何异常时执行的代码
    print("出错了!")

    以上代码会输出“出错了!”,而不会因为除零错误导致程序崩溃。这比之前 1.3.3 节中直接运行 print(1 / 0) 导致程序中断要友好得多。

    3.3.2 捕获特定异常

    可以指定要捕获的异常类型,从而对不同错误进行不同的处理。

    try:
    num = int(input("请输入一个整数: "))
    result = 10 / num
    print("10 除以 {} 的结果是: {}".format(num, result))
    except ZeroDivisionError:
    print("错误:除数不能为零!")
    except ValueError:
    print("错误:请输入有效的整数!")
    except Exception as e:
    print("发生了未知错误:", e)

    • ZeroDivisionError:捕获除零错误。
    • ValueError:捕获 int() 转换失败的错误(例如输入了字母)。
    • Exception:捕获所有其他异常,as e 可以获取异常对象。
    3.3.3 try-except-else-finally 完整结构

    完整的异常处理结构还包括 else 和 finally 子句。

    try:
    file = open("data.txt", "r")
    content = file.read()
    number = int(content.strip())
    result = 100 / number
    except FileNotFoundError:
    print("错误:文件不存在!")
    except ValueError:
    print("错误:文件内容不是有效的数字!")
    except ZeroDivisionError:
    print("错误:文件中的数字不能为零!")
    else:
    # 只有当 try 块中没有发生异常时才会执行
    print("计算成功,结果是:", result)
    finally:
    # 无论是否发生异常,最终都会执行(常用于清理资源,如关闭文件)
    print("程序执行完毕。")
    # 确保文件被关闭
    if 'file' in locals():
    file.close()

    • try:包裹可能出错的代码。
    • except:捕获并处理特定异常。
    • else:当 try 块没有异常时执行。
    • finally:无论是否发生异常,最终都会执行,常用于释放资源(如关闭文件、网络连接)。
    3.3.4 抛出异常(raise)

    除了捕获异常,我们还可以使用 raise 语句主动抛出异常,通常用于参数检查或自定义错误逻辑。

    def calculate_bmi(weight, height):
    """计算身体质量指数 (BMI)"""
    if weight <= 0 or height <= 0:
    # 如果参数不合法,主动抛出 ValueError 异常
    raise ValueError("体重和身高必须为正数!")
    bmi = weight / (height ** 2)
    return bmi

    # 测试
    try:
    # 正常情况
    print(calculate_bmi(70, 1.75))
    # 异常情况
    print(calculate_bmi(5, 1.75))
    except ValueError as e:
    print("输入错误:", e)

    运行结果:

    22.857142857142858
    输入错误:体重和身高必须为正数!

    主动抛出异常的好处:

  • 参数验证:在函数开头检查参数合法性,避免后续计算出现更隐晦的错误。
  • 明确错误原因:自定义异常信息,让调用者更容易理解问题所在。
  • 统一错误处理:与系统内置异常一样,可以被上层的 try-except 捕获。
  • 总结: 异常处理是编写健壮程序的关键。通过 try-except 可以优雅地处理运行时错误;通过 else 和 finally 可以完善处理逻辑和资源管理;通过 raise 可以主动报告错误。结合 1.3.3 节中提到的阅读异常信息的技巧,你将能更好地调试和优化自己的程序。

    四、总结与展望

    4.1 本文核心内容回顾

    本文系统梳理了 Python 入门阶段的核心知识点,旨在为零基础学习者构建一个清晰的知识框架:

  • 初识 Python:了解了编程语言的分类、Python 的特点与发展,并完成了开发环境搭建和第一个“Hello World”程序。
  • Python 语法元素:掌握了程序的基本构成单元,包括:
    • 输出与输入:print() 函数格式化输出,input() 函数获取用户输入。
    • 变量与命名:变量的命名规则与赋值语句。
    • 基本数据类型:int, float, str, bool 四种类型及其转换、检测方法。
    • 注释与帮助:编写代码注释和使用 help() 获取文档。
  • 程序控制语句:学会了如何控制程序的执行流程,这是编程逻辑的核心:
    • 条件判断:使用 if, elif, else 实现分支选择。
    • 循环:使用 for 和 while 实现重复执行,并了解 break 与 continue 控制循环。
    • 异常处理:使用 try-except-else-finally 结构优雅地捕获和处理运行时错误,并使用 raise 主动抛出异常。
  • 通过贯穿全文的代码示例和最后的计算器项目,你已经将输入、输出、类型转换、条件判断等知识串联起来,完成了第一个综合性练习。

    4.2 下一步学习建议

    掌握上述基础后,你可以继续深入 Python 世界,探索更强大的功能:

  • 数据结构:

    • 列表(List) 和 元组(Tuple):用于存储一系列有序的元素。
    • 字典(Dictionary) 和 集合(Set):用于存储键值对和无序不重复元素。
    • 学习它们的创建、增删改查、遍历以及常用方法。
  • 函数:

    • 学习如何定义函数(def),使用参数和返回值来封装可重用的代码块。
    • 理解变量的作用域(全局变量、局部变量)。
    • 了解 lambda 表达式(匿名函数)。
  • 模块与包:

    • 学习如何使用 import 导入 Python 标准库(如 math, random, datetime)和第三方库。
    • 了解如何创建和使用自己的模块(.py 文件)和包。
  • 面向对象编程(OOP):

    • 理解 类(Class) 和 对象(Object) 的概念。
    • 学习定义类、__init__ 方法(构造函数)、属性和方法。
    • 了解面向对象的三大特性:封装、继承、多态。
  • 文件操作:

    • 学习使用 open() 函数读写文本文件('r', 'w', 'a' 模式)。
  • 4.3 练习项目与学习资源推荐

    建议练习项目(由易到难):

  • 待办事项列表(命令行版):练习列表操作和循环。
  • 简易通讯录:练习字典的增删改查和文件存储。
  • 猜数字游戏:综合运用随机数、循环和条件判断。
  • 单词频率统计器:读取一个文本文件,统计每个单词出现的次数,练习文件操作和字典的高级用法。
  • 学习资源推荐:

    • 官方文档:docs.python.org – 最权威的参考,适合查阅。
    • 在线教程:
      • 菜鸟教程(Python3):中文,实例丰富,适合快速查阅。
      • 廖雪峰的 Python 教程:逻辑清晰,循序渐进。
    • 实践平台:
      • LeetCode(力扣) / 牛客网:从简单难度开始,刷题巩固语法和算法思维。
      • Codewars:通过完成小型“卡塔”(挑战)来提升编程技能。

    保持学习的秘诀:

    • 多写代码:编程是实践技能,光看不动手很难进步。
    • 多读代码:阅读优秀的开源项目代码,学习别人的思路和写法。
    • 善用搜索:遇到错误信息,直接复制到搜索引擎(如 Google、Stack Overflow),你遇到的问题很可能别人已经解决过。

    Python 的世界广阔而精彩,从自动化脚本、数据分析、Web 开发到人工智能,它几乎无处不在。希望本文为你打开了这扇大门,祝你学习愉快,编程之路越走越宽广!

    赞(0)
    未经允许不得转载:171主机测评 » Python 基础入门知识全梳理(从环境搭建到程序控制)
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址