iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 脚本编写
  • 694
分享到

Python 脚本编写

脚本Python 2023-01-31 01:01:18 694人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

学习内容: python 安装和环境设置 运行和修改 Python 脚本 与用户输入交互 处理异常 读写文件 导入本地、标准和第三方模块 在解释器中进行实验 检查计算机是否安装了 Python ? 在终端窗口输入如下指令,并

学习内容:

  • python 安装和环境设置
  • 运行和修改 Python 脚本
  • 与用户输入交互
  • 处理异常
  • 读写文件
  • 导入本地、标准和第三方模块
  • 在解释器中进行实验

检查计算机是否安装了 Python ?

在终端窗口输入如下指令,并按回车

python --version

系统可能会显示已安装的 Python 版本是 Python 2.7.9。在这种情况下,表明你已经安装了 Python 2。如果版本号以 3 开头,则表明你已经安装了 Python 3!请勿再次安装 Python!

下载/安装 Anaconda

如果你对数据科学方面的 Python 感兴趣,强烈建议安装Anaconda,即使你已经在计算机上安装了 Python。

Anaconda 和 Jupyter notebook 已经成为数据分析的标准环境。简单来说,Anaconda是包管理器和环境管理器,Jupyter notebook 可以将数据分析的代码、图像和文档全部组合到一个WEB文档中。

Anaconda 安装教程

下载/安装 Python

Python 下载,找到适用于你的操作系统、下载 3 开头的最新版本。

如果你使用的是 windows 设备,确保在安装过程中选中 Add Python 3.5 to PATHAdd Python to environment variables 选项,这样可以确保从命令行提示符窗口中访问 Python。

如果你使用的是 Windows 设备,并且已经安装了 Python,但是未选中上述选项,则需要将 Python 添加到 PATH。这样的话,当你输入 python 时,可以告诉命令行运行 Python 3。如果你未选中上述选项,或者转到下一阶段时似乎不可行,请按照 Python 文档中的这些说明将 Python 添加到 PATH。

python3 下载并配置好后,在终端窗口检查是否配置成功

...$ python --version
Python 3.6.6 :: Anaconda custom (64-bit)

在终端窗口使用 cd 命令转到包含 .py 的 python 文件目录,运行该文件,查看结果

...$ cd ..
...$ cd /udacity/python
...$ ls
first_script.py untitled.py
...$ python first_script.py
Congratulations on running this script!!

推荐的文本编辑器

  • Sublime Text

下载并安装好后,需要将我们新下载的 Python3 与 Sublime 编辑器关联。可以参考文章 Mac下Sublime Text3配置Python3开发环境

我们可以使用内置函数 input 获取用户的原始输入,该函数接受一个可选字符串参数,用于指定在要求用户输入时向用户显示的消息。

name = input("Enter your name: ")
print("Hello there, {}!".fORMat(name.title()))

input 函数获取用户输入的任何内容并将其存储为字符串。如果你想将输入解析为字符串之外的其他类型,例如整数(如以下示例所示),需要用新的类型封装结果并从字符串转换为该类型。

num = int(input("Enter an integer"))
print("hello" * num)

我们还可以使用内置函数 eval 将用户输入解析为 Python 表达式。该函数会将字符串评估为一行 Python 代码

result = eval(input("Enter an expression: "))
print(result)
# 输出
...$ python untitled.py
Enter an expression: 3*2 
6

示例

  1. 请求用户输入三次。一次是名字列表,一次是未交作业数量列表,一次是分数列表。使用该输入创建 namesassignmentsgrades 列表。
  2. 使用循环为每个学生输出一条信息并包含正确的值。潜在分数是 2 乘以未交作业数加上当前分数。
names = (input("Enter names separated by commas: ")).split(",")
assignments = ((input("Enter assignment counts separated by commas: "))).split(",")
grades = ((input("Enter grades separated by commas: "))).split(",")

result = """
Hi {},\n\nThis is a reminder that you have {} assignments left to \
submit before you can graduate. Your current grade is {} and can increase \
to {} if you submit all assignments before the due date.\n\n 
"""

for name, assignment, grade in zip(names, assignments, grades):
    print(result.format(name, assignment, grade, 2*int(assignment)+int(grade) ))
# 命令窗口输入输出
...$ python untitled.py
Enter names separated by commas: Chandler bing,Phoebe Buffay,Monica Geller,Ross Geller
Enter assignment counts separated by commas: 3,6,0,2
Enter grades separated by commas: 81,77,92,88

