西安科技大学

安全工程专业课程

安全仿真与模拟基础


金洪伟 & 闫振国 & 王延平

西安科技大学安全科学与工程学院


返回目录⇡

如何浏览?

  1. 从浏览器地址栏打开 https://zimo.net/aqjs/
  2. 点击章节列表中的任一链接,打开相应的演示文稿;
  3. 点击链接打开演示文稿,使用空格键或方向键导航;
  4. f键进入全屏播放,再按Esc键退出全屏;
  5. Alt键同时点击鼠标左键进行局部缩放;
  6. Esco键进入幻灯片浏览视图。

请使用最新版本浏览器访问此演示文稿以获得更好体验。

第 2 部分  Python 基础

第 1 章  初识 Python

目 录

  1. Python 介绍
  2. 搭建 Python 开发环境
  3. 编写第一个 Python 程序
  4. 基础语法

1. Python 介绍

1.1 什么是 Python?

Python(英国发音:/ˈpaɪθən/,美国发音:/ˈpaɪθɑːn/),是一种广泛使用的解释型、高级和通用的编程语言。

Python 是一种解释型、交互式、面向对象的编程语言。它包含了模块、异常、动态类型、高层级动态数据类型以及类等特性。在面向对象编程以外它还支持多种编程范式,例如过程式和函数式编程等。Python 结合了超强的功能和极清晰的语法。它带有许多系统调用和库以及多种窗口系统的接口,并且能用 C 或 C++ 来进行扩展。它还可用作需要可编程接口的应用程序的扩展语言。最后,Python 非常易于移植:它可以在包括 Linux 和 macOS 在内的许多 Unix 变种以及 Windows 上运行。

1.2 Python 的特点

  1. 简单易学。Python 的设计哲学是优雅、明确、简单,表现在其代码可读性强、易于编写,对代码格式的要求比较宽松,学习曲线平缓,编程不需要太大的心智负担。不过请记住,任何一门编程语言的学习都不会很容易。
  2. 面向对象。Python 支持面向对象编程。它的类模型支持多态、运算符重载和多重继承等面向对象编程概念。
  3. 函数式编程。Python 内置了对函数式编程的支持,它支持生成器、推导、闭包、映射、装饰器、匿名函数和头等函数。
  4. 解释型(⇔ 编译型)。代码自上而下解释执行,不需要编译和链接过程,且实时返回运行结果,从而支持交互式编程,同时便于调整代码。

1.2 Python 的特点

  1. 开源免费。Python 项目软件在 Python 软件基金会许可证下开源发布,其开发是由社区驱动的,其使用和分发是完全免费的。
  2. 跨平台(或称可移植)。Python 程序的核心语言、标准库可以在所有主流平台无差别地运行,这也意味着使用 Python 编写的程序可以在所有平台上运行。
  3. 可扩展。Python 具有丰富和强大的库,能够把使用其他语言制作的各种模块很轻松地联结在一起,因此 Python 经常被称为“胶水”语言。
  4. 动态类型(⇔ 静态类型)。在运行过程中跟踪对象的类型,不需要在代码中进行类型和变量声明,可以非常灵活地编写代码。
  5. 自动内存管理(⇔ 手动内存管理)。自动为对象分配内存空间,并且当对象不再使用时自动进行垃圾回收。既保证内存安全,又免去了复杂的手动内存管理过程。

1.2 Python 的特点

另外,Python 还具有应用领域广泛特性丰富生态完整等优点。


缺点:

运行速度慢!

1.3 发展历史

  • 1989年圣诞节期间,荷兰数学和计算机科学研究学会的吉多·范罗苏姆(荷兰语:Guido van Rossum)开始构建 Python,作为 ABC 语言的替代。
  • 1991年,Python 0.9.0 首次发布。
  • 1994年,Python 1.0 发布。
  • 2000年,Python 2.0 发布,引入了较多新功能。
  • 2008年,Python 3.0 发布,相对于 2.x 版本,该主版本并非完全向后兼容。
  • 2020年,最后的 Python 2 更新到 2.7.18 版本,并停止进一步的支持。
