2023年11月27日发(作者:)

python脚本编写

什么是脚本

Python 是⼀种“脚本语⾔”。脚本,对应的英⽂是:script。⼀般⼈看到script这个英⽂单词,或许想到的更多的是:电影的剧本,就是

⼀段段的脚本,所组成的。电影剧本的脚本,决定了电影中的⼈和物,都做哪些事情,怎么做。⽽计算机中的脚本,决定了:计算机中的操

作系统和各种软件⼯具,要做哪些事情,以及具体怎么做。

脚本 vs 程序

在解释器中进⾏实验

安装 Python 3

我们将使⽤最新版 Python - Python 3。虽然 Python 2 在很多场合依然会⽤到,但是已经不再接受更新。为了与后续 Python 改进保持

兼容,建议使⽤ Python 3。

为了完成这⼀步骤,你需要使⽤命令⾏。我们将详细介绍所有细节部分,因此如果你从未使⽤过命令⾏,也没关系!如果你想深⼊了解命令

⾏,请参阅我们的 ,详细了解 Unix Shell。

你的计算机上已经有 Python 吗?

Mac OS X 和 Linux 通常已经⾃带了⼀个版本号⽐较⽼的 Python 2,请不要对该 Python 做出任何修改或者删除,因为操作系统的部分

组件依赖它,修改或者删除它可能会影响到操作系统的某些功能。但是单独安装 Python 3,也不会对系统有任何影响。

Windows 通常没有⾃带 Python,但是你可以在安装之前,先检查下系统是否安装了 Python。⾸先检查是否已经安装了 Python 3。

打开终端或命令⾏。在 Windows 上,进⼊命令提⽰符窗⼝的⽅式是转到运⾏(同时按下带有windows图标的win键+字母r),然后输

cmd 并按下 Enter 键。

在新的终端或命令提⽰符窗⼝中,输⼊ python --version 或者 python3 --version

$ python --version

然后按下 Enter 键。

注意:这⾥的符号在这⾥只是⼀个提⽰,表⽰命令⾏的开始,它会⾃动显⽰在屏幕上。这不是命令的⼀部分。

$

系统可能会显⽰已安装的 Python 版本是 Python 2.7.9。在这种情况下,表明你已经安装了 Python 2,你需要按照下⾯⼏个部分中的步骤

操作,更新到 Python 3。

如果版本号以 3 开头,则表明你已经安装了 Python 3!请勿再次安装 Python!

此外,你可能会看到错误消息。暂时不⽤管该错误,直接尝试下⾯⼏个部分中的步骤。

⽅法 1:安装 Anaconda

对于数据分析学员,强烈建议采⽤这种 Python 安装⽅式。

如果你对数据科学⽅⾯的 Python 感兴趣,强烈建议安装 ,即使你已经在计算机上安装了 Python。如果你尚未设置计算机,请参阅我们

的 简短课程设置计算机。你将学习如何为这门课程设置环境,需要安装 Python 3.6、Jupyter Notebook、NumPy、pandas、

Matplotlib 和 Seaborn。

Anaconda 包含⼤量专门针对数据科学的库和软件分发版本,某些库和软件⽐较难安装。同时,你可以很轻松地在计算机上,以便在不同版

本的 Python 和软件包之间快速切换!例如,如果你正在处理的某个项⽬需要 Python 3.6 以及不同的依赖项,那么 Anaconda 的环境管

理功能可以提供帮助。上⾯给出链接的 Anaconda 和 Jupyter notebook 免费课程讲授了如何处理这类情形。

如果你的英语不是很熟练,你也可以在中⽂⽹站上搜索安装Anaconda的教程,⽐如

⽅法 2:安装 Python

对使⽤ Python 进⾏数据分析不感兴趣的学员建议采⽤此⽅法。

如果你使⽤的是 Windows 设备,并且已经安装了 Python,但是未选中上述选项,则需要将 Python 添加到 PATH。这样的话,当你输

python 时,可以告诉命令⾏运⾏ Python 3。如果你未选中上述选项,或者转到下⼀阶段时似乎不可⾏,请按照 将 Python 添加到

PATH。

