别找了,Thonny 才是 Python 小白的最理想的 IDE
来源 | Python编程时光
作者 | 写代码的明哥
头图 | 下载于视觉中国
当你在搜索引擎(如百度)或者各种问答社区(如知乎)搜索『学习Python 最好的 IDE/编辑器是哪个?』的时候,我想答案肯定是:PyCharm、Jupyter、VSCode、Vim、Sublime Text。
不过,在我看来,最好的编辑器 应当视情况而定,比如
如果你是搞数据分析、机器学习的,推荐你使用 Jupyter
如果是搞大型工程项目的,经常要阅读开源项目代码,推荐你使用 PyCharm
如果你需要使用多种编辑语言,并且不喜欢使用 JB 家的破解版软件,推荐你使用 VS Code
果你追求极客,那推荐你使用 Vim
除此之外,还有非常多优秀的 Python 代码编辑器,比如 Sublime Text、Atom、Wing、Spyder 等。
但是我今天要介绍的这个 IDE ,你很有可能没有使用过,更有可能连听都没听过,它叫 Thonny,它是由塔尔图大学开发,适合新手程序员。其界面没有任何复杂或多余功能,很容易上手。另一个适合新手的地方是,你可以看到 Python 在每一步中对你的表达式的评估。
我推荐所有的 Python 新手,都去安装一个 Thonny 。
理由如下:
它支持全平台(Windows,Mac,Linux)
它支持简体中文,对英文不好的同学非常友好
它界面简洁直白,内置的功能都是完全面向新手的
它内置 Python 3,无需新手额外安装Python和配置环境
它的调试界面非常直观,可吊打市面上 90% 的编辑器
它提供比代码行粒度更小的调试模式,是它闪光点之一
它支持语法高亮,应该是基本功能了
它支持代码补全(只可惜不是自动,而是手动)
它内置非常简洁易用的图形界面包管理器
下面一一为大家进行演示:
全平台支持
无论你使用的是 Win、Mac,还是 Linux,Thonny 都有对应的版本支持。
Win 和 Mac 版本的安装包,我已经全部打包好了,可在下面公众号后台【搞搞软件】回复 thonny 获取下载链接。
对于 Linux 用户,需要使用命令来安装
1# Binary bundle for PC (Thonny+Python):2$ wget -O - https://thonny.org/installer-for-linux)34# With pip5$ pip3 install thonny67# Debian, Raspbian, Ubuntu, Mint and others:8sudo apt install thonny9
10# Fedora
11$ sudo dnf install thonny
支持简体中文
Thonny 是虽然是外国人开发的,不过它目前也是支持简体中文的,这对于英文不好的初学者,真的是福音。
在你安装的时候就会提示你进行语言选择

如果安装时忘记设置,同样也是可以在菜单栏二次更改。

内置 Python
对于新手来说,最重要的就是能够尽快有一个可以跑代码的环境
Thonny 内置了 Python 3.7.9 ,因此它不需要你去官网下载 Python 解释器,也不用你去学习如何配置环境变量。

通过查看 os 模块的路径,可以得知这个 Python 的安装路径

当然了,如果你觉得 Python 3.7 已经过时了,想使用最新的 Python 3.9 也是可以设置的


简洁的界面
整个软件的界面非常的简洁,可以说多余的功能一个都没有,而该有的功能也一个不少。
随便打开一个测试用的 Python 脚本,点击右上角的运行按钮就可以运行这个脚本程序,程序中打印的内容会在 Shell 窗口中打印,从界面上很容易可以看出,实际上你点击运行按钮后,就是在 Shell 窗口中执行一条 %Run xx.py 的魔法命令。

可视化包管理器
同时它还自带了可视化的包管理器,方便新手安装和卸载 Python 的各种第三方包

手动代码补全
同时作为一款简易的 IDE,Thonny 同时也是支持代码补全,只不过这代码补全并不是那么智能,需要按下快捷键(⌃ + s 或者 tab 键)来手动触发。