Python 创始人吉多·范罗苏姆在2006年的照片
TIOBE 编程语言使用流行程度排行榜(2026年8月)

1.4 Python 的设计哲学

Python 的设计哲学是优雅明确简单。它的重要准则被称为“Python 之禅”,其中包括以下格言:


            >>> import this
            The Zen of Python, by Tim Peters
            
            Beautiful is better than ugly.
            Explicit is better than implicit.
            Simple is better than complex.
            Complex is better than complicated.
            Flat is better than nested.
            Sparse is better than dense.
            Readability counts.
            Special cases aren't special enough to break the rules.
            Although practicality beats purity.
            Errors should never pass silently.
            Unless explicitly silenced.
            In the face of ambiguity, refuse the temptation to guess.
            There should be one-- and preferably only one --obvious way to do it.
            Although that way may not be obvious at first unless you're Dutch.
            Now is better than never.
            Although never is often better than *right* now.
            If the implementation is hard to explain, it's a bad idea.
            If the implementation is easy to explain, it may be a good idea.
            Namespaces are one honking great idea -- let's do more of those!
        

1.5 Python 能做什么?

  • 科学计算与数据分析:这是本课程最关注的领域。利用 NumPy、SciPy 和 pandas 等库,Python 已经成为学术界和工程界进行数值计算、信号处理、数据挖掘的首选工具。
  • 人工智能与机器学习:得益于 TensorFlow 和 PyTorch 等顶级框架的加持,Python 是当今开发深度学习模型、计算机视觉和自然语言处理的绝对霸主语言。
  • 数据可视化:能够将枯燥的矩阵数据一键转化为直观的折线图、散点图甚至三维云图。
  • Web 后端开发:借助 Django 和 Flask 等框架,可以快速搭建起强壮的服务器后台(如大型矿井的物联网监控后台系统)。
  • 自动化运维与脚本:工程师经常编写 Python 脚本来自动整理海量文件、定期备份数据库或自动抓取网络数据,大幅替代繁琐的人工劳动。
  • 快速原型开发:在研发一款大型商业软件前,通常先用 Python 花几天时间编写一个基础原型来验证算法逻辑,确认无误后再用 C++ 投入重金重写。

2. 搭建 Python 开发环境

2. 搭建 Python 开发环境

2.1 下载并安装 Python 解释器

作为一门极其强大的跨平台编程语言,Python 能够完美运行在几乎所有主流操作系统之上。然而,正是由于这种广泛的兼容性,针对不同的操作系统(如 Windows、macOS、Linux)以及不同的底层 CPU 架构(如传统的 x86_64 架构与近年兴起的 ARM64 架构),其具体的下载包类型与底层配置流程存在着客观差异。本节的实操演示将主要以 Windows 操作系统为例进行展开。

2.1 下载并安装 Python 解释器

自 Python 3.13 版本起,Python 官方针对 Windows 平台进行了一次重大的安装机制改革,全面推出了 Python 安装管理器(Python Install Manager,简称 PyManager),并计划逐步淘汰传统的独立安装包。


因此,要在 Windows 上安装 Python 解释器,首先要安装 PyManager。

安装 PyManager 的三种方式

2.1 下载并安装 Python 解释器

❶ 通过 Microsoft Store 安装(适合初学者)

  1. 打开“Microsoft Store”;
  2. 搜索“Python”或“Python Install Manager”;
  3. 选择“Python Install Manager”并“获取”或“安装”。

这种方式的优点是操作系统会自动在后台为您完成环境变量的配置,并支持跟随系统进行静默更新。

Microsoft Store 中的 PyManager

2.1 下载并安装 Python 解释器

