在Atom中配置Python开发环境

在Atom中设置Python开发环境

当然,这里有很多很棒的文本编辑器。例如Sublime Text, Brackets, Atom。我一直都是Atom的粉丝,因为它是完全免费的,而且它有很多可用的包和主题,使得编码更容易一些。在这里,我将介绍如何使用Atom配置一个“Python友好”的开发环境、一些对python编码有用的软件包,然后看看如何编写一些基本代码。

1)下载Atom

首先,如果我们要使用Atom作为我们的文本编辑器,我们最好提前下载它。这里有一个链接来下载:https : //atom.io/

2)安装一个语法高亮主题

安装完Atom之后,您可以转到首选项,然后在首选项菜单中选择+ install。然后,选择主题选项以下载主题。语法高亮主题将会有一个配色方案,使代码更容易阅读。我发现某些主题在JavaScript中似乎很棒,但它们在Python中不具备可读性。例如,对于我的UI和语法高亮主题来说,我一直是Atom Dark和One Dark的忠实粉丝。直到最近,我主要使用JavaScript,React和Node进行开发,并且这个主题对于以上这些语言来说非常适合我。但是,在Python中,我不太喜欢这个主题。找到适合你的语法高亮主题可能很困难,尤其是一旦你习惯了一个主题。

这里是一些我最爱的Python主题:

1)Atom Material

这是我将在整篇文章中使用的主题,并且是上述示例中你所见到的主题。我喜欢它,因为很多其他主题趋向于是单色的,并且因为这个原因它们可读性很差。Atom Material 使用了很多颜色,而且对比度很高,因此很容易查找和读取代码。https://atom.io/themes/atom-material-syntax

2)Jackhammer

这一个没有像 Atom Material 那么广泛的颜色使用,但仍有很多的颜色对比。https://atom.io/themes/jackhammer-syntax

3)PreDawn

另一个很棒的主题。我见过不少开发者使用这个,看起来非常Python友好。https://atom.io/themes/predawn-syntax

如果您想使用其中的一种,或者找到您自己的,可以在主题按钮右侧的搜索栏中搜索它们。或者对“syntax”或“python”进行通用搜索。

3)自动补全的 Python 包

并非每个人都喜欢自动补全功能。并且我也同意有时它可能会带来不便。但是,如果你像我一样,只是刚刚使用Python起步,它可能非常有用。autocomplete-python软件包让您可以选择由Jedi或者Kite提供支持。Jedi是一家本地图书馆,而Kite则是一个在线图书馆。以下是有关该软件包的更多文档:https : //atom.io/packages/autocomplete-python

4)文件图标包

文件图标包允许您查看您正在处理的每种文件类型的图标/徽标。如果你只用Python工作,或者只用JavaScript或其他工具,那么这可能并不是问题。但很可能您的文件树可能包含多种语言和格式的多个文件。在这种情况下,使用此包可以帮助您轻松找到文件树中的文件。https://atom.io/packages/atom-file-icons

5)Linter-flake8 包

这是一个很棒的模块化源代码检查器。一旦你安装了软件包,你还需要使用命令行来完成安装。具体操作有详细的文档说明。https://atom.io/packages/linter-flake8

6)Minimap 包

Minimap不是python特有的,但对于任何编码语言来说都是一个很好的工具。一旦你的代码长达数百行,可能很难找到你在代码库中的位置。Minimap提供整个代码的“缩小”视图,并突出显示代码中的位置,并将整个可视化文件保存在原子编辑器中的简明侧边栏中。https://atom.io/packages/minimap

7)python-autopep 8包

autopep8会自动格式化Python代码以符合PEP 8风格指南。它使用pycodestyle工具程序来确定代码的哪些部分需要格式化。autopep8能够修复pycodestyle报告的大部分格式问题。安装此软件包后,可能需要单击设置并选择“Format on Save”选项。这也需要您在命令行上使用pip完成安装,正如您在文档中看到的那样。https://atom.io/packages/python-autopep8

8)脚本包

到目前为止,该列表中最重要的一个软件包是脚本包。这允许您使用“command + i”键盘快捷键在Atom编辑器中运行脚本。代码将在文本编辑器底部的面板中运行。https://atom.io/packages/script

9)开始使用 Python 编写代码

我最喜欢的开始写代码的方法之一是找到一个需要解决的问题。Project Euler网站有许多基于数学的问题,可以用任何编程语言来解决。由于我是Python新手,因此决定选择我在JavaScript中解决的一个Project Euler网站上的问题,并在Python中解决这个问题。Project Euler上的第5个问题如下所示:

2520是能够被从1到10整除的最小的整数
能够被从1到20整除的最小的整数是多少?

在JavaScript中,我这样解决了这个问题:

let number = 1;

  while ( number % 1 !== 0 || number % 2 !== 0 || number % 3 !== 0 || number % 4 !== 0 || number % 5 !== 0 || number % 6 !== 0 || number % 7 !== 0 || number % 8 !== 0 || number % 9 !== 0 || number % 10 !== 0 || number % 11 !== 0 || number % 12 !== 0 || number % 13 !== 0 || number % 14 !== 0 || number % 15 !== 0 || number % 16 !== 0 || number % 17 !== 0 || number % 18 !== 0 || number % 19 !== 0 || number % 20 !== 0) {
  number = number + 1;
  }

console.log(number);

这里我有一个while循环,从1开始,它检查数字是否可以被1到20整除。如果不是,它会+1并再次检查,直到找到匹配的数字。所以在Python中,我试图简单地使用相同的代码,但是将它翻译成Python,看起来像这样。让我先写一个事实,这不是一个好主意。

number = 1

