我用什么写Python?

news/2024/4/26 7:06:28/文章来源:https://blog.csdn.net/qq_40523737/article/details/130377254

入门教程、案例源码、学习资料、读者群

请访问: python666.cn

大家好,欢迎来到 Crossin的编程教室 !

通常来说,每个程序员都有自己趁手的兵器:代码编辑器。你要是让他换个开发环境,恐怕开发效率至少下降三成。然而,每个人对编辑器的喜好各不相同,甚至引发出诸如“神的编辑器”与“编辑器之神”这种信仰之争。但也正由此可见,个性化的编辑器对于一个程序员的重要性。

对编程新手来说,开发环境的选择常常成为入门后的第一道坎。因为捣鼓了半天没能成功运行代码而被迫从入门到放弃的情景并不少见。初上手时选择的编辑器是否易用也会直接影响你的学习热情。

今天就来讲讲我对 Python 编辑器的经验。

我们用来写 Python 的工具有两类:

一种是被称为 IDE集成开发环境,它们为开发而生。如 IDLE、PyCharm、Spyder 等。

另一种更像是文本编辑器,只不过比较强大,可以支持编写和运行代码。如 SublimeText、Emacs、Vim 等。在此我主要介绍下我个人平常用的几款。

1. IDLE

91c4cf67ba54be26b939dbccd508ede6.jpeg

讲真,再怎么降低标准,IDLE 恐怕也算不上一个“好”的编辑器。不论是自动补全、语法提示,还是项目文件管理,甚至是高亮提示,它要么不支持,要么支持得很勉强。“用户体验”基本没有,更要命的是,经常在某些系统或某些版本下无法运行或无法输入。

但没办法,人是亲儿子啊!安装完 Python 什么配置都不用做(甚至不用理会环境变量),就可以用它来编写和运行代码了。对一个没什么计算机基础的新人来说,还要啥自行车要啥手表呢?直接写就完啦!

所以在我的零基础教程,以及其他不少入门级教程里,都把 IDLE 当做了一开始的演示开发环境。但我不得不强调下,IDLE 仅仅是编程世界的敲门砖,它让你快速上手,但不可能陪你走下去。尽早去寻找属于你的工具吧。

2. SublimeText

3b60b1e4d13632b90127f9711ba23bd8.jpeg

Sublime 是一个功能丰富的文本编辑器。除了写 Python 外,我也会拿它写一写其他代码如 JS、HTML、CSS,并且它也是我日常使用的记事本和文本编辑器。你们看到的大多数微信推送文章,最初的草稿都是是用 Sublime 写成的。

默认安装后,如果你的电脑上已装好 Python,Sublime 就可以运行 .py 文件,并且具有语法提示、补全的功能。不支持更复杂的语法检查,也不支持控制台输入(input),但可以通过安装额外插件来补充功能。如果你电脑上有多个版本的 Python,选择起来也稍复杂。因此我常年打开着 Sublime,写一些代码片段,或者审核学员提交的作业时使用。

Sublime 是收费软件,但可以免费使用。

3. PyCharm

84e5b94d975e03ce17931cd013d32064.jpeg

这是我在课程中和答疑群里主要推荐的开发工具。除了一开始配置可能会遇到点麻烦,以及启动时间略慢以外,真的是很好用。PyCharm 在项目内部提供了对编码、第三方库的管理,形成一个小的沙盒,避免系统中其他的配置对开发环境造成的干扰,让新手少踩点坑。不过有点不幸的是:如果你没有按照它设想的那样配置好,有可能因此踩到新的坑。

我个人用 PyCharm 做的开发主要是课程和演示项目。如果你在使用其他编辑器时遇到问题,不妨同我的例子保持一致试试,减少不必要的折腾。

PyCharm 也是收费软件,但有免费的社区版和教育版(需申请)。我用的就是社区版,功能足够学习了。如果你一定需要汉化版或者专业版,可自行网上搜索。

4. IPython

710c40597e3ab1892f60cf161d1e3e84.jpeg

IPython 是一个交互式的开发环境,也就是我们课程一开始用过的 Python Shell 的加强版。通过 pip install ipython 即可安装。主要是增加了自动补全和历史命令记录,语法高亮也看着舒服点。但新手可能不太会用到。如果你到了上服务器运行代码的阶段,那一定得装一个。

同 Sublime 一样,IPython 我也一直开着。因为交互式的环境很适合调试几句代码,测试一下某个语法的特性,看看某个模块里方法的调用,甚至用 help() 命令去看文档。看过我答疑的同学也知道,我经常是针对问题在 IPython 里运行一段代码贴过去。我强烈建议大家养成运行代码的习惯,尤其是在你看书看教程的时候,不要光顾着看,一定把编辑器开着随时敲一敲代码跑一跑。很多问题通过几次尝试自然就领会了。