❷ 通过 WinGet 命令安装(极客推荐)

  1. 右键点击“开始”菜单,选择“终端”;
  2. 在命令行中输入以下命令并回车:

    
                                $ winget install 9NQ7512CXL7T
                            
  3. 系统会自动连接官方软件源,下载并完成 PyManager 的部署。
通过 WinGet 安装 PyManager

2.1 下载并安装 Python 解释器

❸ 手动下载安装(适合受限的网络环境)

  1. 使用浏览器访问 Python 官方网站的下载页面:

    https://www.python.org/downloads/windows/

  2. 在下载列表中,点击链接“Latest Python install manager”跳转到对应的下载位置,点击下载器进行下载,如下图所示。

2.1 下载并安装 Python 解释器

❸ 手动下载安装(适合受限的网络环境)

  1. 双击运行下载好的安装程序,将弹出如下图所示的安装界面。保持其中的“当准备就绪时启动”处于选中状态,单击“安装 Python”开始安装。
  2. 在弹出的命令行形态的安装界面中,当询问“Add commands directory to your PATH now?”和“Install CPython now? [Y/n]”时,均输入 y

2.1 下载并安装 Python 解释器

❹ 查看已安装的程序

安装成功后,会在 Windows 开始菜单中添加类似右图的 Python 项。其中:

  • Python 3.14(交互式命令行终端,仅在简单的测试时使用)
  • IDLE (Python 3.14)(官方轻量级集成开发环境,太简陋,一般不用)
  • Python 3.14 Manuals(本地离线说明手册,仅在离线时推荐使用)
  • Python 3.14 Online Documentation(官方在线文档,网页快捷方式)
  • PyDoc (Python 3.14)(本地文档服务器,同时可用来查阅电脑上安装的所有第三方库的文档)
  • pymanager.ini(安装管理器配置文件,请不要随意修改此文件)
开始菜单中的 Python 项

2.1 下载并安装 Python 解释器

❺ 验证安装是否成功

打开系统的命令行终端(按快捷键 Windows+R,在弹出的运行对话框中输入 cmd 并回车)。在弹出的黑色窗口中,输入以下命令并按下回车:


            $ python --version
            Python 3.x.y
        

如果屏幕上成功打印出了 Python 3.x.y(您安装的具体版本号),恭喜您,Python 已经正确安装!

在 Windows 下,你可以分别尝试使用 pypythonpython3 来检测哪些命令是有效的。由于 Windows 的“应用执行别名”机制,可能部分命令是无效的。一般在 Windows 命令行下,推荐使用 py 命令。可以通过在 Windows 开始菜单搜索框中输入“应用执行别名”,在弹出的设置页面中进行设置(设置过程略)。

2.1 下载并安装 Python 解释器 >> 扩展知识

除了以上手工安装 Python 外,在 Windows 10 或 Windows 11 系统中,你也可以从应用商店中搜索 Python 并进行安装,这样将来可在应用商店中更新 Python。

对于苹果的 macOS 操作系统,一般系统已经自带 Python,不过其版本较低。你也可以像上面一样自己从官网下载并手工安装 Python。对于高级用户,更建议你使用 Homebrew 来安装 Python,其更新起来也更方便。不过 Homebrew 在国内访问一般会遇到困难,你可能需要使用国内镜像(如中科大镜像清华镜像)。

对于 Linux 操作系统的各种发行版,一般已经为你安装好了 Python,或通过该系统的软件管理工具安装,不需要自己手动下载安装。

2.1 下载并安装 Python 解释器 >> 扩展知识

如果你使用 Python 主要是为了进行科学计算,那么也非常建议使用另外一个 Python 发行版:Anaconda,相对于前面介绍的 Python 官方发行版,该版本主要使用 conda 而不是 pip 作为 Python 的包管理工具。conda 不光能安装 Python 包,还能安装其他语言工具及其包;其对应的软件仓库 conda-forge 的内容要更加丰富;它还是一个管理包、依赖和环境的集成式解决方案。