Hi Chandler bing,

This is a reminder that you have 3 assignments left to submit before you can graduate. Your current grade is 81 and can increase to 87 if you submit all assignments before the due date.

Hi Phoebe Buffay,

This is a reminder that you have 6 assignments left to submit before you can graduate. Your current grade is 77 and can increase to 89 if you submit all assignments before the due date.

Hi Monica Geller,

This is a reminder that you have 0 assignments left to submit before you can graduate. Your current grade is 92 and can increase to 92 if you submit all assignments before the due date.

Hi Ross Geller,

This is a reminder that you have 2 assignments left to submit before you can graduate. Your current grade is 88 and can increase to 92 if you submit all assignments before the due date.   
  • 错误,当 Python 无法解析代码时,就会发生语法错误,因为我们没有遵守正确的 Python 语法。当你出现拼写错误或第一次开始学习 Python 时,可能会遇到这些错误。
  • 异常,当在程序执行期间出现意外情况时,就会发生异常,即使代码在语法上正确无误。Python 有不同类型的内置异常,你可以在错误消息中查看系统抛出了什么异常。

如果你没有使用正确的语法,并且 Python 不知道如何运行你的代码,会发生语法错误。

如果 Python 在执行代码时遇到意外情形,会发生异常,即使你采用了正确的语法,也可能会发生异常。

处理异常

Try 语句

我们可以使用 try 语句 来处理异常。

  • try:这是 try 语句中的唯一必需子句。该块中的代码是 Python 在 try 语句中首先运行的代码
  • except:如果 Python 在运行 try 块时遇到异常,它将跳到处理该异常的 except 块
  • else:如果 Python 在运行 try 块时没有遇到异常,它将在运行 try 块后运行该块中的代码。
  • finally:在 Python 离开此 try 语句之前,在任何情形下它都将运行此 finally 块中的代码,即使要结束程序,例如:如果 Python 在运行 except 或 else 块中的代码时遇到错误,在停止程序之前,依然会执行此finally 块。

为何在 Python 中需要 finally 子句?

您可以使用它 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

访问异常信息

try:
    # some code
except ZeroDivisionError as e:
   # some code
   print("ZeroDivisionError occurred: {}".format(e))
   # 输出
   ZeroDivisionError occurred: division by zero

因此依然可以访问错误消息,即使已经处理异常以防止程序崩溃!

Exception 是所有内置异常的基础类。你可以在此处详细了解 Python 的异常。

读取文件

f = open('my_path/my_file.txt', 'r')
file_data = f.read()
f.close()
  1. 首先使用内置函数 open打开文件。需要文件路径字符串。open 函数会返回文件对象,它是一个 Python 对象,Python 通过该对象与文件本身交互。在此示例中,我们将此对象赋值给变量 f。
  2. 你可以在 open 函数中指定可选参数。参数之一是打开文件时采用的模式。在此示例中,我们使用 r,即只读模式。这实际上是模式参数的默认值
  3. 使用 read 访问文件对象的内容。该 read 方法会接受文件中包含的文本并放入字符串中。在此示例中,我们将该方法返回的字符串赋值给变量 file_data。
  4. 当我们处理完文件后,使用 close 方法释放该文件占用的系统资源

代码中 f.read() 调用没有传入参数。它自动变成从当前位置读取文件的所有剩余内容,即整个文件。如果向 .read() 传入整型参数,它将读取长度是这么多字符的内容,输出所有内容,并使 ‘window’ 保持在该位置以准备继续读取

with open(camelot.txt) as song:
    print(song.read(2))
    print(song.read(8))
    print(song.read())
# 输出
"""
We
're the 
knights of the round table
We dance whenever we're able    """

文本块中的 \n 是换行符。换行符表示一行的结束,告诉程序(例如文本编辑器)转到下一行。但是,对于文件中的一系列字符来说,\n 只是另一个字符。 幸运的是,Python 知道这些是特殊字符,你可以要求 Python 每次读取一行。

f.readline(),读取文件下一行的方法。

很方便的是,Python 将使用语法 for line in file 循环访问文件中的各行内容。 我可以使用该语法创建列表中的行列表。因为每行依然包含换行符,因此我使用 .strip() 删掉换行符。

camelot_lines = []
with open("camelot.txt") as f:
    for line in f:
        camelot_lines.append(line.strip())

print(camelot_lines)
# 输出
"""
["We're the knights of the round table", "We dance whenever we're able"]"""

写入文件