while (number % 1 <> 0 or number % 2 <> 0 or number % 3 <> 0 or number % 4 <> 0 or number % 5 <> 0 or number % 6 <> 0 or number % 7 <> 0 or number % 8 <> 0 or number % 9 <> 0 or number % 10 <> 0 or number % 11 <> 0 or number % 12 <> 0 or number % 13 <> 0 or number % 14 <> 0 or number % 15 <> 0 or number % 16 <> 0 or number % 17 <> 0 or number % 18 <> 0 or number % 19 <> 0 or number % 20 <> 0):
    number += 1
    print number

基本上,它和上面的代码做了相同的事情,但是是用Python编写的。我很快意识到的一个主要区别是,Python将打印从1开始的每一个数字,直到达到答案,并且这可能需要很长时间。所以我开始尝试理解Python,下面是一些语法上的差异,这将有助于初学者:

1)对于循环

我发现JavaScript中正常的循环如下所示:

for (var i = 0; i < array.length; i++) {
    array[i]
  }

但是,在Python中,它看起来更像是JavaScript for“in”循环:

for x in range(0, 3):
    print "We're on time %d" % (x)

for循环从0到2,因此运行3次。

2)变量

在JavaScript中,需要事先使用let、var或const来定义变量。

let x = 1
const y = 2
var z = 3
let my_array = [1, 2, 3, 4]

在Python中,只需键入变量名称而不用定义变量。

x = 1
y = 2
z = 3

my_array = [1, 2, 3, 4]

3)函数

在JavaScript中,函数使用“function”来定义,并且可以接受一个参数或多个参数:

function test_prime(n){
// do stuff
}

在Python中,它们基本相同,但是使用关键字“def”来定义。

def test_prime(n):
   //do stuff

函数调用之间的另一个主要区别在于,在JavaScript中,函数内部的工作始终在大括号之间,遵循参数。在Python中,函数以冒号开头,而不是花括号,函数是这一行下面缩进的任何东西。在使用我们之前安装的一些软件包的时候,您经常会看到“unexpected indent”的提示,让您知道您已经缩进了某些不需要缩进的内容。如果您更熟悉像JavaScript这样的缩进不会影响代码的语言,这会有点难以适应。

4)控制台日志

在JavaScript中,如果你想运行一个脚本或者代码块,你可以直接使用console.log

console.log(my_function);

在Python中,你通常使用“print”命令

print solution

有了这些内置模块,我开始使用Stack Overflow,并为我的原始项目Euler问题找到了更好的解决方案:

check_list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

def find_solution(step):
    for num in xrange(step, 999999999, step):
        if all(num % n == 0 for n in check_list):
            return num
    return None

if __name__ == '__main__':
    solution = find_solution(2520)
    if solution is None:
        print "No answer found"
    else:
        print "found an answer:", solution

这里是这个问题在Stack Overflow上的链接:https : //stackoverflow.com/questions/8024911/project-euler-5-in-python-how-can-i-optimize-my-solution

在这里,我们有一个变量“check_list”,它包含一个数组。

在函数“def find_solution”的内部,我们遍历数字1到999999999,并检查每个数字的是否能够被1到20整除。如果匹配,我们返回这个数字,否则我们不返回。

然后,我们提出了上个问题的解决方案:不是每个数字或每两个数字检查一次,而是每2520个数字检查一次,这会使代码运行得更快。然后打印答案,或者如果找不到,它会打印“No answer found”。

很明显,我是一个Python新手,但如果你像我一样,刚刚开始学习Python,希望这篇文章可以给你一些帮助。非常感谢您的阅读!

本文的版权归 赵康 所有,如需转载请联系作者。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏李家的小酒馆

Sublime 正则替换

打开替换的窗口 ? 2. 在Find What 写入待匹配的正则表达式,然后在Replace With写上要替换的内容($1代表第一个括号内内容,依次类推...

2560
来自专栏逆向技术

学习逆向知识之用于游戏外挂的实现.第三讲,通过游戏外挂.分析红色警戒金钱基址.以及确定基址小技巧.

                          分析红色警戒金钱基址.以及确定基址小技巧.

641
来自专栏Ryan Miao

省市县三级联动

上次找到地区编码后,就测试省市县。网上找到例子感觉不是很合适,然后修改了下。 本来是从自己数据库查询,但做测试的话,在网上找到了一个地区编码的api,然后就是跨...

2666

在Atom中设置Python开发环境

当然,网络上有很多很棒的文本编辑器。Sublime Text,Bracket,Atom等。就我个人而言,我一直都是Atom的粉丝,因为它是完全免费的,并且它有...

3608
来自专栏编程

如何扩展一个自定义SOP节点

平安夜祝大家平平安安,以后的文章关于C++语言方面的内容会多一些,不太理解的话就当一乐子看,了解一下Houdini底层架构知识也是好的。能保证的是文章的内容都是...

2256
来自专栏BY的专栏

Swift 3.1的新改动

3635
来自专栏Crossin的编程教室

Python 与 Excel 不得不说的事

数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件。因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道。 ...

3256
来自专栏DeveWork

WordPress免插件仅代码实现文章浏览次数的方法(1)

在WordPress中为每一篇文章提供个“浏览次数”计数,一来可以间接地给访客一种文章有价值的暗示,二来方便自己获取相关数据(访客的内容偏好等等),三貌似想不到...

1945
来自专栏技术墨客

React——Flow代码静态检查 转

Flow是Facebook开源的静态代码检查工具,他的作用是在运行代码之前对React组件以及Jsx语法进行静态代码的检查以发现一些可能存在的问题。Flow可以...

401
来自专栏Java技术分享

Intellij IDEA调试功能使用总结

专注于Java领域,追求简洁,每天推送高质量技术文章,实用教程。

2637

扫码关注云+社区