网站首页 > 技术文章 正文
对于刚刚开始学习Python的小白来说,直接安装一个软件无需配置,简简单单就可以开始编写并正常执行程序其实并不容易。就算他跟着书上的教程安装Python解释器、安装IDE或编辑器、配置环境然后能够看见“Hello world”时也不是万事大吉,因为他不久之后还多半会遇到第三方包安装和管理出错的问题,能在半个小时内搞定就已经是非常顺利了。
然后他在百度或知乎寻找“学习Python 最好的 IDE/编辑器是哪个?”的时候,那些程序员多半会推荐PyCharm、Jupyter、VSCode、Vim、Sublime Text等等。不过我今天要推荐一款超级适合Python初学者的编辑器Thonny,它有以下优点:
1. 安装简单,无需配置
目前Thonny内置Python 3.7.9版,无需额外安装Python和学习复杂的配置环境变量,只需要到thonny.org下载一个安装文件就够了,安装完打开程序就能直接跑代码。而且它还支持(Windows,Mac,Linux)全平台,就算是以后切换到其他平台也不用换编辑器了。
2. 支持中文
它支持简体中文,同学们用起来更简单。安装时会提示进行语言选择,在菜单栏→Tools→Options→General→Language中也可以再次设置。
3. 界面简洁,功能够用
编写一个简单的Python脚本,点击右上角的运行按钮就可以在下方的Shell窗口中看到运行效果,从界面上可以看出,点击运行按钮就是在Shell窗口中执行了一条 %Run ‘xx.py’的命令。所以有需要时你可以在这个Shell窗口的>>>符号后直接运行命令。右边的变量窗口和实例检查也很有用。
4. 图形化的包管理器
对新手来说用pip命令安装第三方包时常常会遇到问题。Thonny自带的包管理器很好用,在菜单栏→工具→管理包中可以在PyPI中搜索并安装常见的包。在已安装列表中可以对包进行升级或卸载。
5. 细化的调试功能是个亮点
独特的调试功能让Thonny不再那么普通,也是我将它推荐给Python新手的主要原因。因为没有相比其他编辑器Thonny的调试不再局限于一行行的执行而是将一行代码拆成更多步骤。首先在菜单栏→视图→变量中保证已经打开了变量面板,此时你定义的变量,都会实时显示在变量面板上,这样在调试模式中你就可以看到运行中每一步的变量变化。
以一个求水仙花数的循环程序为例,点击运行旁边的爬虫图标进入调试模式,爬虫图标旁边的4个图标“步过(F6)、步进(F7)、步出、恢复执行(F8)”点亮。每次点击步进(F6)时,执行一行代码,这和其他编辑器的调试模式相同。但点击步进(F7)时,程序会根据代码情况在一行之内以高亮形式表示代码细分执行时的进度。比如第三行代码shi_wei = (i%100)//10,用步进模式运行时,会先高亮(i%100)//10,再将当前的i值100带入,计算出100%100的值0,这短短一行代码需要点击12次F7才会让你在变量面板中看到这行代码本次循环的运算结果shi_wei = 0。
如果你使用 步进(F7)进入函数调用,每调用一步函数,都会重新打开一个带有单独的局部变量表和代码指针的新窗口,这能帮助你充分了解函数调用的原理和步骤,对于理解递归这类算法的逻辑非常有益。
6. 需要手动的代码补全
Thonny虽然有代码补全功能,但需要手动按tab键才能触发,相比其他能够智能补全的IDE或编辑器来说是个弱项。
7. 更换新版Python解释器
Thonny内置了Python 3.7.9,可以通过在shell窗口用os查看这个Python的安装路径。
如果你想换用更新版的Python 3.9,可以在安装这个解释器后在菜单栏→工具→设置→解释器→可选Python 3解释器或虚拟环境→选择其他版本Python的安装目录。
小结
Thonny是塔尔图大学基于Python内置图形库Tkinter开发出来面向Python初学者的轻量级编辑器,它能帮助新手搞懂每一行代码的运行细节,对于初次接触代码编程的小白来说避免了繁杂的环境配置问题,真正做到学习编程无障碍。
猜你喜欢
- 2024-12-02 新手福音!5 分钟教你用 PyCharm 开启 Python 项目
- 2024-12-02 一文带你深入了解什么是pycharm,有什么用?
- 2024-12-02 下载python还是pycharm?你知道python与pycharm的区别吗?
- 2024-12-02 pycharm和python区别是什么
- 最近发表
-
- count(*)、count1(1)、count(主键)、count(字段) 哪个更快?
- 深入探索 Spring Boot3 中 MyBatis 的 association 标签用法
- js异步操作 Promise fetch API 带来的网络请求变革—仙盟创梦IDE
- HTTP状态码超详细说明_http 状态码有哪些
- 聊聊跨域的原理与解决方法_跨域解决方案及原理
- 告别懵圈!产品新人的接口文档轻松入门指南
- 在Javaweb中实现发送简单邮件_java web发布
- 优化必备基础:Oracle中常见的三种表连接方式
- Oracle常用工具使用 - AWR_oracle工具有哪些
- 搭载USB 3.1接口:msi 微星 发布 990FXA Gaming 游戏主板
- 标签列表
-
- cmd/c (90)
- c++中::是什么意思 (84)
- 标签用于 (71)
- 主键只能有一个吗 (77)
- c#console.writeline不显示 (95)
- pythoncase语句 (88)
- es6includes (74)
- sqlset (76)
- apt-getinstall-y (100)
- node_modules怎么生成 (87)
- chromepost (71)
- flexdirection (73)
- c++int转char (80)
- mysqlany_value (79)
- static函数和普通函数 (84)
- el-date-picker开始日期早于结束日期 (76)
- js判断是否是json字符串 (75)
- asynccallback (71)
- localstorage.removeitem (74)
- vector线程安全吗 (70)
- java (73)
- js数组插入 (83)
- mac安装java (72)
- 查看mysql是否启动 (70)
- 无效的列索引 (74)