动画图解程序?这个可视化运行环境太方便了

news2024/11/26 18:22:05

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

请访问: python666.cn

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

了解代码的执行过程是编程的基本要求。

一个熟练的编程老手只需要用肉眼看着代码,就能对其运行的过程有所了解。然而对于刚接触编程不久的新手来说,这种事情就没那么显而易见了。于是在编写代码和调试代码时,一旦程序的逻辑有些复杂,就像掉进代码的迷宫,完全不知道东南西北。

所以,每当有人对自己的代码没有给出预想结果而百思不得其解,无奈寻求帮助时,我都会建议在程序中增加输出,一方面是根据不同输出的先后顺序来判断程序的运行路径,另一方面则是观察各变量在运行过程中的实际数值,确认是在哪里发生了错误。(参考前文:新手上路,如何debug调试程序?)

还有种方法就是使用 IDE 提供的调试功能,通过添加断点和单步运行,了解程序的运行状态。Visual Studio、Eclipse、xCode 等常见的 IDE 几乎都提供了调试工具。对于 Python,也可以使用 pdb 库来实现断点调试。

上述两种途径应该是大部分程序员 debug 时候的基本套路。但同样的,对于新手来说,即使这样的工具,用起来仍然有些费力。

有时我会选择在纸上画出一些流程和图形来向人解释程序,虽然效果会好些,但显然不是一种可以广泛推广的方式。后来意外发现有一款工具满足了此类需求,非常适合新手,可以让你直观地“看”出程序是怎么运行的。对于初学编程,难以理解程序运行过程的苦手来说,绝对可称之为“神器”。

这就是 Online Python Tutor。一款免费的在线代码运行及演示工具。

项目地址:pythontutor.com

关于此项目的介绍(摘自网络):

Online Python Tutor 是由 Philip Guo 开发的一个免费教育工具,可帮助学生攻克编程学习中的基础障碍,理解每一行源代码在程序执行时在计算机中的过程。通过这个工具,教师或学生可以直接在 Web 浏览器中编写 Python 代码,并一步一步可视化地执行程序。

截至 2013 年 12 月,来自 165 个国家和地区共 50 万多人使用了这个在线工具,通常是用作教材、讲义或在线编程指南的补充。每天共执行和演示超过 6,000 段 Python 程序。除了自学的初学者,Online Python Tutor 的用户还包括了那些参加 Coursera、edX 和 Udacity 等在线课程的学生,还有诸如 MIT、UC 伯克利等高校的教师。

  • Python Tutor 支持 Python 3.6。

  • 除了 Python 外,还可运行 Java、JavaScript、TypeScript、Ruby,另外也有支持 C、C++ 的版本。

  • 可以通过一行 JS 代码,把此工具嵌入到你自己的页面中。

  • 也可以生成链接,把你的代码直接分享给别人。

  • 附带单元测试功能。

  • 网站上还提供了很多的实例,其中包括一些比较经典的算法。

再来体验一下其使用过程:

在编辑器里输入代码,点击 “Visualize Execution” 即可运行并演示。

import random


def fn(x):
    return x**2


result = []
for i in range(3):
    t = random.randint(1, 10)
    print(t)
    r = fn(t)
    result.append(r)


print(result)

我用了段包含循环、列表、函数、模块的代码片段。看看效果如何:

4ae3cb6cadee78b1c03e2594c38b1e21.png

左边是代码,箭头表示当前运行到的位置。

通过下面的按钮和进度条可以直接控制程序的进行。

右上是输出。

右下就是程序的可视化模拟。在这个例子里,可以清楚地看到过程中变量的变化,何时调用了函数等信息。

借助 Python Tutor,除了可以让编程新手更容易理解程序的运行过程,还能可视化地展示算法执行,如排序、链表插入等。大家可以把比较难以理解的算法代码贴进去,直观地观察,更好地理解。

45a9173a6afe87c555f136c351d53aa9.png


Crossin的新书《码上行动:零基础学会PYTHON编程(CHATGPT版)》已经上市了。

4c195fd25586f278a55faecdd4eeebd9.jpeg

本书力求做到浅显易懂,让完全没有编程经验的零基础“小白”也能学会Python。内容从环境搭建这种最基础的步骤开始讲起,逐渐深入到常见的实际应用当中。在讲解知识点的同时配有相应的代码示例,让读者可以边学边练加深理解。