f = open('my_path/my_file.txt', 'w')
f.write("Hello there!")
f.close()
  1. 写入 ('w') 模式打开文件。如果文件不存在,Python 将为你创建一个文件。如果以写入模式打开现有文件,该文件中之前包含的所有内容将被删除。如果你打算向现有文件添加内容,但是不删除其中的内容,可以使用附加('a') 模式,而不是写入模式。
  2. 使用 write 方法向文件中添加文本
  3. 操作完毕后,关闭文件

With

Python 提供了一个特殊的语法,该语法会在你使用完文件后自动关闭该文件

with open('my_path/my_file.txt', 'r') as f:
    file_data = f.read()

with 关键字使你能够打开文件,对文件执行操作,并在缩进代码(在此示例中是读取文件)执行之后自动关闭文件。现在,我们不需要调用 f.close() 了!你只能在此缩进块中访问文件对象 f

我们实际上可以导入其他脚本中的 Python,如果你处理的是大型项目,需要将代码整理成多个文件并重复利用这些文件中的代码,则导入脚本很有用。如果你要导入的 Python 脚本与当前脚本位于同一个目录下,只需输入 import,然后是文件名无需扩展名 .py

import useful_functions

Import 语句写在 Python 脚本的顶部,每个导入语句各占一行。该 import 语句会创建一个模块对象,叫做 useful_functions。模块是包含定义和语句的 Python 文件。要访问导入模块中的对象,需要使用点记法

import useful_functions
useful_functions.add_five([1, 2, 3, 4])

我们可以为导入模块添加别名,以使用不同的名称引用它。

import useful_functions as uf
uf.add_five([1, 2, 3, 4])

使用 if main

为了避免运行从其他脚本中作为模块导入的脚本中的可执行语句,将这些行包含在 if __name__ == "__main__" 块中。或者,将它们包含在函数 main() 中并在 if main 块中调用该函数。

每当我们运行此类脚本时,Python 实际上会为所有模块设置一个特殊的内置变量 __name__。当我们运行脚本时,Python 会将此模块识别为主程序,并将此模块的 name 变量设为字符串 "__main__"。对于该脚本中导入的任何模块,这个内置 name 变量会设为该模块的名称。因此,条件 if __name__ == "__main__" 会检查该模块是否为主程序。

# demo.py

import useful_functions as uf

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

mean = uf.mean(scores)
curved = uf.add_five(scores)

mean_c = uf.mean(curved)

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

print(__name__)
print(uf.__name__)
# useful_functions.py

def mean(num_list):
    return sum(num_list) / len(num_list)

def add_five(num_list):
    return [n + 5 for n in num_list]

def main():
    print("Testing mean function")
    n_list = [34, 44, 23, 46, 12, 24]
    correct_mean = 30.5
    assert(mean(n_list) == correct_mean)

    print("Testing add_five function")
    correct_list = [39, 49, 28, 51, 17, 29]
    assert(add_five(n_list) == correct_list)

    print("All tests passed!")

if __name__ == '__main__':
    main()

上面介绍了我们如何导入自己的模块,但 Python 也内置了完整的标准库模块。标准库里面有大量实用模块,我们可以将这个库看作是一个非常庞大的工具集,帮助我们轻松获取和使用现有代码大大增强我们的编程技能。

Python 标准库详细介绍了每种模块,模块按照用途分类。标准库中的每个模块都是全小写形式。在使用每个模块时,建议阅读相关的页面。

推荐模块

Python 标准库包含大量模块!为了帮助你熟悉那些实用的模块,我们在下面筛选了一些我们推荐的 Python 标准库模块并解释为何我们喜欢使用它们!

  • csv:对于读取 csv 文件来说非常便利
  • collections:常见数据类型的实用扩展,包括 OrderedDictdefaultdictnamedtuple
  • random:生成假随机数字,随机打乱序列并选择随机项
  • string:关于字符串的更多函数。此模块还包括实用的字母集合,例如 string.digits(包含所有字符都是有效数字的字符串)
  • re:通过正则表达式在字符串中进行模式匹配
  • math:一些标准数学函数
  • os:与操作系统交互
  • os.pathos 的子模块,用于操纵路径名称
  • sys:直接使用 Python 解释器
  • JSON:适用于读写 json 文件(面向网络开发)。

导入模块技巧

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

from module_name import object_name

2.要从模块中导入多个单个对象:

from module_name import first_object, second_object

3.要重命名模块:

import module_name as new_name

4.要从模块中导入对象并重命名:

from module_name import object_name as new_name