可以通过两种途径使用 Anaconda:

  • Anaconda :一个集成式的开发平台,提供了用 Python 进行科学计算的一站式解决方案,其尺寸较大,自带了约 250 个常用的包。
  • Miniconda:相当于 Anaconda 的最小化版本,如果要安装更多的包,应使用其自带的 conda 通过命令进行手动安装。

2.1 下载并安装 Python 解释器 >> 扩展知识

由于有一套强大的命令行工具,许多程序员更喜欢使用 macOS、Linux 这些类 Unix 操作系统进行开发。如果你正在使用 Windows,又想尝试各种 *NIX 命令,可以通过以下几种途径实现:

  • 安装 Git for WindowsGit 几乎是开发必备的版本控制软件,而该软件是 Git 官方维护的 Windows 客户端,它基于 MSYS2 实现,自带了一个名称为 mintty 的终端,并移植了许多 Linux 命令。
  • 安装 MSYS2。该软件提供了 mintty 终端,以及大量移植的 Linux 工具和库,并且可以在安装后进一步安装各种开发工具,如通过 pacboy -S git python:p 命令安装 Git 和 Python。
  • 安装 WSL(适用于 Linux 的 Windows 子系统),该系统可让开发人员按原样运行 GNU/Linux 环境,如在 Windows 中运行 Ubuntu、Fedora、Debian 操作系统(一般是命令行形式),这些子系统通常自带 Python。

除此之外,也可以通过 Cygwin 或某种虚拟机来使用 *NIX 命令。随着你掌握的命令越来越多,开发效率也会逐渐提高。

2.3 安装 Python 开发工具

虽然 Python 的安装包提供了一个集成开发环境 IDLE,但它比较简陋,我们一般不用。我们需要寻求一种功能更加强大的开发工具,以进行源代码的编辑和项目的管理,这里推荐两种开发工具,你可以任选其一:

  • Visual Studio Code(简称 VS Code):微软主导开发的一个轻量级、功能强大、跨平台、开源且免费的代码编辑器。不管你做何种开发,建议你在自己的计算机上安装此软件,并熟悉其用法。
  • PyCharm:著名的开发工具提供商 JetBrains 开发的 Python 集成开发环境(Integrated Development Environment,IDE),被视为最强大的 Python 开发工具,其专业版是收费的,而社区版(Community)是免费的,如果有教育邮箱,或者是开源项目开发者,也可以申请免费使用教育版。我们是 Python 新手,一般社区版已经够用了。

由于更加轻量、操作教简单,本课程教学过程中主要使用 VS Code,不过你使用 PyCharm 也是完全可行的。

2.3 安装 Python 开发工具

如果你选择使用 VS Code,在完成安装后,需要还需要为其安装 Python 扩展,具体步骤见下图。安装 Python 扩展时也同时会安装其他扩展,请不要删除。

为 VS Code 安装 Python 扩展

2.3 安装 Python 开发工具

另外,同时建议在 VS Code 的扩展商店中搜索以下扩展并安装:

  • 代码分析工具(Linter):它就像一个严厉的语文老师,会在您打字时实时检查语法错误或不符合规范的写法,并在代码下面画波浪线。常见的有 Pylint、flake8 等。
  • 代码格式化工具(Formatter):它就像一个排版机器。当您按下格式化快捷键(如 Shift+Alt+F)时,它会自动帮您把错乱的空格对齐、把过长的代码折行,让代码瞬间变得赏心悦目。常见的有 Black、autopep8 等。

极客推荐:近年来,Python 社区爆火了一款名为 Ruff 的超高速工具。它由 Rust 语言编写,将 Linter 和 Formatter 合二为一,速度比传统工具快数十倍。如果您不知道选哪个,直接在 VS Code 扩展里搜索并安装 Ruff 即可。

2.3 安装 Python 开发工具

当用 VS Code 打开 Python 项目目录时,可以看到类似如下界面。请务必确保右下角选中了想要的 Python 解释器。

VS Code 界面

2.3 安装 Python 开发工具