全书涵盖Python环境搭建、基础语法、常见数据类型、实用模块、正则表达式、面向对象编程、多任务编程等知识点。另外还提供了爬虫、GUI、游戏三个实战项目。

书中还创新地使用 ChatGPT 作为编程学习的辅助,带领读者探索AI时代下学习编程的新模式。

公众号的读者朋友们购买后可在后台联系我,加入读者交流群,Crossin会为你开启陪读模式,解答你在阅读本书时的一切疑问。

感谢转发点赞的各位~


_往期文章推荐_

新手上路,如何debug调试程序?


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

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

ed6168284e517beb00d3806fc7fbe24c.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

权限维持-SSP-DLL 加载

前言 继续学习中,今天是权限维持的东西,大家永远不要忘记初心,要一起奋斗哦! 注:单机环境和域环境都可以使用 复现 一.进程注入lsass.exe 使用mimikatz将伪造的SSP注入内存,这样用户在注销重新登录的时候就…

机器学习库Scikit-learn

本文目录 3.1 背景知识3.2 Scikit-learn概述3.3 Scikit-learn主要用法 3.3.1 基本建模流程3.3.2 数据预处理3.3.3 监督学习算法3.3.4 无监督学习算法3.3.5 评价指标3.3.6 交叉验证及超参数调优3.4 Scikit-learn总结参考文献 Scikit-learn是基于NumPy、SciPy和Matplotlib的开源P…

全国流体力学盛会召开,飞桨AI4S携最新科研进展亮相西湖大学

‍‍‍‍ 5月20-21日,第四届全国智能流体力学研讨会暨第二届智能流体力学产业联合体大会在西湖大学召开。此次会议由中国力学学会、中国空气动力学会、《水动力学研究与进展》编委会、西湖大学、浙江大学、上海交通大学、中国船舶集团第七〇八研究所主办&#xff1b…

nsis制作windows安装包-修改安装目录读写权限

目录 1. 背景2. 使用AccessControl修改权限2.1 AccessControl下载安装2.2 修改脚本 1. 背景 使用nsis制作的windows安装包在安装时,将安装目录设置到非系统盘里,安装完成后一般不会出现读写权限的异常问题。但是,安装时选择在系统盘里安装&a…

envi随机森林分类5.3版本

在App Store中搜索随进森林工具,进行下载并重启envi软件 含有三个模块 Train Random Forest Model 1. Input Raster:输入影像。选择图像时不能进行空间、光谱裁剪或掩膜(ENVI 5.5及以上版本已经禁止显示这些按钮) 2. Random Sam…

无需租云服务器,Linux本地搭建web服务,并内网穿透发布公网访问

文章目录 前言1. 本地搭建web站点2. 测试局域网访问3. 公开本地web网站3.1 安装cpolar内网穿透3.2 创建http隧道,指向本地80端口3.3 配置后台服务 4. 配置固定二级子域名5. 测试使用固定二级子域名访问本地web站点 转载自cpolar文章:Linux CentOS本地搭建…

c++ 11标准模板(STL) std::map(八)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…

香港财经学院工商管理硕士(MBA)含金量

近年来&#xff0c;随着中国经济的崛起&#xff0c;越来越多的学生和从业人员开始关注MBA教育。在香港地区&#xff0c;香港财经学院的MBA项目备受瞩目&#xff0c;被誉为是该地区最具含金量的MBA项目之一。首先&#xff0c;香港财经学院作为一家优秀的商学院&#xff0c;在教学…

【C++系列P1】带上这篇基础小宝典,进发C++!(持续更新ing~)

​​​​​​​ 前言 大家好吖&#xff0c;欢迎来到 YY 滴 C系列 &#xff0c;热烈欢迎&#xff01;(持续更新ing~&#xff09;本章主要内容面向刚刚学完C语言&#xff0c;准备或正在接触C的老铁。而往往C奇多的小特性和知识点让铁铁们头晕晕脑涨涨&#xff0c;因而本章收纳了…

为什么北欧的顶级程序员数量远超中国?(续)

之前写过一篇文章《为什么北欧的顶级程序员数量远超中国&#xff1f;》&#xff0c;讲了北欧大神们开发的Linux、MySQL、Chrome V8、MineCraft、QT等优秀软件&#xff0c;分析了北欧有如此多顶级程序员的主要原因。 有位读者Ven 源 留言说&#xff0c;除了文章中教育优势&…