5. Jupyter

cdae2a82cc294eaa179636835b655a9d.jpeg

也就是 IPython Notebook。它相当于是把上面提到的 IPython 做成了网页版,但又不仅仅是网页版。

我之前很少用,但最近有点爱上它:因为用它来写爬虫或数据分析实在太舒服了!写爬虫的时候免不了反复尝试,有了交互式的 Jupyter,你可以步步为营,逐步修正你的代码,而不用每次都从头抓。数据分析则是因为它和 matplotlib 以及 echarts 都结合得很好,无需弹窗,页面上直接显示绘图结果。

对于想深入数据分析的同学,拿一本《利用 Python 进行数据分析》,再就着一个开着的 Jupyter 页面,一个个例子去玩吧。

另外,因为是网页版的,所以如果你有服务器的话,甚至可以用它做一个随时随地写代码的在线版 Python 工具。不过自己用用就好,千万不要直接对外公布,它会把你的服务器环境暴露在外。

5.Emacs

6be01cdc5c69f5be456f5f1e44339d92.jpeg

终于来了,神的编辑器。

这是多年开发的老习惯。你们看到的编程教室网站就是在 Emacs 上写成的。但这个门槛较高,也不存在推荐了,大家看看就好。

d9b608f54ddafb786769ca141cc9df7e.png

为了用 Emacs 我都改了自己的键位。最近手指有点疼,考虑是不是再加个脚踏板8fdac4cc489c5f13a9d3c2ef0c8586ef.png

以上是我常用的编辑器。算是有点分裂,不过确实各有各的优势。所以没必要争论哪个更好,按自己的需要选择用着顺手的就好。

另外肯定有同学要说了,居然没有 VS Code !? 的确,VS Code也是非常棒的 Python 编辑器,不过我个人用的不多。熟悉的朋友可以在留言区中说说使用感想。

对于初学,我还是建议用 PyCharm,功能比较完善,各方面相对均衡。之前写过两篇关于 PyCharm 的介绍文章,

公众号(Crossin的编程教室)里回复 PyCharm 可以看到。

不过似乎最近的版本又做了一些改动,可能我又得再写一篇新的了。

而其他还有不少优秀的编辑器,如 Atom、Vim、Spyder 等(不推荐 PyScripter),因我自己并无长期使用经验,就不搬运网上的介绍了。如果你在使用或者有兴趣,搜索下会有很多教程。有推荐的欢迎留言。但仅我上述提及的几个其实也足够用了。

工欲善其事,必先利其器。选个好的编辑器,学习效率大增,起码像少半个括号少半个引号这种错误就不太会出现了。