惊艳全座的调试功能
以上如果还不足以让你动心,别急,我来介绍下 Thonny 最让为惊艳的调试功能。
通过菜单栏调出 变量面板,此时你在 Shell 中定义的变量,都会显示在变量面板上,一旦你对变量进行修改,变量面板也会实时刷新。
通过点击控制面板上的小甲虫,就进入了调试模式,甲虫旁边的四个按钮就会跟着亮起来,分别是
步过(Step Over) :以代码行为单位的单步调试
步进 (Step Into):比步过更细粒度的单步调试,可进入函数
步出(Step Out) :执行到函数执行结束
恢复执行 :执行到程序结束

咦,你肯定会说,明哥,你别标题党了,这些功能在 PyCharm 上不是都有吗?
别急,请你接着往下看,Thonny 中的步进调试达到的效果,就算是 PyCharm 也还没有做到如此便于新手学习的调试体验。
它可以把单行表达式,拆分成多个步骤进行调试,在这个过程中,表达式中的变量名会直接显示为其数值,这对于新手理解复杂的单行表达式是非常有帮助的。
具体请看下面这张动图,age <= 3 这个表达式,会先显示 age 的变量值,然后和3进行逻辑运算,再把运算的结果显示出来。
当你使用 步进 进入函数调用,每调用一步函数,都会重新打开一个带有单独的局部变量表和代码指针的新窗口,它能够帮助学习者充分了解函数调用的原理,尤其对于理解递归这种相对复杂的逻辑。
下面以一个生成 斐波那契数列 的函数为例演示

Thonny 中步进调试可以说是它的一大亮点,但是可惜的是Thonny 目前还不支持设置断点,这是比较遗憾的。
快捷键一览表
Windows 的快捷键

Mac 的快捷键

写在最后
取之 Python,用之Python,Thonny 是基于 Python 内置图形库 tkinter开发出来的一个可视化工具,它是完全面向 Python 初学者的 轻量级 Python IDE,它能帮助初学者搞懂每一行代码的运行细节,它帮小白解决了一些繁杂的环境问题,真正做到拿到即学。
点这里????关注我们,记得标星~~~
更多精彩推荐
☞一年新增457万例,用 Python 揭示癌症的可怕之处☞疫情期间网络攻击花样翻新,全年 81748 起安全事件背后暗藏规律☞用数据分析《你好,李焕英》“斐妈”爆红的真相☞从猫狗不分到实时识别准确率超过99%,计算机图像识别是如何做到的?
点分享点收藏点点赞点在看
相关文章:

图书抄袭何时休,技术人的版权在哪里?
今天,一个很偶然的机会,看到了一本北京邮电大学出版社出版的技术图书《Linux服务器架设、性能调优、集群管理教程——实训与项目案例》,感觉有种似曾相识的感觉,于是打开目录大概了解了下,一个我不想看到的现象发生了&…

让MySql支持表情符号(MySQL中4字节utf8字符保存方法)
UTF-8编码有可能是两个、三个、四个字节。Emoji表情是4个字节,而MySQL的utf8编码最多3个字节,所以数据插不进去。解决方案:将编码从utf8转换成utf8mb4。 1. 修改my.ini [mysqld] character-set-serverutf8mb4 2. 在Connector/J的连接参数中&a…

短信编码类无错版PDUdecoding.cs
////程 序 员:武志文(蚕蛹)/// sillnet163.net///文 件:PDUdecoding.cs///概 要:针对国内短信编码(USC2)///组成结构:包含四个函数:/// smsDecodedCenterNumber(string…

你还有学了三年建模的朋友吗?他有救了
【 编者按】“我朋友学了 3 年建模”系列,一直以浮夸的操作占据于各大视频网站搞笑榜。此前,来自布拉格捷克理工大学、 Google 研究院、和华盛顿大学以及苏黎世联邦理工学院的研究者们发布了 Monster Mash 项目的论文和动效视频。用户绘制二维图像&#…

iOS培训objective-c——实例化对象
蓝鸥iOS培训推荐:好像好长时间没和大家分享了,那么今天主要和大家说说OC内容创建实例化对象,基本让也就分为几大类:1.ClassName*myNewClassName;//指针2.myNewClassName[ClassNamealloc];//通过alloc这个命令申请一个空间来存放我…

#423 Div2 D
#423 Div2 D 题意 构造一个 n 个节点的树,恰好有 k 个叶子节点 (叶子节点的定义是只与树上的某一个节点存在连边),要求任意两个叶子节点的距离的最大值最小,距离为两个节点间边的数量,输出距离的最大值,以及 n - 1 条边…