汉化 VS Code

  • 操作步骤:点击左侧边栏的“扩展”图标(或使用快捷键 Ctrl+Shift+X)打开扩展商店,在搜索框中输入 Chinese。在搜索结果中,找到由 Microsoft 官方提供的 “Chinese (Simplified) (简体中文) Language Pack for Visual Studio Code”,点击“Install(安装)”。
  • 生效方式:安装完成后,VS Code 右下角会弹出一个提示框,点击 “Change Language and Restart”(更改语言并重启)。软件瞬间重启后,所有的菜单、命令面板和设置界面就都变成亲切的简体中文了。

2.3 安装 Python 开发工具

消除“工作区信任”弹窗

当您使用 VS Code 第一次打开某个包含代码的文件夹时,屏幕中央往往会弹出一个巨大的警告窗口,询问您:“是否信任此文件夹中文件的作者?”这是 VS Code 的一项“工作区信任(Workspace Trust)”安全机制。只有点击“信任”后,代码分析、代码调试等高级功能才会激活。如果您觉得每次打开新文件夹都要点击一次非常繁琐,可以通过设置永久关闭此安全提示。

  • 操作步骤:在 VS Code 中按下快捷键 Ctrl+,(Control 加逗号)打开“设置”面板。在顶部的搜索框中输入 trust,找到 “Security > Workspace > Trust: Enabled” 选项。取消勾选该复选框,并在提示弹出时选择重启 VS Code。重启后,无论在何处打开任何文件夹,系统都不会再弹窗阻拦,而是默认给予完全信任。
  • 风险提示:该操作将带来安全风险,请务必保证您只用 VS Code 打开您自己编写的代码,或者是从绝对权威、可信的渠道获取的工程文件。

2.3 安装 Python 开发工具

许多高级的功能需要通过 Python 命令来访问。通过菜单“查看”>>“命令面板...”可以打开命令面板,也可通过组合快捷键 Ctrl+Shift+P 打开,然后在其中输入 python,就可以看到并选择执行各种 Python 命令。

命令面板中的 Python 命令

2.3 安装 Python 开发工具

如果你选择使用 PyCharm,在完成安装并首次打开时,会提示你要安装某些更新,请按提示点击安装即可。

当使用 PyCharm 创建 Python 项目时,一般需要指定指定一个虚拟环境,如 Virtualenv、Pipenv、Poetry、Conda,虚拟环境可以具体指定我们的项目依赖特定的 Python 解释器、包和模块版本。目前选用默认的 Virtualenv 即可。

PyCharm 起始界面
用 PyCharm 新建 Python 项目

3 编写第一个 Python 程序

3.1 计算机编程相关知识

计算机程序(Computer program)是指令(Instruction)的集合,这些指令可以被计算机(精确地)执行,从而完成特定的任务。

计算机程序员首先使用某种编程语言编写人类易读的源代码,然后借助编译器将其整体编译为可由计算机直接执行的机器码,或借助解释器逐行执行计算机程序。

源代码(Source code),是指一系列人类可读的计算机语言指令,其最常用的格式是文本文件

计算机程序、库和相关数据的集合称为软件 (Software)。

3.1 计算机编程相关知识

语句(Statement)是指令式编程语言中最小的独立元素,表达程序要执行的一些动作。用这种语言编写的程序是由一个或多个语句序列组成的。不能再包含其他语句的语句被称为简单语句,可以包含其他语句的语句被称为复合语句

表达式(Expression)是编程语言中的语法实体,可以对其求值以确定其值。表达式是一个或多个常量、变量、函数和运算符的组合。解释并计算表达式以产生另一个值的过程,叫作求值

语句和表达式都是编程语言的语法实体,他们的主要区别是语句没有值,表达式有值。

3.1 计算机编程相关知识

程序设计(Programming)是设计和构建一个可执行的计算机程序以达成特定的计算结果和执行特定任务的过程。程序设计往往以某种程序设计语言为工具,给出这种语言下的程序。程序设计过程一般包括分析、设计、编码、测试、调试等不同阶段。