不过最终嘛,工具还是看谁来用。只要你写得够多,记事本也能成就大牛。(但认真地说:如果你还不是大牛,任何开发相关的事情都不要用 Windows 自带的记事本!07ff1592113035ecf5ba982bba77bfea.png

感谢转发点赞的各位~


_往期文章推荐_

谁说不能用中文写代码?


如需了解付费精品课程教学答疑服务

请在Crossin的编程教室内回复: 666

470906040d071ebaf88df836173cceb9.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_103694.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c/c++:char*定义常量字符串,strcmp()函数,strcpy()函数,寻找指定字符,字符串去空格

c/c:char*定义常量字符串,strcmp()函数,strcpy()函数,寻找指定字符,字符串去空格 2022找工作是学历、能力和运气的超强结合体,遇到寒冬,大厂不招人,此时学会c的话, 我所…

Python爬虫基础之二

Python爬虫基础包括HTTP协议、HTML、CSS和JavaScript语言基础、requests库的使用、Beautiful Soup库的使用、xpath和正则表达式的使用等。此外,还应该了解反爬虫机制和爬虫的一些常见问题及解决方法。 上一篇文章讲解了有关条件判断语句、循环语句等相关知识&#…

陆奇-奇绩创坛-chatGPT新范式,新时代,新机会

奇绩创坛-新范式,新时代,新机会 01-新范式 新范式的新拐点 新范式的历史环境 新范式的社会影响 新范式的缔造者:Sam Altman和OpenAI 新范式的动力引擎 新范式的演化路径 02-新时代 新时代的宏观发展格局 新时代的中国机会 新时代的OpenAI生…

IT项目管理之软件测试

1. 定义 软件测试是使用人工或者自动的手段来运行或者测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 在软件投入使用前,要经过一系列的严格测试,才能保证交付质量。 2. QC & QA &a…

开源模型ModelScope的初探使用

泛AI开发者的一站式模型服务产品平台 阿里达摩院推出了一个开源的模型共享平台,包括计算机视觉、多模态、自然语言处理等多个领域上手即用的模型,如果AI相关模型感兴趣的同学,或者想基于基础模型做业务场景的同学,都可以用这个平…

C++三大特性—继承 “访问控制”

本文主要阐述关于C继承中基类与派生类之间的访问关系 继承方式与访问方式 继承定义格式: 派生类可以继承定义在基类的成员,但是派生类的成员函数不一定有权访问从基类继承来的成员    访问限定符的作用:控制派生类从基类继承而来的成员是否…

学习系统编程No.23【信号实战】

引言: 北京时间:2023/4/23,最近学习状态不怎么好,总是犯困,没精力的感觉,可能是病没有好彻底的原因,也可能是我内心因为生病而认为摆烂理所应当,反正最后导致摆烂,课现在…

android之 Launcher改造仿桌面排版的效果

一,背景 1.1 新接手一个灯光控制项目,其页面和效果还是比交复杂的,其中一个功能就是仿苹果桌面来排版灯具,支持拖拽,分组,分页。 拖动图标的时候判断是否空白位置还是已经有占位了,有的话就把…

体验了多款国产类ChatGPT产品后,我选择了道合顺的【ChatIC】

💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后端的开发语言A…

springboot实用配置

springboot实用配置 (一)打包与运行(二)配置高级1.临时属性设置2.配置文件分类3.自定义配置文件 (三)多环境开发(四)日志1.日志基础2.日志输出格式控制3.日志文件 (一&am…

14、RPC与gRPC

目录 一、rpc基础1 - rpc入门2 - 基础的rpc通信3 - 基于接口的RPC服务 二、rpc编码1 - gob编码2 - json on tcp3 - json on http(待补充) 三、prtotobuf编码1 - prtotobuf概述2 - protobuf编译器3 - 序列化和反序列化4 - 基于protobuf的RPC(待…

vue项目 解决el-table自适应高度,vue页面不显示多条滚动条,超出的部分让el-table内部出现滚动条(推荐使用第二种解决方案)

一、需求 后台管理系统:最常见的页面都是由—>左侧菜单、头部tabView页签、主体数据渲染页面(AppMain);而一般AppMain页面又分为: 搜索区域、table数据(分页),可能也会存在底部&a…

QGIS数据可视化学习笔记01——一般的图层样式调整和在地图上添加图表

说明:QGIS数据可视化章节用的数据为QGIS绘制一张地图学习章节的数据,传送门:https://blog.csdn.net/qq_47188967/article/details/130196284 一、 一般的图层样式调整 首先呢,在QGIS中打开上一章节用的数据,界面如下&…

基于飞桨 PaddleVideo 的骨骼行为识别模型 CTR-GCN

main.pysame_seedsparse_argsmain ensemble.pyconfigs 文件夹Joint(J)的配置文件ctrgcn_fsd_J_fold0.yamlctrgcn_fsd_J_fold1.yaml Joint Angle(JA)的配置文件ctrgcn_fsd_JA_fold0.yaml paddlevideo 文件夹utils 文件夹__init__.p…

MATLAB符号运算(七) 更新中...

目录 1、实验目的: 2、实验内容: 1、实验目的: 1)掌握定义符号对象和创建符号表达式的方法; 2)掌握符号运算基本命令和规则; 3)掌握符号表达式的运算法则以及符号矩阵运算&#xf…

[JavaEE初阶] 类加载机制

在真正的战争到来之前,尽可能地变得强大吧~ 文章目录 前言1. 类加载1.1 类加载的过程1.2 类加载的时机1.3 双亲委派模型 前言 这个问题是面试经典题,让我们来求甚解吧~ 1. 类加载 1.1 类加载的过程 如下图 加载,找到.class文件,读取文件内容验证,验证.class文件的格式是否…

SQL优化(3):order by优化

MySQL的排序,有两种方式: Using filesort : 通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫 FileSort 排序。 Using index :…

Spring lettuce读写分离

Redis 的 Sentinel 模式默认配置下 Redis 的客户端只对 Master 读写,另外2个Slave闲置。若主从节点在不同机房,在读取时会有跨机房的网络时延,并且比同机房访问更容易发生网络丢包。故在一些场景可以考虑将跨机房的服务节点设置为读写分离 Re…

Python中 re.findAll()、re.sub()、set()的使用

1. re.findall() re.findall():函数返回包含所有匹配项的列表。返回string中所有与pattern相匹配的全部字串,返回形式为list / 数组。 由函数原型代码可知,findall() 函数存在三个参数: 1. pattern:正则表达式中的 ‘模…

Opencv+Python笔记(五)图像阈值化处理

图像阈值化可以理解为一个简单的图像分割操作,阈值又称为临界值,它的目的是确定出一个范围,然后这个范围内的像素点使用同一种方法处理,而阈值之外的部分则使用另一种处理方法或保持原样。 阈值处理有2种方式,一种是固…