碳纤维单丝外径测试中的纳米分辨率激光衍射法解决方案

摘要&#xff1a;碳纤维单丝热膨胀系数是碳纤维复合材料设计、生产与可靠性和寿命评估的重要参数&#xff0c;本文针对单丝径向高温热膨胀系数测试这一难题提出了相应的解决方案。解决方案的核心内容是基于激光衍射法和高温辐射加热&#xff0c;并采用衍射轮廓拟合技术以及相应…

Dropout层的个人理解和具体使用

Dropout层的作用 dropout 能够避免过拟合&#xff0c;我们往往会在全连接层这类参数比较多的层中使用dropout&#xff1b;在训练包含dropout层的神经网络中&#xff0c;每个批次的训练数据都是随机选择&#xff0c;实质是训练了多个子神经网络&#xff0c;因为在不同的子网络中…

Linux常用命令——gzip命令

在线Linux命令查询工具 gzip 用来压缩文件 补充说明 gzip命令用来压缩文件。gzip是个使用广泛的压缩程序&#xff0c;文件经它压缩过后&#xff0c;其名称后面会多处“.gz”扩展名。 gzip是在Linux系统中经常使用的一个对文件进行压缩和解压缩的命令&#xff0c;既方便又好…

Python过滤信息,如省位中包含广东、安徽、浙江这3个省份的话,就pass,怎么破?...

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 但令心似金钿坚&#xff0c;天上人间会相见。 大家好&#xff0c;我是皮皮。 一、前言 前几天遇到了一个小问题&#xff0c;在做资料的时候&#xff0c…

7位专家齐聚openGauss Developer Day 2023云和恩墨专题论坛,共论数据库自主创新改造与技术发展...

5月26日&#xff0c;云和恩墨在「openGauss Developer Day 2023」主论坛上大放异彩&#xff08;←点此回顾主论坛精彩时刻&#xff09;&#xff0c;更是通过举办一场数据库技术创新与应用实践分论坛&#xff0c;力邀7位重量级嘉宾就数据库创新能力构建、行业应用实践和迁移替代…

SpringBoot配置文件的注入和读取

目录 1. 配置文件的作用 2. 两种配置文件的格式&#xff1a; 2.1 properties 基本语法&#xff1a; 2.1.1 写入 2.1.2 读取 执行原理 2.1.3 缺点分析 2.2 yml 基本语法&#xff1a; 2.2.1 写入&#xff08;非对象&#xff09; 2.2.3 配置对象 2.2.4 配置集合 多个配…

【Linux初阶】基础IO - 文件管理(深入理解文件描述符) | 重定向

文章目录 一、文件管理引入二、理解文件描述符三、文件描述符表四、文件描述符的分配规则五、重定向六、使用 dup2 系统调用实现重定向1.模拟实现 >&#xff08;输出&#xff09;2.模拟实现 >>&#xff08;追加&#xff09;3.模拟实现 <&#xff08;输入&#xff0…

【观察】浪潮信息:自研液环式真空CDU技术,将被动应对变为主动防御

毫无疑问&#xff0c;在“双碳”战略的大环境下&#xff0c;数据中心走向绿色低碳和可持续发展已成为“不可逆”的大趋势&#xff0c;特别是随着全国一体化大数据中心、新型数据中心等政策文件的出台、“东数西算”工程的正式启动&#xff0c;数据中心的建设规模和数量呈现出快…

老胡周刊QA微信机器人(基于ChatGPT)

背景 先做个介绍吧&#xff0c;老胡的信息周刊是我从2021-08-16创立的周刊&#xff0c;截止到目前(2023-05-29)将近两年时间&#xff0c;目前已经有92期周刊&#xff0c;中间基本没有断更过&#xff0c;一共发布资源统计如下&#xff1a; &#x1f3af; 项目 288&#x1f916; …

Ae:稳定运动

使用跟踪器 Tracker面板的稳定运动 Stabilize Motion功能&#xff0c;可通过手动添加和设置跟踪点来跟踪对象的运动&#xff0c;将获得的跟踪数据对图层本身进行反向变换&#xff0c;从而达到稳定画面的目的。 Ae菜单&#xff1a;窗口/跟踪器 Tracker 点击跟踪器面板上的“稳定…