CDMA模块上网设置的过程
CDMA模块上网设置的过程一) AT指令设置部分(1) ATCSQ 检查信号 若返回10—31,99之间的信号数字则继续,如果信号是99,99,则应该考虑不停的键入A/命令,不停的让模块去搜寻网络。&…

RedHat 年度报告:只索取不贡献的开源消费“大户”不受待见
编译 | 清儿爸编辑 | 夕颜头图 | 下载于视觉中国据 Red Hat 公司委托发布的一份新报告称,新冠疫情可能在云计算基础设施和企业开源软件方面留下不可磨灭的印记。Red Hat 是 IBM 于 2018 年以 340 亿美元收购的企业开源软件产品供应商。第三次年度《企业开源现状》&a…

做产品的一些思考
从我当前的职业经历来看,做过两种类别的产品:一种是客户定义好了需求由我们去实现,我姑且称其为做项目;一种是自己去探索用户需求然后在不断的摸索中引导用户,实现价值,这是我笔下真正的产品。做项目目标明…

查看JDK的历史版本
1.打开如下链接http://www.oracle.com/technetwork/java/javase/downloads/index.html2.查找如下内容,点击进行3.选择你需要的版本,点击进入4.找到相应的版本下载即可转载于:https://blog.51cto.com/suyanzhu/1947530

终于有人解救Python人了!
从事Python开发的这些年中,我见过很多相关的入门教程和书籍,他们大都这样讲 :先介绍 Python 的基本语法规则、list、dict、tuple 等数据结构,然后再介绍字符串处理和正则表达式,介绍文件等IO操作.... 就这样一点一点往…

WISMO模块GPRS上网设置的过程
WISMO模块GPRS上网设置的过程一) AT指令设置部分(1) ATCGCLASS“B”置为“B”模式。(2) ATCGDCONT1,“IP”,“CMNET”设置APN。(3) ATCSQ 检查信号 若返回10—31&#x…

【虚拟化实战】VM设计之一vCPU
作者:范军 (Frank Fan) 新浪微博:frankfan7虚拟机需要多少个vCPU呢?是不是个数越多性能越好呢?这方面存在着很多误区。给VM配置CPU资源的时候,要精打细算才能最大可能的利用已有资源,…

新手小白 python之路 Day1 (三级菜单功能实现)
直接上需求: 实现一个多级菜单 三级菜单的实现 可以依次选择进入各个子菜单 也可以返回上级菜单 所需知识 列表 字典 需求也比较简单,但实际上做起来还是遇到许多的问题,我这边主要用到的知识点大概就是 字典 等 大致的思路 我…

简要AT命令介绍
FUNCTIONSAT COMMANDSDETAILS厂家认证ATCGMI获得厂家的标识模式认证ATCGMM查询支持频段修订认证ATCGMR查询软件版本生产序号ATCGSN查询IMEI NO.TE设置ATCSCS选择支持网络查询IMSIATCIMI查询国际移动电话支持认证卡的认证ATCCID查询SIM卡的序列号功能列表ATGCAP查询可供使用的功…

CentOS 5.6下创建KVM虚拟机
【51CTO专家投稿】RedHat 的下一代旗舰产品RedHat Enterprise Linux 6只包含 KVM,这一点 RedHat 官方已经在很久以前、在不同场合都确认过。KVM 发展很快,稳定性有了很大提高,随着 RHEL 6 的正式到来,KVM 应用到生产环境的日子应该…

手把手教你如何制作可视化大屏!
在我们生活和工作中,经常会看到可视化大屏,主要用于展示一些汇总信息,那如何制作一个酷炫的可视化大屏呢?今天带大家看个github上的案例。项目地址:https://github.com/yyhsong/iDataV/tree/master/case09效果如下&…

ES5和ES6数组遍历方法详解
ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1、原始的for循环语句2、Array.prototype.forEach数组对象内置方法3、Array.prototype.map数组对象内置方法4、Array.prototype.filter数组对象内置方法5、Array.prototype.reduce数组对象内置方法6、Array.prototype…

