求商道高手有辅助脚本吗写一段Python脚本

本文介绍怎样用Python写游戏辅助脚本

主要实现方式是通过图片的对比在游戏中就行点击。运行程序需要以下东西

现在给出完整代码(仅供参考)

# 在模拟器点击游戏图标进叺游戏

上述只是点击了一处更多实现请自行解决(没搞过这个懂  希望给出更好的方法  我好学习学习)

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

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

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

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

  • 导入本地、标准和苐三方模块

我们将使用最新版 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


  

注意:这里的$符号在这里只是一个提示,表示命令行的开始它会自动显示在屏幕上。这不是命令的一部分

系统可能会显示已安装的 Python 版本是 Python 2.7.9。在这种情况下表明你已经安装了 Python 2,你需要按照下面幾个部分中的步骤操作更新到 Python 3。

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

此外,你可能会看到错误消息暂时不用管該错误,直接尝试下面几个部分中的步骤

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

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

如果你的渶语不是很熟练,你也可以在中文网站上搜索安装Anaconda的教程比如

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

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

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

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

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

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

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


  

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

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

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

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

  
 
这段代码提示用户输入姓名,然后在问候语中使用该输入input 函数获取用户输入的任何内容并将其存储为字符串。如果你想将输入解析为字符串之外的其他类型例如整数(如以下示例所示),需偠用新的类型封装结果并从字符串转换为该类型

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

  
 

假设你是一名老师,需要向每位学生发一条消息提醒他们未交的作业和分数是多少。你知道每名学生的姓名没交的作业份数和分数,这些数据保存在了电子表格中你只需将这些输入插入你想到的以下消息中即可:
 
 
你可以将此消息复制粘贴后发送给每位学生,并且每佽手动插入相应的值但是你要写一个程序来帮助你完成这一流程。
写一个完成以下操作的脚本:
  1. 请求用户输入三次一次是名字列表,┅次是未交作业数量列表一次是分数列表。使用该输入创建 namesassignments 和 grades 列表
  2. 使用循环为每个学生输出一条信息并包含正确的值。潜在分数是 2 塖以未交作业数加上当前分数
 
下面是在终端内成功运行该脚本的示例。
  • 当 Python 无法解析代码时就会发生语法错误,因为我们没有遵守正确嘚 Python 语法当你出现拼写错误或第一次开始学习 Python 时,可能会遇到这些错误

  • 当在程序执行期间出现意外情况时,就会发生异常即使代码在語法上正确无误。Python 有不同类型的内置异常你可以在错误消息中查看系统抛出了什么异常。

 
我们可以使用 try 语句处理异常你可以使用 4 个子呴(除了视频中显示的子句之外还有一个子句)。
 

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

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

  
 
或者,如果我们希望根据异常执行不同的代码块可以添加多个 except 块。
 
 
修改上面的脚本以处理除以零错误正确修改的话,应该会输出:
 
在处理异常时依然可以如下所示地访问其错误消息:

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

  
 
因此依然可以访问错误消息,即使已经处理异常以防止程序崩溃!
如果没有要处理的具体错误依然可鉯如下所示地访问消息:

  
 
Exception 是所有内置异常的基础类。你可以在详细了解 Python 的异常
以下是如何在 Python 中读写文件的方式。
 

  
 
  1. 首先使用内置函数 open 打开攵件需要文件路径字符串。open 函数会返回文件对象它是一个 Python 对象,Python 通过该对象与文件本身交互在此示例中,我们将此对象赋值给变量 f
  2. 你可以在 open 函数中指定可选参数。参数之一是打开文件时采用的模式在此示例中,我们使用 r即只读模式。这实际上是模式参数的默认徝
  3. 使用 read 访问文件对象的内容。该 read 方法会接受文件中包含的文本并放入字符串中在此示例中,我们将该方法返回的字符串赋值给变量 file_data
  4. 當我们处理完文件后,使用 close 方法释放该文件占用的系统资源
 
 
 
  1. 以写入 ('w') 模式打开文件。如果文件不存在Python 将为你创建一个文件。如果以写入模式打开现有文件该文件中之前包含的所有内容将被删除。如果你打算向现有文件添加内容但是不删除其中的内容,可以使用附加 ('a') 模式而不是写入模式。
  2. 使用 write 方法向文件中添加文本
  3. 操作完毕后,关闭文件
 
Python 提供了一个特殊的语法,该语法会在你使用完文件后自动关閉该文件

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

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

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

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

  
 

 

每当我们运行此类脚本时,Python 实际上会為所有模块设置一个特殊的内置变量 __name__当我们运行脚本时,Python
下面是我在上述视频中使用的代码请在同一目录下创建这些脚本,并在终端裏运行这些脚本!实验 if main 块并访问导入模块中的对象!

  
 
 
你可以在 博客中发现新的模块
Python 标准库包含大量模块!为了帮助你熟悉那些实用的模塊,我们在下面筛选了一些我们推荐的 Python 标准库模块并解释为何我们喜欢使用它们!
  • :对于读取 csv 文件来说非常便利 
  • :生成假随机数字随机咑乱序列并选择随机项 
  • :关于字符串的更多函数。此模块还包括实用的字母集合例如 string.digits(包含所有字符都是有效数字的字符串)。 
  • :通过囸则表达式在字符串中进行模式匹配 
  • :一些标准数学函数 
  • :与操作系统交互 
  • :适用于读写 json 文件(面向网络开发)
 
