精华内容
下载资源
问答
  • 有时需求使用JAVA直接调用python脚本,执行一些服务器监控的事情。 本文给出一个java直接调用python脚本的例子
  • 主要介绍了shell脚本中执行python脚本并接收其返回值的例子,本文重点在于如何接收python脚本的返回值,需要的朋友可以参考下
  • 主要介绍了java调用python脚本传递参数的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • 主要介绍了C#调用python脚本的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • Python脚本100例

    2018-11-17 21:51:57
    Python脚本实战编写100例,有简单到复杂,简单易懂好学,实用。一看就会,易学就懂。
  • SecureCRT运行Python脚本测试IoT-WiFi模块-基础1 讲解基础的CRT-Python
  • shell脚本调用python脚本,并传参。 本文以删除指定文件夹下,以当前时间为基准 的指定天数以前的文件,包括空文件夹
  • 本资源为一个完整工程,功能是实现使用C++在执行过程中调用Python脚本,内附VS嵌入Python环境的流程
  • 通过Python脚本,自动巡检网络设备,并将巡检结果输出到附件,邮件发送。使用的是Python的telnetlib模块
  • 面向ArcGIS的Python脚本编程,最实用的教程。 面向ArcGIS的Python脚本编程,最实用的教程。 面向ArcGIS的Python脚本编程,最实用的教程。
  • Python 脚本编写

    万次阅读 多人点赞 2018-07-14 19:50:05
    运行和修改 Python 脚本 与用户输入交互 处理异常 读写文件 导入本地、标准和第三方模块 在解释器中进行实验 安装 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。

    运行 Python 脚本

    将 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!!

    配置 Python 编程环境

    推荐的文本编辑器

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

    内置函数 input()

    我们可以使用内置函数 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 的世界时区定义。

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

    展开全文
  • Python脚本,批量执行数据库脚本,适用于SQL Server数据库,后续会上传MySQL的批量执行sql脚本
  • python脚本案例-python脚本范例

    千次阅读 2020-10-30 00:43:22
    【伯乐在线导读】:有网友在 quora 上提问,「你用 python 写过最牛逼的程序脚本是什么? 」。本文摘编了 3 个国外程序员的多个小项目,含代码。 manoj memana jayakumar, 3000+ 顶更新:凭借这些脚本,我找到了工作...

    flbm1hkjk6.jpg广告关闭

    2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品。未来,我们一起乘风破浪,创造无限可能。

    【伯乐在线导读】:有网友在 quora 上提问,「你用 python 写过最牛逼的程序脚本是什么? 」。本文摘编了 3 个国外程序员的多个小项目,含代码。 manoj memana jayakumar, 3000+ 顶更新:凭借这些脚本,我找到了工作! 可看我在这个帖子中的回复,《has anyone got a job through quora? or somehow made lots of ...

    ul49t4yt5i.jpeg

    来源:python开发者id:pythoncoder【导读】:有网友在 quora 上提问,「你用 python 写过最牛逼的程序脚本是什么? 」。本文摘编了 3 个国外程序员的多个小项目,含代码。 manoj memana jayakumar, 3000+ 顶更新:凭借这些脚本,我找到了工作! 可看我在这个帖子中的回复,《has anyone got a job through quora?...

    ife4bdpjwd.jpeg

    【导读】:有网友在 quora 上提问,「你用 python 写过最牛逼的程序脚本是什么? 」。本文摘编了 3 个国外程序员的多个小项目,含代码。 manoj memana jayakumar, 3000+ 顶更新:凭借这些脚本,我找到了工作! 可看我在这个帖子中的回复,《has anyone got a job through quora? or somehow made lots of money ...

    编译:python开发者 - jake_on 英文:quorahttp:python.jobbole.com85986有网友在 quora 上提问,「你用 python 写过最牛逼的程序脚本是什么? 」。本文摘编了 3 个国外程序员的多个小项目,含代码。 manoj memana jayakumar, 3000+ 顶更新:凭借这些脚本,我找到了工作! 可看我在这个帖子中的回复,《has anyone ...

    为此写了修改json文件的python脚本供工程后续调用。 代码如下:# coding=utf-8 设置文本格式import os,sysimport jsondef get_new_json(filepath,key,value):key_ = key.split(.) key_length = len(key_) with open(filepath, rb) as f:json_data = json.load(f) i = 0 a = json_data while i< key_length : if i+1 =...

    原创文章,转载请注明: 转载自url-team本文链接地址:python远程部署利器fabric详解-转载related posts:学习—用 python 和 opencv 检测和跟踪运动对象使用pyaiml机器人模块快速做个和你智能对话的大脑 让树莓派开机运行python脚本阿里云学生主机压力测试与优化防御脚本 linux查看实时带宽流量情况以及查看端口信息...

    python是最受欢迎和随需应变的通用编程语言之一。 它是一种解释性的高级编程语言,支持多种编程范例,包括过程式,面向对象和函数式编程。 由于其全面的标准库,它通常被描述为"py自带着电池”。 它被广泛使用,并且是一种非常通用的编程语言,因为它被初学者和科学家用于不同类型的活动。 它用于系统编程和脚本编写...

    python的一些小函数很能提高效率,平时在工作中经常忽视这些内容,而使用很原始粗暴的方法写代码; 写了一段时间以后,发现自己的提高很少,要写个小脚本也要纠结半天,跟那些大拿们相差太大; 所以要检讨自己,看看自己可以从那方面提高自己的技术能力; 今天首先学习下python的实用小函数:lamda() 返回一个函数...

    mz3pinnz2w.png

    在下今天写了一个小小的python程序,可以在完全不看源代码的情况下,分析a如果调用b.so的时候,会引用b.so的哪些函数,它的用法如下:symbol-dep.py -s a -d b.so把a作为-s参数,把b.so作为-d参数。 它的原理如下:用nm -d --undefined-only命令可以列出一个程序依赖的需要动态链接的库函数,譬如:? 用nm -d ...

    初学python,装饰器是什么玩意儿? 1:装饰器是函数,只不过该函数可以具有特殊的含义,装饰器用来装饰函数或类,使用装饰器可以在函数执行前和执行后添加...范例:模块paramikoparamiko是一个用于做远程控制的模块,使用该模块可以对远程服务器进行命令或文件操作。 fabric和ansible内部的远程管理就是使用param...

    第二步:编写python脚本本教程将使用python 3.x以及一些模块来进行简化。 使用pip模块安装程序,需运行一下命令:现在,在一个新的目录中,创建一个名为...你可能还想进一步挖掘元数据,例如范例,设计者或打字规律。 收集链接我们还需要一个函数–该函数读入给定语言的table对象,输出一个包含其他编程语言的...

    目前而言一些顶级公司在其技术堆栈中使用python(例如instagram)facebook旗下的一个图片社交网站python适合从简单到复杂的各种web项目。 它广泛用于旅行,医疗保健,交通运输,金融等不同领域,用于web开发和软件测试,脚本编写和生成。 python的受欢迎程度与其提供的各种好处有关,例如简单性和优雅性吸引了这些大...

    owrdhn1xq4.jpeg

    你瞧,我们就是这么干的,不是吗? 高级脚本语言非常适合人工智能和机器学习,因为我们可以快速更新并重试。 我们创建的代码大部分代表实际的数学和数据结构,而不是模板。 像python这样的脚本语言就很好,因为它是严格和一致的,每个人都可以更好地理解对方的python代码,相反的,其他语言则会有混淆和不一致的编程...

    背景:游戏公司,服务器上有充值服,世界服,经分服务器等,和前端的game有链接通信,为防止链接通信故障导致线上业务中断,需要一个小脚本时刻监控线上链接状况。 涉及:shell、python2.6、126免费邮箱配置:vimusrlightserverserveroperationanalysisserverconfig.xml-->环境不同,这里只做范例 shell脚本:#!...

    o67u5naos4.png

    文章赞赏所得归作者所有,文章将同步至python中文社区微信公众号、知乎专栏、简书等各大网络平台 投稿请寄:sinoandywong@gmail.com,大家共同学习,共同进步。 本期文章由@黑白授权发布,版权所有,感谢作者分享。 一个js动态数据抓取范例作者:python中文社区网友@黑白 抓取站点:球网,一个足球比分统计网站http...

    每个 python 使用者都可以更好地理解对方的 python 代码,而其他语言的语法有可能会导致混淆和不一致的编程范例,这就是 python 较其他编程语言的优势所在...▌编程语言对比在 2017 年世界脚本语言排行榜中,python 强势登顶; 在 tiobe 编程语言排行榜中,python 地位也在逐月攀升,越来越受广大开发者的欢迎...

    wn57ntrwui.jpeg

    每个 python 使用者都可以更好地理解对方的 python 代码,而其他语言的语法有可能会导致混淆和不一致的编程范例,这就是 python 较其他编程语言的优势所在...▌编程语言对比在 2017 年世界脚本语言排行榜中,python 强势登顶; 在 tiobe 编程语言排行榜中,python 地位也在逐月攀升,越来越受广大开发者的欢迎...

    您需要打开终端并输入python --version。 您应该可以看到python的版本为2.7.x。 对于windows用户而言,请由官方网站安装python。 下一步,我们需要利用pip...元(meta)和脚本(script)声明包含在和标签之间4. 网站上可见的部分包含在和标签之间5. 和标签之间的部分为网站标题6. 标签用于定义段落其他有用的标签...

    w6fjfkdzr4.jpeg

    像 python 这样的脚本语言更适合 ai 机器学习的工作,因为它严格而一致的语法风格。 每个 python 使用者都可以更好地理解对方的 python 代码,而其他语言的语法有可能会导致混淆和不一致的编程范例,这就是 python 较其他编程语言的优势所在。 此外,ipython notebook等工具的可用性使得我们可以在全新的平台上重复并...

    展开全文
  • python脚本编写

    万次阅读 多人点赞 2019-03-29 22:37:20
    Python 是一种“脚本语言”。脚本,对应的英文是:script。一般人看到script这个英文单词,或许想到的更多的是:电影的剧本,就是一段段的脚本,所组成的。电影剧本的脚本,决定了电影中的人和物,都做哪些事情,...

     

    什么是脚本

    Python 是一种“脚本语言”。脚本,对应的英文是:script。一般人看到script这个英文单词,或许想到的更多的是:电影的剧本,就是一段段的脚本,所组成的。电影剧本的脚本,决定了电影中的人和物,都做哪些事情,怎么做。而计算机中的脚本,决定了:计算机中的操作系统和各种软件工具,要做哪些事情,以及具体怎么做。

    脚本 vs 程序

    你可能想要了解脚本与一般程序的区别是什么。

    脚本与一般程序的主要区别在于是否编译。相对于程序而言,脚本更加随性。写完了脚本,直接就可以在某种具有解释功能的环境中运行。(我们将会在本课学习如何写和运行 Python 脚本。)

    而非脚本语言(编译语言),比如 C、Java 语言。我们需要通过编译(Compile)和链接(link)等步骤,生成可执行文件。然后通过可执行文件在计算机上运行。

    脚本编写

    欢迎学习这节关于脚本编写的课程!你将学习:

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

    安装 Python 3

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

    为了完成这一步骤,你需要使用命令行。我们将详细介绍所有细节部分,因此如果你从未使用过命令行,也没关系!如果你想深入了解命令行,请参阅我们的 Shell 讲习班,详细了解 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 感兴趣,强烈建议安装 Anaconda,即使你已经在计算机上安装了 Python。如果你尚未设置计算机,请参阅我们的 Anaconda 和 Jupyter notebook 简短课程设置计算机。你将学习如何为这门课程设置环境,需要安装 Python 3.6、Jupyter Notebook、NumPy、pandas、Matplotlib 和 Seaborn。

    Anaconda 包含大量专门针对数据科学的库和软件分发版本,某些库和软件比较难安装。同时,你可以很轻松地在计算机上设置不同的环境,以便在不同版本的 Python 和软件包之间快速切换!例如,如果你正在处理的某个项目需要 Python 3.6 以及不同的依赖项,那么 Anaconda 的环境管理功能可以提供帮助。上面给出链接的 Anaconda 和 Jupyter notebook 免费课程讲授了如何处理这类情形。

    如果你的英语不是很熟练,你也可以在中文网站上搜索安装Anaconda的教程,比如这个知乎帖子

    方法 2:安装 Python

    对使用 Python 进行数据分析不感兴趣的学员建议采用此方法。

    如果你对学习面向数据科学的 Python 不感兴趣,并且你的计算机尚未安装 Python 3,那么现在该安装 Python 3 了!请转到 Python 下载页面并找到适用于你的操作系统、以 3 开头的最新版本(例如 Python 3.5.2)。

    对于 Windows 和 Mac,我们发现最简单的方法是直接从 Python 下载网站下载安装程序并运行。如果你使用的是 Linux,Python 下载页面提供了进行下载和编译的源代码。此外,你可以使用 APT 等安装工具安装 Python 3。

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

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

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

    运行 Python 脚本

    运行 Python 脚本!!

    1. 下载在本页面底部给出链接的文件 first_script.py(你可能需要右击它,并存储为文件),然后将该文件移到计算机上的相应目录下。如果你还没有为这门课程创建一个目录的话,可以乘机创建一个目录。
    2. 打开终端并使用 cd 命令转到包含所下载文件的目录。
    3. 现在你已经位于该文件所在的目录,可以运行该文件了,方法是输入 python first_script.py,然后按下 Enter 键。

    提示:文件下载后,_ 会变成- ,你可能需要改成python first-script.py

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

    Congratulations on running this script!!
    

    辅助材料

     first_script.py

    编程环境设置

    配置 Python 编程环境

    你已经看到我的设置,现在花时间在你自己的计算机上熟悉下界面。 下面是一些我们推荐的文本编辑器,你可以尝试一个看看。

    对于 Mac:

    对于 Windows:

    对于 Linux:

    设置好屏幕,打开文本编辑器、终端/命令行,并在网络浏览器中打开优达学城课堂,以便与你的 Python 脚本交互。调整显示器选项,找到你觉得最舒适的显示效果,并看看能否找到 tab-to-four-spaces 选项 - 该选项对于 Python 缩进来说非常有用。

    修改 Python 脚本

    自己编写脚本

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

    how_many_snakes = 1
    snake_string = """
    Welcome to Python3!
    
                 ____
                / . .\\
                \  ---<
                 \  /
       __________/ /
    -=:___________/
    
    <3, Juno
    """
    
    
    print(snake_string * how_many_snakes)

    在脚本中接受原始输入

    我们可以使用内置函数 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)
    

    如果用户输入 2 * 3,输出为 6

    练习:在脚本中接受原始输入

    练习:生成消息

    假设你是一名老师,需要向每位学生发一条消息,提醒他们未交的作业和分数是多少。你知道每名学生的姓名,没交的作业份数和分数,这些数据保存在了电子表格中,你只需将这些输入插入你想到的以下消息中即可:

    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. 请求用户输入三次。一次是名字列表,一次是未交作业数量列表,一次是分数列表。使用该输入创建 namesassignments 和 grades 列表。
    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 在运行 except 或 else 块中的代码时遇到错误,在停止程序之前,依然会执行此finally 块。

    为何在 Python 中需要 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
        except ZeroDivisionError:
            print("WARNING: Returning empty list. Please use a nonzero number.")
            return []
        else:
            groups = []
            for i in range(0, len(items), size):
                groups.append(items[i:i + size])
            return groups
        finally:
            print("{} groups returned.".format(num_groups))
    
    print("Creating 6 groups...")
    for group in create_groups(range(32), 6):
        print(list(group))
    
    print("\nCreating 0 groups...")
    for group in create_groups(range(32), 0):
        print(list(group))

    修改上面的脚本以处理除以零错误。正确修改的话,应该会输出:

    Creating 6 groups...
    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 0 groups...
    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))
    

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

    ZeroDivisionError occurred: division by zero
    

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

    如果没有要处理的具体错误,依然可以如下所示地访问消息:

    try:
        # some code
    except Exception as e:
       # some code
       print("Exception occurred: {}".format(e))
    

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

    读写文件

    以下是如何在 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 = 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__"会检查该模块是否为主程序。 

    尝试一下!

    下面是我在上述视频中使用的代码。请在同一目录下创建这些脚本,并在终端里运行这些脚本!实验 if 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 标准库模块并解释为何我们喜欢使用它们! 

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

    希望你能用上这些模块!

    导入模块技巧

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

    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. 要从模块中单个地导入所有对象(请勿这么做):
      from module_name import *
      
    6. 如果你真的想使用模块中的所有对象,请使用标准导入 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 的世界时区定义。

    在解释器中进行实验

    通过在终端里输入 python 启动 python 交互式解释器。你可以接着输入内容,直接与 Python 交互。这是每次实验和尝试一段 Python 代码的很棒工具。只需输入 Python 代码,输出将出现在下一行。

    >>> type(5.23)
    <class 'float'>
    

    在解释器中,提示符窗口中最后一行的值将自动输出。如果有多行代码需要输出值,依然需要使用 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,它具有很多其他功能。

    • Tab 键补充完整
    • ?:关于对象的详细信息
    • !:执行系统 shell 命令
    • 语法突出显示

    你可以在此处查看更多其他功能!

    获取所需的信息

    要想成为熟练的程序员,需要掌握大量知识。需要了解库、记住语法以及其他细节。此外,让这一切更具挑战的是,技术在不断革新,因为新的技巧和工具会不断出现。

    对于编程新手来说,学习所有这些细节并及时获悉新的发展动态似乎是一项不可能完成的任务。的确是这样!具有多年经验的编程专业人士实际上并不是在脑中记下百科全书一样的知识,而是掌握了快速查找信息的技巧。

    如何搜索

    下面是高效网络搜索的一些技巧:

    • 在查询时,尝试使用 Python 或要使用的库的名称作为第一个字词。这样会告诉搜索引擎优先显示与你要使用的工具明确相关的结果。
    • 创建良好的搜索查询需要多次尝试。如果第一次尝试时没有找到有用的结果,再试一遍。 
    • 尝试使用在一开始搜索时发现的网页上发现的关键字,使搜索引擎在后续搜索中转到更好的资源。
    • 复制粘贴错误消息作为搜索字词。这样会出现错误解释性信息和潜在原因。错误消息可能包括你所写的特定行号引用。只在搜索中包含这些信息之前的错误消息部分。
    • 如果找不到问题答案,自己提出问题!StackOverflow 等社区有一些行为规则,如果你要加入该社区,必须了解这些规则,但是别因为这些规则而不愿意使用这些资源。

    在线资源的优先级

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

    1. Python 教程 - 这部分官方文档给出了 Python 的语法和标准库。它会举例讲解,并且采用的语言比主要文档的要浅显易懂。确保阅读该文档的 Python 3 版本!
    2. Python 语言和库参考资料 - 语言参考资料和库参考资料比教程更具技术性,但肯定是可靠的信息来源。当你越来越熟悉 Python 时,应该更频繁地使用这些资源。
    3. 第三方库文档 - 第三方库会在自己的网站上发布文档,通常发布于 https://readthedocs.org/ 。你可以根据文档质量判断第三方库的质量。如果开发者没有时间编写好的文档,很可能也没时间完善库。
    4. 非常专业的网站和博客 - 前面的资源都是主要资源,他们是编写相应代码的同一作者编写的文档。主要资源是最可靠的资源。次要资源也是非常宝贵的资源。次要资源比较麻烦的是需要判断资源的可信度。Doug Hellmann 等作者和 Eli Bendersky 等开发者的网站很棒。不出名作者的博客可能很棒,也可能很糟糕。
    5. StackOverflow - 这个问答网站有很多用户访问,因此很有可能有人之前提过相关的问题,并且有人回答了!但是,答案是大家自愿提供的,质量参差不齐。在将解决方案应用到你的程序中之前,始终先理解解决方案。如果答案只有一行,没有解释,则值得怀疑。你可以在此网站上查找关于你的问题的更多信息,或发现替代性搜索字词。
    6. Bug 跟踪器 - 有时候,你可能会遇到非常罕见的问题或者非常新的问题,没有人在 StackOverflow 上提过。例如,你可能会在 GitHub 上的 bug 报告中找到关于你的错误的信息。这些 bug 报告很有用,但是你可能需要自己开展一些工程方面的研究,才能解决问题。
    7. 随机网络论坛 - 有时候,搜索结果可能会生成一些自 2004 年左右就不再活跃的论坛。如果这些资源是唯一解决你的问题的资源,那么你应该重新思考下寻找解决方案的方式。
    展开全文
  • SecureCRT python 脚本

    2014-04-21 11:03:52
    很好的python脚本,如何用CRT工具开启serial,命令交互等!
  • python测试脚本实例-python脚本测试

    千次阅读 2020-10-30 00:37:36
    今天,更新一篇利用jenkins这套框架,调用python自动化脚本,并输出测试报告的手把手实操文章; 步骤非常详细,且整篇文章非常完整; 有每一步的操作截图,每位同学都可以跟着实操(建议多操作几遍); -- ido老徐 ...

    o55g08d9dv.jpg广告关闭

    腾讯云双11爆品提前享,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高满返5000元!

    mbpl4a1uww.jpeg

    今天,更新一篇利用jenkins这套框架,调用python自动化脚本,并输出测试报告的手把手实操文章; 步骤非常详细,且整篇文章非常完整; 有每一步的操作截图,每位同学都可以跟着实操(建议多操作几遍); -- ido老徐 2020. 02.07 一、前言 在用python做自动化测试时,我们写好代码, 然后需要执行才能得到测试报告...

    无聊之余,下面分享一个python小脚本:测试网站页面访问速度# vim pywww.py#! usrbinpython# coding: utf-8import stringio,pycurl,sys,os,time class idctest:def __init__(self): self.contents = def body_callback(self,buf):self.contents = self.contents + buf def test_gzip(input_url):t = idctest() #gzip...

    最近在学习python语言,一直再想,工作中经常性会去调试接口、测试接口,于是就思考一番,怎么能抛弃以前经常依赖使用工具做接口测试的局限性,换做python脚本来做呢? 接下来就产生下如下脚本,觉得还行,实用性很强,可以做基本的接口调试和接口测试,不废话了,上代码,巴拉~~~~~巴拉~~~~~巴拉工具做接口测试...

    kzg7rm5qyb.jpeg

    当时通宵(通宵看葡萄牙vs西班牙顺带码的)码好的时候想着怎么分享给整个部门使用,考虑到公司电脑并没有python环境(没有安装权限),于是我就找有没有办法可以让我的这个python脚本在一台没有安装python的电脑上执行。 经过google发现有py2exe和pyinstaller可以将python脚本编译成windows(pyinstaller支持多平台)...

    扩展grains通过python脚本定义grainshttp:www.xiaomastack.com20141031saltstack-grainsfile_roots:base:-srvsaltsrvsalt_grainsexample.py#! usrbinpythondefgrains():local={} test={key:vaule,key1:vaule1,key2:vaule2} local= local=str local=testreturnlocalsaltminionsaltutil.sync_grains 2. 扩展module当前...

    5et3d53d3o.jpeg

    学习是为了更好的实践运用,之前做接口测试一直用的postman、fiddler,感觉用工具还是有些局限性,于是想着把学到的python灵活运用到接口测试中,于是就有了以下案例,思考着想用unittest做个简单的接口测试脚本,可以支持单传参和多传参,平时工作中可以随时使用,不但方便,还可以巩固到学习的知识,。 思考点:1...

    下面是两个不同的python脚本,只是连接邮件服务器的方法不同,其他方法还是相同的#! usrbinenvpython#-*-coding:utf-8-*-importsmtplibimportsysfromemail.mime.textimportmimetextfromemail.headerimportheaderdefsend_mail(to_email,subject,message):sender=xxxxx@163.comreceiver=to_emailsubject=pythonemail...

    如果在它们的目录下各新建一个python脚本测试输出os.getcwd(),如果是在directory中得到的是project的根目录’usershujiaweipycharmprojectsleetcodeoj’; 如果是在package中得到的是package的根目录,如’usershujiaweipycharmprojectsleetcodeojpypackage’。 2. 如果要在代码中添加中文注释的话,最好在文档开头...

    20 ok0x02 使用python脚本实现创建python脚本:# vim ping.py #! usrbinenv python# -*- coding: utf-8 -*-# author:xieshengsen # 实现批量ping ip测试 import reimport subprocess defcheck_alive(ip,count=4,timeout=1):cmd = ping -c %d -w %d %s%(count,timeout,ip)p =subprocess.popen(cmd,stdin=subprocess...

    我的目的是测试数据是小的、中的、大的还是非常大的集合,需要多少时间和内存使用。 linux或python有什么工具可以这样做吗?...

    刚学python,做的ftp测试1,简单ftpvim test.py#! usrbinenv python import time from ftplib import ftp local_dir_update=*****local_dir_download=***** remote_host=*. *.*. * port=21 remote_user=name remote_passwd=password ftp=ftp()ftp.set_debuglevel(2) ftp.connect(remote_host,port)ftp.login(remote...

    li.remove(c) #list 中没有找到值,python 会引发一个异常traceback (innermost last): file , line 1, in ? valueerror: list.remove(x): x not in list>>...text = in_file.read() print(text)27、字符串判断#测试实例一print(测试实例一)str = runoob.comprint(str.isalnum()) #判断所有字符都是数字或者字母...

    python内置了一个wsgi服务器,这个模块叫做wsgiref,它是用纯python编写的wsgi服务器的参考实现,所谓参考实现,是指该实现完全符合wsgi标准,但是不考虑任何运行效率,仅供测试1.3 运行wsgi服务编写一个python脚本 hello.py,实现web应用程序的wsgi处理函数#! usrbinpython#coding=utf-8 defapplication(environ...

    dhq8h5rz6a.png

    因为第一次写python脚本在线上运行,所以不敢大意。 而又因为我自己看着python教程自学了一点python知识就赶脚自己能写出来。。。。 结果花了四五个小时愣是没写出来。 第一回合因为要测试memcache服务就直接用python的memcache插件python-memcached。 直接yum安装: ? 安装好之后来测试下: ? 测试成功连接到...

    本人喜欢在网上看小说,一直使用的是小说下载阅读器,可以自动从网上下载想看的小说到本地,比较方便。 最近在学习python的爬虫,受此启发,突然就想到写一个爬取小说内容的脚本玩玩。 于是,通过在逐浪上面分析源代码,找出结构特点之后,写了一个可以爬取逐浪上小说内容的脚本。 具体实现功能如下:输入小说目录页...

    由于是基于web的应用,确实可以完全用python实现web应用开发以及机器学习的实现。 但是由于对dijango接触不多,熟练度不及nodejs。 所以打算采用混合编程实现在javascript代码中调用python脚本。 nodejs必要模块child_process实现原理非常简单,使用child_process这个模块其实是帮助开发者在nodejs环境中建立一个子...

    之前已经配置好了hadoop以及yarn,可那只是第一步。 下面还要在上面运行各种程序,这才是最重要的。 ubuntu安装时默认已经安装了python, 可以通过python –version 查询其版本。 ? 因此我们可以直接运行python的脚本了。 python mapreduce code这里我们要用到 hadoop streaming api,通过stidn(standard input)和...

    我想从python脚本运行nosetest。 但我不仅要运行它,还要测量测试覆盖率。 刚才我有以下代码:import osimport sysimport nosesys.path.append(os.path.dirname(os.path.abspath(os.path.dirname(__file__))))import tests if __name__ == __main__:config = nose.config.config(verbosity=3, stopοnerrοr=false...

    mysql中没有原生的flushback功能,dba误操作时,传统的恢复方式是利用全备+二进制日志前滚进行恢复。 今天给大家介绍一种使用python脚本在mysql中实现类似oracle中flushbacktable的闪回功能,相比于传统的全备+增备,本方法更为快速、简单。 2. 闪回原理原理:调用mysql_rollback.py(脚本在我的另一篇blog 闪回脚本...

    cg4drlq9qh.jpeg

    使 python 在 llvm 中生成线性求解器(linear solver)代码; 3. 使用 python 脚本测试基准,用生成求解器替换 solve_5 调用; 4. 使用 llvm 静态编译器将中间代码转换为机器代码;5. 使用 gnu 汇编器和 clang 的链接器将机器代码转换为可执行的二进制文件。 这就是它在 makefile 中的样子:? python 部分我们需要 ...

    展开全文
  • 《面向arcgis的python脚本编程》官方数据资料,真实可靠假一赔十,由于网站限制分享资料大小,资料分四个部分供下载,全部下载后才能解压。
  • python脚本

    2011-09-25 17:53:05
    python脚本python脚本python脚本python脚本python脚本
  • shell脚本中调用python脚本的函数并获取python脚本函数的return值 例子1: 废话少说,直接上代码: python脚本:merge_report.py # coding=utf-8 import sys def main(param): return param def find_...
  • 《面向arcgis的python脚本编程》官方数据资料,真实可靠假一赔十,由于网站限制分享资料大小,资料分四个部分供下载,全部下载后才能解压。
  • 《面向arcgis的python脚本编程》官方数据资料,真实可靠假一赔十,由于网站限制分享资料大小,资料分四个部分供下载,全部下载后才能解压。 最后第四部分,辛苦分,谢谢!如果实在舍不得,给我发邮件gishjx@vip.qq....
  • Python作为一门面向对象的性语言,其实它的学习也很简单- 配置- Python基础(语法、、数据类型、高级变量、函数、Python高级特性)- 面向对象编程、面向对象高级编程- 错误、调试、测试- 网络编程、进程、线程、协程...
  • python脚本过滤文本中的关键字并显示,例子
  • 京东抢购Python脚本

    万次阅读 多人点赞 2020-02-15 10:48:35
    京东购物车抢购商品Python代码1.准备工作2.代码 1.准备工作 环境要求: Python3.8.1;Firefox浏览器 插件安装: 1.安装Python相关库(在Windows的cmd里面安装) pip install selenium pip install datetime 2....
  • Python脚本实例

    2010-10-10 16:31:35
    数据库逻辑记录备份,Python脚本实例 定时操作
  • Xshell 执行python脚本

    千次阅读 2021-01-31 17:45:52
    XShell支持使用VB,JS,Python脚本去启动自动化任务。这里介绍如何写Xshell的Python脚本
  • python编写脚本工具

    2018-09-30 15:19:44
    主要用来编写pyhton的脚本工具,python使用c或C++的编写工具编译容易导致语法错误,所以python脚本最好使用python的专用编辑器来编写
  • 温馨提示:这里的引号是tab键上面的引号 #!/bin/sh py=`python XXX.py` echo $py
  • python脚本编写教程

    千次阅读 2020-12-10 17:08:23
    python脚本编写教程 这里先做个记录,后续会逐一添加进来。
  • docker 使用python 镜像运行python脚本

    千次阅读 2019-11-28 11:10:11
    第一步创建:python脚本 # touchhelloworld.py #vim helloworld.py #!/usr/bin/python print("hello world!") 保存 [root@test myapp]# docker run -v /home/dockerimg/myapp:/usr/src/myapp -w /usr/src/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 482,352
精华内容 192,940
关键字:

python脚本

python 订阅