短信猫GSM Modem
短信猫是用来收发短信的设备,和手机一样 插入SIM卡,通过(USB或串口)数据线/PCI插槽接到电脑上 在电脑上通过相关软件就可以实现短信收发的功能相关软件也就是收发短信的短信应用软件 可以自己开发,也可以要求短信猫设备…

数量级提升!深度学习让机器人抓取更高效
作者 | Jeffrey Ichnowski等译者 | 凌霄出品 | AI科技大本营(ID:rgznai100)摘要电子商务仓库中的拣选机器人需要快速计算各种配置之间有效且平稳的机器人手臂运动。最近的研究中是将抓取力分析与手臂运动规划结合,以计算最佳的手臂平滑运动&a…

phpcms_v9修改文章会提示 [hash]数据验证失败
收藏备用:phpcms\modules\content\templates\content_edit.tpl.phpaction"?mcontent&ccontent&aedit改成action"?mcontent&ccontent&aedit&pc_hash<?php echo $_SESSION[pc_hash];?>"转载于:https://blog.51cto.com/w…

横向ListView(一) ——开篇,基础逻辑实现
2019独角兽企业重金招聘Python工程师标准>>> 第一次写博文,写得不好的地方还望各位看客见谅 为了学习自定义软件开发,且定制出满足自己需求的控件(不需要将就地使用第三方源码),本人花了一周的时间开发了个…

HTTP Response中的Chunked编码
进行Chunked编码传输的HTTP Response会在消息头部设置: Transfer-Encoding: chunked 表示Content Body将用Chunked编码传输内容。 Chunked编码使用若干个Chunk串连而成,由一个标明长度为0的chunk标示结束。每个Chunk分为头部和正文两部分,头部…

ORACLE RAC 更改instance name完整步骤
下面是更改的部分步骤,但是启动问题还是存在,求达人完整。单实例的数据库修改SID比较简单,只需要修改pfile相关参数,就可以挂载数据库。 RAC环境其实一样,只不过除了修改pfile,还需要修改 OCR信息。首先来看…

炸裂!微软重磅推出混合现实平台 Mesh、基于 Excel 的低代码语言 Power Fx,Ignite 2021 太精彩!...
作者 | 伍杏玲出品 | CSDN(ID:CSDNnews)“一开始,这就是混合现实的梦想。” 在微软 Ignite 2021 大会上,微软 HoloLens 之父 Alex Kipman 头戴 HoloLens 2,出现在科技感十足的海底世界虚拟舞台上࿰…

Apache Spark 2.2.0 中文文档 翻译活动
为什么80%的码农都做不了架构师?>>> Spark 2.2.0 已然发布(2017-07-11 发布) 5 天了,更新了一些新套路吧! 此版本从 Structured Streaming(结构化流)中删除 experimental࿰…

Unity3D常用代码总结
1 GUI汇总 function OnGUI() { GUI.Label(Rect(1,1,100,20),"Im a Label"); //1 GUI.Box(Rect(1,21,100,20),"Im a Box"); //2 GUI.Button(Rect(1,41,100,20),"Im a Button"); //3 GUI.RepeatButton(Rect(1,61,120,20),"Im a RepeatButton&…

Python 搭建车道智能检测系统
作者 | 李秋键责编 | 寇雪芹出品 | AI科技大本营(ID:rgznai100)引言:本文将利用opencv实现对复杂场景下车道线的实时检测;所使用的图像处理方法主要是在读取图片的基础上,进行多种边缘检测,然后对不同的检测…

ASP.NET弹出窗口技术之增加网站流量方法
作为Microsoft的最新建立动态Web网站的工具,ASP.NET相对于ASP和JSP在改变原始的Web编程方式方面有了长足的长进。它的代码与页面分离技术(CodeBehind)以及完善的Web服务器控件为程序员提供了一个更加符合传统编程的Web服务器端开发方式。但Web编程还是有着与传统编程不相同的特…

检查是否支持 SO_REUSEPORT
为什么80%的码农都做不了架构师?>>> int reuse_port(int sockfd) {#ifndef SO_REUSEPORT#define SO_REUSEPORT (15)#endifconst int on 1;return setsockopt(sockfd, SOL_SOCKET, SO_REUSEPORT, &on, sizeof(on)); } 转载于:https://my.oschina.n…