5.要从模块中单个地导入所有对象,请使用标准导入 module_name 语句并使用点记法访问每个对象。

import module_name

为了更好地管理代码,Standard 标准库中的模块被拆分成了子模块并包含在软件包中。软件包是一个包含子模块的模块。子模块使用普通的点记法指定。

子模块的指定方式是软件包名称、点,然后是子模块名称。你可以如下所示地导入子模块。

import package_name.submodule_name

独立开发者编写了成千上万的第三方库!你可以使用 pip 安装这些库。pip 是在 Python 3 中包含的软件包管理器,它是标准 Python 软件包管理器,但并不是唯一的管理器。另一个热门的管理器是 Anaconda,该管理器专门针对数据科学。

要使用 pip 安装软件包,在命令行中输入“pip install”,然后是软件包名称,如下所示:pip install package_name。该命令会下载并安装该软件包,以便导入你的程序中。安装完毕后,你可以使用从标准库中导入模块时用到的相同语法导入第三方软件包。

使用 requirements.txt 文件

大型 Python 程序可能依赖于十几个第三方软件包。为了更轻松地分享这些程序,程序员经常会在叫做 requirements.txt 的文件中列出项目的依赖项。下面是一个 requirements.txt 文件示例。

beautifulsoup4==4.5.1
bs4==0.0.1
pytz==2016.7
requests==2.11.1

该文件的每行包含软件包名称和版本号。版本号是可选项,但是通常都会包含。不同版本的库之间可能变化不大,可能截然不同,因此有必要使用程序作者在写程序时用到的库版本。

你可以使用 pip 一次性安装项目的所有依赖项,方法是在命令行中输入 pip install -r requirements.txt

实用的第三方软件包

能够安装并导入第三方库很有用,但是要成为优秀的程序员,还需要知道有哪些库可以使用。大家通常通过在线推荐或同事介绍了解实用的新库。如果你是一名 Python 编程新手,可能没有很多同事,因此为了帮助你了解入门信息,下面是优达学城工程师很喜欢使用的软件包列表。(可能部分网站在国内网络中无法打开)

  • IPython - 更好的交互式 Python 解释器。
  • requests - 提供易于使用的方法来发出网络请求。适用于访问网络 api
  • flask - 一个小型框架,用于构建网络应用和 API。
  • Django - 一个功能更丰富的网络应用构建框架。DjanGo 尤其适合设计复杂、内容丰富的网络应用。
  • Beautiful Soup - 用于解析 html 并从中提取信息。适合网页数据抽取。
  • pytest - 扩展了 Python 的内置断言,并且是最具单元性的模块。
  • PyYAML - 用于读写 YAML 文件。
  • NumPy - 用于使用 Python 进行科学计算的最基本软件包。它包含一个强大的 N 维数组对象和实用的线性代数功能等。
  • pandas - 包含高性能、数据结构和数据分析工具的库。尤其是,pandas 提供 dataframe!
  • matplotlib - 二维绘制库,会生成达到发布标准的高品质图片,并且采用各种硬拷贝格式和交互式环境。
  • ggplot - 另一种二维绘制库,基于 R’s ggplot2 库。
  • Pillow - Python 图片库可以向你的 Python 解释器添加图片处理功能。
  • pyglet - 专门面向游戏开发的跨平台应用框架。
  • Pygame - 用于编写游戏的一系列 Python 模块。
  • pytz - Python 的世界时区定义。

文章只是作为个人记录学习使用,如有不妥之处请指正,谢谢。

--结束END--

本文标题: Python 脚本编写