编程语言(Programming language)是用来定义计算机程序的形式语言。它是一种被标准化的交流技巧,用来向计算机发出指令。一种能够让程序员准确地定义计算机所需要使用数据的计算机语言,并精确地定义在不同情况下所应当采取的行动。

3.1 计算机编程相关知识

脚本语言(Scripting language)是为了缩短传统的“编写、编译、链接、运行”(edit-compile-link-run)过程而创建的计算机编程语言。早期的脚本语言经常被称为批处理语言或工作控制语言。一个脚本通常是解释运行而非编译。

脚本语言通常都有简单、易学、易用的特性,目的就是希望能让程序员快速完成程序的编写工作。

脚本通常以文本保存,只在被调用时进行解释或编译。

3.2 使用交互模式编程

Python 有两种运行模式,分别是:

  • 交互模式:像聊天一样,你输入一句,计算机马上回答一句。;
  • 源文件模式(或称脚本模式):写完一整篇文章(脚本),交给计算机一次性读完并执行。

3.2 使用交互模式编程

在终端(或称命令行、命令提示符)输入 pypython,进入解释器时,首先显示欢迎信息、版本信息、版权声明,然后才是提示符,这时解释器在交互模式中运行。

在交互模式中,会显示主提示符 >>>,提示输入下一条指令或表达式,输入代码的结果一般会在按回车键后在下一行显示;输入连续行时,显示次要提示符,默认是三个点 ...

Python 交互模式

3.2 使用交互模式编程

由于交互模式会自动打印输入表达式的结果,从而可以把 Python 解释器当计算器一样使用。如下示例:


            >>> 2 + 2
            4
            >>> (50 - 5*6) / 4
            5.0
            >>> 8 / 5  # 除法运算永远返回一个浮点值
            1.6
            >>> 5 ** 2  # 两个星号 ** 组成的运算符用于计算乘方
            25
            >>> width = 33.3  # 等号运算符用于赋值
            >>> height = 2
            >>> width * height
            66.6
            >>> exit()  # 通过调用该函数退出交互模式
        

键入 exit() 再按回车键,或按 Ctrl-Z 再按回车键(Windows 下),或按 Ctrl-D 键(Linux 或 macOS 下),可退出交互模式。

3.2 使用交互模式编程

更多练习:


            >>> print('Hello, world!')
            Hello, world!
            >>> x = 33
            >>> print(x)
            33
            >>> x
            33
            >>> v = "foo = 33"
            >>> v
            'foo = 33'
            >>> for x in "Xi'an":
            ...    print(x)
            ...
            X
            i
            '
            a
            n
        

3.2 使用交互模式编程

课堂练习:

已知 a = 24.5, b = 33.7, c = 3.1,求

$$\frac{-b+\sqrt{b^{2}-4ac} }{2a}$$

结果:


            >>> a = 24.5
            >>> b = 33.7
            >>> c = 3.1
            >>> (-b + (b**2 - 4*a*c)**0.5) / (2*a)
            -0.09913258451513092
        

3.2 使用交互模式编程

交互模式的一些注意事项:

  • 只能输入 Python 命令,不能使用 cdlsdir 这类操作系统命令;
  • 交互模式一次运行一个语句;
  • 由于可以自动打印表达式的结果,因此一般不需要输入完整的 print 打印语句;
  • 如果输入的语句为复合(多行)语句,则提示符会在第二行由 >>> 变为 ...,请留意这种变化;
  • 如果要结束一个复合语句,请用一个空行结束(连按两次回车键)。(在脚本模式下不需要用空行表示复合语句结束。因此,如果要把多行代码复制到交互模式下运行,请预先在每个复合语句后方加一个空行。)

交互模式一般用于实验练习和测试程序组件的场景。

3.3 使用源文件模式编程