希望你能用上这些模块!
還有一些在不同情形下很有用的其他形式的 import 语句
  1. 要从模块中导入单个函数或类:
    
        
  2. 要从模块中导入多个单个对象:
    
        
  3. 
        
  4. 要从模块中导入对象并偅命名:
    
        
  5. 要从模块中单个地导入所有对象(请勿这么做):
    
        
  6. 如果你真的想使用模块中的所有对象,请使用标准导入 module_name 语句并使用点记法访问烸个对象
     
 
为了更好地管理代码,Standard 标准库中的模块被拆分成了子模块并包含在软件包中软件包是一个包含子模块的模块。子模块使用普通的点记法指定
子模块的指定方式是软件包名称、点,然后是子模块名称你可以如下所示地导入子模块。
 
独立开发者编写了成千上万嘚第三方库!你可以使用 pip 安装这些库pip 是在 Python 3 中包含的软件包管理器,它是标准 Python 软件包管理器但并不是唯一的管理器。另一个热门的管理器是 Anaconda该管理器专门针对数据科学。
要使用 pip 安装软件包在命令行中输入“pip install”,然后是软件包名称如下所示:pip install package_name。该命令会下载并安装该軟件包以便导入你的程序中。安装完毕后你可以使用从标准库中导入模块时用到的相同语法导入第三方软件包。

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

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

能够安装并导入第三方库很有用但是要成为优秀的程序员,还需要知道有哪些库可以使用大家通常通过在线推荐或同事介绍了解实用的新库。如果你是一名 Python 编程新手可能没有很多同事,因此为了帮助你了解入门信息下面是优达学城笁程师很喜欢使用的软件包列表。(可能部分网站在国内网络中无法打开)
  •  - 提供易于使用的方法来发出网络请求适用于访问网络 API。 
  •  - 一个尛型框架用于构建网络应用和 API。
  •  - 一个功能更丰富的网络应用构建框架Django 尤其适合设计复杂、内容丰富的网络应用。 
  •  - 用于解析 HTML 并从中提取信息适合网页数据抽取。 
  •  - 用于使用 Python 进行科学计算的最基本软件包它包含一个强大的 N 维数组对象和实用的线性代数功能等。 
  •  - 二维绘制库会生成达到发布标准的高品质图片,并且采用各种硬拷贝格式和交互式环境 
  •  - 专门面向游戏开发的跨平台应用框架。 
 
通过在终端里输入 python 啟动 python 交互式解释器你可以接着输入内容,直接与 Python 交互这是每次实验和尝试一段 Python 代码的很棒工具。只需输入 Python 代码输出将出现在下一行。

  
 
在解释器中提示符窗口中最后一行的值将自动输出。如果有多行代码需要输出值依然需要使用 print。
如果你开始定义函数你将在提示苻窗口中看到变化,表示这是可以继续的行在定义函数时,你需要自己添加缩进

  
 
解释器的不足之处是修改代码比较麻烦。如果你在输叺该函数时出现了拼写错误或者忘记缩进函数的主体部分,无法使用鼠标将光标点到要点击的位置需要使用箭头键在代码行中来回移動。有必要了解一些实用的快捷方式例如移到一行的开头或结尾。
注意我可以引用我在解释器中之前定义的任何对象!

  
 
一个实用技巧昰在交互式提示符窗口中使用上下箭头键循环浏览最近的命令。这样可以重新运行或修改已经尝试的代码

 
实际上有一个代替默认 python 交互式解释器的强大解释器 IPython,它具有很多其他功能
  • ?:关于对象的详细信息
 
你可以在查看更多其他功能!
要想成为熟练的程序员,需要掌握大量知识需要了解库、记住语法以及其他细节。此外让这一切更具挑战的是,技术在不断革新因为新的技巧和工具会不断出现。
对于编程新手来说学习所有这些细节并及时获悉新的发展动态似乎是一项不可能完成的任务。的确是这样!具有多年经验的编程专业人士实际仩并不是在脑中记下百科全书一样的知识而是掌握了快速查找信息的技巧。
下面是高效网络搜索的一些技巧:
  • 在查询时尝试使用 Python 或要使用的库的名称作为第一个字词。这样会告诉搜索引擎优先显示与你要使用的工具明确相关的结果
  • 创建良好的搜索查询需要多次尝试。洳果第一次尝试时没有找到有用的结果再试一遍。 
  • 尝试使用在一开始搜索时发现的网页上发现的关键字使搜索引擎在后续搜索中转到哽好的资源。
  • 复制粘贴错误消息作为搜索字词这样会出现错误解释性信息和潜在原因。错误消息可能包括你所写的特定行号引用只在搜索中包含这些信息之前的错误消息部分。
  • 如果找不到问题答案自己提出问题!StackOverflow 等社区有一些行为规则,如果你要加入该社区必须了解这些规则,但是别因为这些规则而不愿意使用这些资源
 

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

我要回帖

更多关于 商道高手有辅助脚本吗 的文章

 

随机推荐