本文链接: https://www.lsjlt.com/news/184938.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 脚本编写
    学习内容: Python 安装和环境设置 运行和修改 Python 脚本 与用户输入交互 处理异常 读写文件 导入本地、标准和第三方模块 在解释器中进行实验 检查计算机是否安装了 Python ? 在终端窗口输入如下指令,并...
    99+
    2023-01-31
    脚本 Python
  • 怎么编写Python脚本
    本篇内容介绍了“怎么编写Python脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Streamlit是第一个专门针对机器学习和数据科学团...
    99+
    2023-06-02
  • python编写文件统计脚本
    python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir()、os.path.isdir()、os.path.join()、os.path.abspath()等) 实现功能:显示多级目录,以及自己要找的具体文件类型...
    99+
    2023-01-30
    脚本 文件 python
  • Python编写淘宝秒杀脚本
    目录添加火狐浏览器插件安装geckodriverpython代码代码整体思路使用方法最近想抢冰墩墩的手办和钥匙圈,但是同志们抢的速度太快了,无奈,还是自己写脚本吧。 添加火狐浏览器插...
    99+
    2024-04-02
  • gitlab CI脚本编写
    从 GitLab 8.0 开始,GitLab CI 就已经集成在 GitLab 中,我们只要在项目中添加一个 .gitlab-ci.yml 文件,然后添加一个 Runner,即可进行持续集成。 而且随着 GitLab 的升级,GitLab ...
    99+
    2023-01-30
    脚本 gitlab CI
  • Python编写日志分析小脚本
    import re def count_patt(fname, patt):result = {}cpatt = re.compile(patt)fobj = open(fname)for line in fobj:m = cpatt.se...
    99+
    2023-01-31
    脚本 日志 Python
  • Python抢购脚本的编写方法
    想买mate40,但总是抢不到,所以想试着能不能写个脚本代码。 第一步:把想要抢购的商品加进购物车,注意:脚本是对购物车内全部商品进行下单操作,所以不够买的商品最好先从购物车内删除。...
    99+
    2024-04-02
  • BAT脚本怎么编写
    这篇文章将为大家详细讲解有关BAT脚本怎么编写,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们...
    99+
    2023-06-08
  • catalog.sql脚本怎么编写
    这篇文章给大家介绍catalog.sql脚本怎么编写,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。        前面介绍了如何通过手工创建数据库,...
    99+
    2023-06-06
  • python如何写脚本
    python写脚本的方法在电脑中找到“idle”,他是Python自带的,通过idle进行编写。打开文本编辑器editplus,notepad等,编写后将文件保存成 .py格式即可。...
    99+
    2024-04-02
  • 用Python编写一个漏洞验证脚本
    目录前言requests模块使用技巧验证结果单线程poc脚本使用多线程颜色标记添加进度条多线程poc脚本总结前言 我们实战经常会遇到以下几个问题: ​ 1、遇到一个利用步骤十分繁琐的...
    99+
    2024-04-02
  • linux如何编写shell脚本
    编写Linux的shell脚本可以使用任何文本编辑器,如vi、nano、gedit等。以下是编写shell脚本的一般步骤:1. 打开...
    99+
    2023-09-15
    linux shell
  • 如何编写Linux Shell脚本
    这篇文章主要为大家展示了“如何编写Linux Shell脚本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何编写Linux Shell脚本”这篇文章吧。代码风格规范开头有“蛇棒”所谓sheba...
    99+
    2023-06-16
  • 基于python编写的shell脚本详细讲解
    今天同事叫我编写一个shell脚本。话说,虽然我受*nix的影响甚深,但是对于*nix 里随处可见的sh脚本却是讨厌之极。为什么讨厌呢?首先是因为sh脚本那莫名其妙的语法,感觉就像随...
    99+
    2024-04-02
  • 怎么从零开始编写Python爬虫脚本
    本篇内容介绍了“怎么从零开始编写Python爬虫脚本”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!0.准备工作需要准备的东西: Python...
    99+
    2023-06-03
  • 编写Python自动化脚本的方法教程
    这篇文章主要介绍“编写Python自动化脚本的方法教程”,在日常操作中,相信很多人在编写Python自动化脚本的方法教程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”编写Python自动化脚本的方法教程”的疑...
    99+
    2023-06-16
  • Shell脚本编程入门编写教程
    这篇文章主要讲解了“Shell脚本编程入门编写教程”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Shell脚本编程入门编写教程”吧!例子一:绘制特殊图形代码如下:#!/bin/bash&nb...
    99+
    2023-06-09
  • Golang 能用来编写脚本吗?
    用 Golang 编写脚本是否可行? 近年来,Golang(也称为Go)作为一种强大的编程语言,在各个领域都有着广泛的应用。它的并发性能优越、编译速度快、静态类型检查等特点使得它成为了...
    99+
    2024-02-27
    golang 可行性 脚本编写 shell脚本 python脚本 标准库
  • shell脚本编写之初级版
    1.  shell脚本的执行顺序是从上而下的,面向过程。2.  文件名称格式: xxx.sh3.  文件内容的第一行: #!/bin/bash4.  shell脚本就是将命令全部融合在一起5. &nb...
    99+
    2023-06-06
  • 如何编写两个vbs脚本
    本篇内容主要讲解“如何编写两个vbs脚本”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何编写两个vbs脚本”吧!Set objNetwork = CreateOb...
    99+
    2023-06-08
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作