交互模式不能保存代码,因此对于大多数编程情景都不适用,这时就需要使用源文件模式。源文件模式将源代码(脚本)保存在后缀为 .py 的源文件(脚本文件)中,然后命令行中通过 python 命令调用该源文件。

任务:编写 Hello, World 程序。

注:Hello, World 程序是指在电脑屏幕显示“Hello, world!”(你好,世界!)字符串的计算机程序。相关的程序通常都是每种电脑编程语言最基本、最简单的程序,也会用作示范一个编程语言如何运作。同时它亦可以用来确认一个编程语言的编译器、程序开发环境及运行环境是否已经安装妥当。因为写法简单可见,这也是很多初学者首次接触编程语言时会撰写的程序。

3.3 使用源文件模式编程

我们的第一个任务是在特定目录创建一个名称为 hello.py 的源文件,大家可以讨论一下有多少种方法创建此文件。一般我们可以打开 VS Code,在其中新建一个文件,输入如下内容,然后将其保存到特定目录,取名为 hello.py


            print('Hello, world!')
        

(1)通过命令行执行 Python 脚本

假如我们保存的文件路径是 C:\pycode\hello\hello.py,需要通过如下命令运行该文件:


            % cd C:\pycode\hello  # 改变工作目录为 hello.py 文件所在目录
            % python filename.py  # 执行 filename.py 脚本
            Hello, world!
        

3.3 使用源文件模式编程

(2)在开发环境中执行 Python 脚本

以上步骤对你来说可能显得麻烦,如果你已经按前面步骤成功配置了 VS Code 或 PyCharm 开发环境,那么可以不用离开该开发环境执行 Python 脚本。

如在 VS Code 中,可以通过点击编辑器右上角的三角形的按钮运行当前打开的文件。

在 PyCharm 中,第一次运行需要通过 Run 菜单中的 Run... 子菜单,在弹出的窗口中选择某个源文件作为项目执行的入口文件。后续直接点击该菜单中中第一项 Run '<filename>' 或按 Ctrl-R 即可快速地执行项目。

3.3 使用源文件模式编程

(3)将 Python 脚本文件当成可执行文件执行

在 Windows 下运行 Python 脚本

Python 脚本可以像其他脚本(如 Linux 的 Shell 脚本)一样被直接执行。

在 Windows 中,只要用 Python 程序打开对应的脚本文件,就自动执行该脚本文件了,如右图所示。不过因为我们的程序只是简单地在命令行打印一串字符就退出了,你看到的将只是一闪而过的命令行窗口。要保持窗口不退出,可以在代码的末尾加一行 input(),表示等待用户的输入,这时需要用户按回车键以后窗口才退出。

(3)将 Python 脚本文件当成可执行文件执行 >> 扩展知识

在类 Unix 中,我们可以把 Python 源文件声明为可执行的脚本:


            #!/opt/homebrew/bin/python3
            print('Hello, world!')
        

其中第一行开头的 #! 组合字符被叫作 Shebang,其后跟 Python 解释器的路径。想要避免硬编码 Python 解释器的路径,可以写为:


            #!/usr/bin/env python3
            print('Hello, world!')
        

然后,为当前用户添加执行该脚本的权限:


            $ chmod u+x hello.py
        

这时可以在命令行直接运行此脚本了:


            $ ./hello.py
        

3.4 创建一个虚拟环境

上一节创建的 Python 源文件和项目依赖的执行环境(Python 解释器和依赖包)是全局的,而一个大型的软件项目所依赖的 Python 解释器和依赖包的版本一般不应该随着全局环境更改,即项目的依赖应和环境隔离,这时在创建项目时,应该创建项目的虚拟环境。可通过以下步骤创建虚拟环境:

❶ 创建一个文件夹,用 VS Code 开打此文件夹。此操作可通过多种途径实现:

通过 VS Code 的文件菜单打开文件夹
在文件资源管理器中用 VS Code 打开文件夹

3.4 创建一个虚拟环境