完成安装程序中的所有步骤操作或编译了源代码后,则安装完毕,你可以在⾃⼰的计算机上使⽤ Python 3 了!

运⾏ Python 脚本

运⾏ Python 脚本!!

1. 下载在本页⾯底部给出链接的⽂件 first_(你可能需要右击它,并存储为⽂件),然后将该⽂件移到计算机上的相应⽬录下。

如果你还没有为这门课程创建⼀个⽬录的话,可以乘机创建⼀个⽬录。

2. 打开终端并使⽤ cd 命令转到包含所下载⽂件的⽬录。

3. 现在你已经位于该⽂件所在的⽬录,可以运⾏该⽂件了,⽅法是输⼊ python first_,然后按下 Enter 键。

提⽰:⽂件下载后,_ 会变成- ,你可能需要改成python

如果你看到终端输出了以下消息,则表明你成功地运⾏了脚本:

Congratulations on running this script!!

辅助材料

编程环境设置

配置 Python 编程环境

你已经看到我的设置,现在花时间在你⾃⼰的计算机上熟悉下界⾯。 下⾯是⼀些我们推荐的⽂本编辑器,你可以尝试⼀个看看。

对于 Mac

对于 Windows

设置好屏幕,打开⽂本编辑器、终端/命令⾏,并在⽹络浏览器中打开优达学城课堂,以便与你的 Python 脚本交互。调整显⽰器选项,找

到你觉得最舒适的显⽰效果,并看看能否找到 tab-to-four-spaces 选项 - 该选项对于 Python 缩进来说⾮常有⽤。

修改 Python 脚本

⾃⼰编写脚本

在⽂本编辑器中打开全新的空⽂件,命名该⽂件并将其保存到放置 Python 课程⽂件的⽂件夹中。将以下代码放⼊该⽂件⾥。

how_many_snakes = 1