❷ 在 VS Code 中,通过 Ctrl+Shift+P 打开命令面包,在其中键入 python 显示各个 Python 命令,然后选择其中的“创建环境”;有两种环境可供选择,分别是 Venv 和 Conda,这里根据具体项目特征选择,本教程中一般选择 Venv;接下来会进一步让选择 Python 解释器路径,根据需要选择即可。

使用创建环境命令
可供选择的环境

本教程的 Python 项目都很简单,通常不需要创建虚拟环境。

4. 基础语法

4.1 注释

注释是源代码中对代码进行解释的部分,或表示临时不需要运行的代码片段,注释会被解释器忽略。Python 中的注释以 # 开头,如下所示:


            # 这是一行注释
            # 这是另一行注释
            print('Hello, world!')  # 这是代码末尾的注释,# 号前面一般放两个空格
            # print('Hello, world!')  # 此行代码将不会被执行
        

小技巧:在许多代码编辑器中,可以按 Ctrl - /(macOS 为 Command - / )键将当前行或选中行变为注释,当这些行已经是注释时,则会取消注释。

4.1 注释

Python 不支持多行注释(或称块注释),需要多行注释,请在每行开头插入一个 #。另外,还有一种变通的使用多行注释的方法:由于 Python 将忽略未分配给变量的字符串文字,因此可以在代码中添加多行字符串(三引单引号或双引号对),将多行字符串的内容当作注释:


            """
            这相当于
            一个
            多行注释
            """
            print('Hello, world!')
        

4.2 缩进

处在行首的空白字符(空格和水平制表符)称为缩进,Python 使用缩进来划分代码块(其他语言多是使用大括号 { } 或关键字来划分)。当语句以冒号 : 结尾时,其后一行或多行缩进的语句视为代码块。如下所示:


            # 打印一个整数的绝对值
            v = -33
            if v >= 0:
                print(v)
            else:
                print(-v)
        

按照惯例,应该使用 4 个空格的缩进形式。

4.3 模块

简单来说,每个以扩展名 .py 结尾的源文件都是一个模块。模块中一般包含可重用的变量、类型和函数。其他代码可以通过导入一个模块而读取使用这个模块中定义的内容。Python 本身有一个庞大的默认安装的模块库(称为标准库),要使用一个模块,必须先导入它。


            import math
            print(math.pi)
        

我们也可以在交互模式下通过导入模块而运行某个源文件:


            >>> import hello # 不可输文件的 .py 后缀
            Hello, world!
        

不过每次运行交互模式,只能导入某个源文件一次。

4.4 简单输入和输出

内置的 print 函数用于将内容格式化显示在标准输出上(一般指的是屏幕显示器)。该函数可以接受多个参数,各个参数间以英文逗号 , 分割;生成的输出中,各个参数间自动加一个空格。

内置的 input 函数用于获取来自标准输入设备(一般指键盘)的输入,并保存成一个字符串。该函数里可以提供一个字符串,用来给用户进行输入提示。


            name = input('请输入你的名字:')
            city = input('你来自哪个城市?')
            # 请对比以下两行输出结果的差异:
            print('欢迎您!来自', city, '的', name, '。')
            print('欢迎您!来自' + city + '的' + name + '。')
        

4.5 一个稍微更复杂点的示例

斐波那契数列由 0 和 1 开始,之后的每个元素(斐波那契数)是由之前的两数相加而得出。请计算并打印斐波那契数列中的前 n 个数


            fib0 = 0
            fib1 = 1
            n = int(input('你想要生成多少个菲波拿契数? '))
            if n >= 1:
                print(fib1)
                for i in range(n-1):
                    temp = fib0 + fib1
                    fib0 = fib1
                    fib1 = temp
                    print(fib1)
        

4.5 一个稍微更复杂点的示例

程序的运行结果如下:


            % py fib.py
            你想要生成多少个菲波拿契数? 5
            1
            1
            2
            3
            5
        

  谢谢!

返回目录
返回首页