snake_string = """

Welcome to Python3!

____

/ . .

---<

/

__________/ /

-=:___________/

假设你是⼀名⽼师,需要向每位学⽣发⼀条消息,提醒他们未交的作业和分数是多少。你知道每名学⽣的姓名,没交的作业份数和分数,这

些数据保存在了电⼦表格中,你只需将这些输⼊插⼊你想到的以下消息中即可:

Hi [insert student name],

This is a reminder that you have [insert number of missing assignments] assignments left to submit before you can

graduate. Your current grade is [insert current grade] and can increase to [insert potential grade] if you submit all

assignments before the due date.

你可以将此消息复制粘贴后发送给每位学⽣,并且每次⼿动插⼊相应的值。但是你要写⼀个程序来帮助你完成这⼀流程。

写⼀个完成以下操作的脚本:

1. 请求⽤户输⼊三次。⼀次是名字列表,⼀次是未交作业数量列表,⼀次是分数列表。使⽤该输⼊创

namesassignmentsgrades 列表。

2. 使⽤循环为每个学⽣输出⼀条信息并包含正确的值。潜在分数是 2 乘以未交作业数加上当前分数。

下⾯是在终端内成功运⾏该脚本的⽰例。

错误和异常

当 Python ⽆法解析代码时,就会发⽣语法错误,因为我们没有遵守正确的 Python 语法。当你出现拼写错误或第⼀次开始学习

Python 时,可能会遇到这些错误。

当在程序执⾏期间出现意外情况时,就会发⽣异常,即使代码在语法上正确⽆误。Python 有不同类型的内置异常,你可以在错误消息

中查看系统抛出了什么异常。

Try 语句

我们可以使⽤ try 语句处理异常。你可以使⽤ 4 个⼦句(除了视频中显⽰的⼦句之外还有⼀个⼦句)。

try:这是 try 语句中的唯⼀必需⼦句。该块中的代码是 Python 在 try 语句中⾸先运⾏的代码。

except:如果 Python 在运⾏ try 块时遇到异常,它将跳到处理该异常的 except 块。

else:如果 Python 在运⾏ try 块时没有遇到异常,它将在运⾏ try 块后运⾏该块中的代码。

finally:在 Python 离开此 try 语句之前,在任何情形下它都将运⾏此 finally 块中的代码,即使要结束程序,例如:如果 Python 在运

exceptelse 块中的代码时遇到错误,在停⽌程序之前,依然会执⾏此finally 块。

指定异常

我们实际上可以指定要在 except 块中处理哪个错误,如下所⽰:

try:

# some code

except ValueError:

# some code

现在它会捕获 ValueError 异常,但是不会捕获其他异常。如果我们希望该处理程序处理多种异常,我们可以在 except 后⾯添加异常元

组。

try:

# some code

except (ValueError, KeyboardInterrupt):

# some code

或者,如果我们希望根据异常执⾏不同的代码块,可以添加多个 except 块。

try:

# some code

except ValueError:

# some code

except KeyboardInterrupt:

# some code

练习解决⽅案:处理除以零的情形

def create_groups(items, num_groups):

try:

size = len(items) // num_groups

Creating

6 groups returned.

[0, 1, 2, 3, 4]

[5, 6, 7, 8, 9]

[10, 11, 12, 13, 14]

[15, 16, 17, 18, 19]

[20, 21, 22, 23, 24]

[25, 26, 27, 28, 29]

[30, 31]

Creating

WARNING: Returning empty list. Please use a nonzero number.

0 groups returned.

访问错误消息

在处理异常时,依然可以如下所⽰地访问其错误消息:

try:

# some code

except ZeroDivisionError as e:

# some code

print("ZeroDivisionError occurred: {}".format(e))

应该会输出如下所⽰的结果:

值给变量 file_data

4. 当我们处理完⽂件后,使⽤ close ⽅法释放该⽂件占⽤的系统资源。

写⼊⽂件

f = open('my_path/my_', 'w')

("Hello there!")

()

1. 以写⼊ ('w') 模式打开⽂件。如果⽂件不存在,Python 将为你创建⼀个⽂件。如果以写⼊模式打开现有⽂件,该⽂件中之前包含的所

有内容将被删除。如果你打算向现有⽂件添加内容,但是不删除其中的内容,可以使⽤附加 ('a') 模式,⽽不是写⼊模式。

2. 使⽤ write ⽅法向⽂件中添加⽂本。

3. 操作完毕后,关闭⽂件。

With

Python 提供了⼀个特殊的语法,该语法会在你使⽤完⽂件后⾃动关闭该⽂件。

with open('my_path/my_', 'r') as f:

file_data = ()

with 关键字使你能够打开⽂件,对⽂件执⾏操作,并在缩进代码(在此⽰例中是读取⽂件)执⾏之后⾃动关闭⽂件。现在,我们不需要

调⽤ () 了!你只能在此缩进块中访问⽂件对象 f。

导⼊本地脚本

我们实际上可以导⼊其他脚本中的 Python,如果你处理的是⼤型项⽬,需要将代码整理成多个⽂件并重复利⽤这些⽂件中的代码,则导⼊

脚本很有⽤。如果你要导⼊的 Python 脚本与当前脚本位于同⼀个⽬录下,只需输⼊ import,然后是⽂件名,⽆需扩展名 .py。

import useful_functions as uf

_five([1, 2, 3, 4])

使⽤ if main

为了避免运⾏从其他脚本中作为模块导⼊的脚本中的可执⾏语句,将这些⾏包含在 if __name__ == "__main__" 块中。或者,将它们包含在

函数 main() 中并在 if main 块中调⽤该函数。

每当我们运⾏此类脚本时,Python 实际上会为所有模块设置⼀个特殊的内置变量 __name__。当我们运⾏脚本时,Python 会将此模块识

别为主程序,并将此模块的 __name__ 变量设为字符串 "__main__"。对于该脚本中导⼊的任何模块,这个内置 __name__ 变量会设为该模

块的名称。因此,条件 if __name__ == "__main__"会检查该模块是否为主程序。

尝试⼀下!

下⾯是我在上述视频中使⽤的代码。请在同⼀⽬录下创建这些脚本,并在终端⾥运⾏这些脚本!实验 if main 块并访问导⼊模块中的对象!

#

import useful_functions as uf

scores = [88, 92, 79, 93, 85]

mean = (scores)

curved = _five(scores)

mean_c = (curved)

print("Scores:", scores)

print("Original Mean:", mean, " New Mean:", mean_c)

print(__name__)

print(uf.__name__)

# useful_

def mean(num_list):

我们的推荐模块

Python 标准库包含⼤量模块!为了帮助你熟悉那些实⽤的模块,我们在下⾯筛选了⼀些我们推荐的 Python 标准库模块并解释为何我们喜

欢使⽤它们!

:对于读取 csv ⽂件来说⾮常便利

:常见数据类型的实⽤扩展,包括 OrderedDictdefaultdictnamedtuple

:⽣成假随机数字,随机打乱序列并选择随机项

:关于字符串的更多函数。此模块还包括实⽤的字母集合,例如 (包含所有字符都是有效数字的字符串)。

:通过正则表达式在字符串中进⾏模式匹配

:⼀些标准数学函数

:与操作系统交互

os 的⼦模块,⽤于操纵路径名称

:直接使⽤ Python 解释器

:适⽤于读写 json ⽂件(⾯向⽹络开发)

希望你能⽤上这些模块!

导⼊模块技巧

还有⼀些在不同情形下很有⽤的其他形式的 import 语句。

1. 要从模块中导⼊单个函数或类:

from module_name import object_name

第三⽅库

独⽴开发者编写了成千上万的第三⽅库!你可以使⽤ pip 安装这些库。pip 是在 Python 3 中包含的软件包管理器,它是标准 Python 软件

包管理器,但并不是唯⼀的管理器。另⼀个热门的管理器是 Anaconda,该管理器专门针对数据科学。

要使⽤ pip 安装软件包,在命令⾏中输⼊“pip install”,然后是软件包名称,如下所⽰:pip install package_name。该命令会下载并安装

该软件包,以便导⼊你的程序中。安装完毕后,你可以使⽤从标准库中导⼊模块时⽤到的相同语法导⼊第三⽅软件包。

使⽤ ⽂件

⼤型 Python 程序可能依赖于⼗⼏个第三⽅软件包。为了更轻松地分享这些程序,程序员经常会在叫做 的⽂件中列出项

⽬的依赖项。下⾯是⼀个 ⽂件⽰例。

beautifulsoup4==4.5.1

bs4==0.0.1

pytz==2016.7

requests==2.11.1

该⽂件的每⾏包含软件包名称和版本号。版本号是可选项,但是通常都会包含。不同版本的库之间可能变化不⼤,可能截然不同,因此有必

在解释器中,提⽰符窗⼝中最后⼀⾏的值将⾃动输出。如果有多⾏代码需要输出值,依然需要使⽤ print。

如果你开始定义函数,你将在提⽰符窗⼝中看到变化,表⽰这是可以继续的⾏。在定义函数时,你需要⾃⼰添加缩进。

>>> def cylinder_volume(height, radius):

... pi = 3.14159

... return height * pi * radius ** 2

解释器的不⾜之处是修改代码⽐较⿇烦。如果你在输⼊该函数时出现了拼写错误,或者忘记缩进函数的主体部分,⽆法使⽤⿏标将光标点到

要点击的位置。需要使⽤箭头键在代码⾏中来回移动。有必要了解⼀些实⽤的快捷⽅式,例如移到⼀⾏的开头或结尾。

注意,我可以引⽤我在解释器中之前定义的任何对象!

>>> cylinder_volume(10, 3)

282.7431

⼀个实⽤技巧是在交互式提⽰符窗⼝中使⽤上下箭头键循环浏览最近的命令。这样可以重新运⾏或修改已经尝试的代码。

要退出 Python 交互式解释器,使⽤命令 exit() 或在 mac/linux 上按下 ctrl+D,在 windows 上按下 ctrl+Z,然后按下 Enter 键。

IPython

实际上有⼀个代替默认 python 交互式解释器的强⼤解释器 IPython,它具有很多其他功能。

在线资源的优先级

虽然有很多关于编程的在线资源,但是并⾮所有资源都是同等⽔平的。下⾯的资源列表按照⼤致的可靠性顺序排序。

1. - 这部分官⽅⽂档给出了 Python 的语法和标准库。它会举例讲解,并且采⽤的语⾔⽐主要⽂档的要浅显易懂。确保阅读该⽂档的

Python 3 版本!