Python与小熊猫Dev-C++海龟作图比较

时间:2023-01-29 22:56:18

前言

少儿编程一般都遵循如下顺序:

Scratch(或者变种,例如编程猫、腾讯扣叮)-Python-C++

Scratch使用国际积木化搭建思路,学习起来,学生能够很容易上手上瘾,因为它能够通过积木化编程快速搭建起整合多种媒体的小游戏。无论大小还是小孩子,几乎都有如此评价。下至几岁的幼儿上至耄耋老人,都能够学习Scratch而且还能够上瘾。

但是,Scratch仅能作为编程思维的一种引子,帮助学习者理解或者了解计算机程序中的循环、条件、变量、人机交互、声音与图形绘制等基本内容。但是,它无法代替以后的高级编程语言的学习。

为此,作为编程界几乎最易用且时下最火(大数据分析、人工智能、Web开发、网络爬虫等)的胶水语言——Python,无论如何成为少儿编程的必选编程语言。

为了帮助Python初级学习者尽快入门并产生兴趣,人们想到了编程界早期的一个著名的LOGO语言,其中实现了闻名世界的海龟作图库。于是,Python中自动内置了对于海龟作图库的支持。国内类似于编程猫等公司实现的海龟编辑器的开发也正是依据类似思路实现的。目的都是帮助Python新手尽快入局Python并上瘾,至少是不离不弃。

于是,到了C++学习阶段,人们也想到了LOGO入及其海龟作图。当前国内少儿编程使用极多的IDE恐怕主要就是Dev-C++和Code::Blocks,前者尤甚。至于VSCode恐怕还主要是成年开发者使用者为多。

作为一名教了十几年编程的大学老师,看过不少学生一开始学习C语言,就被其复杂的语法、枯燥的数学应用案例给吓住了。


在此提供一个很简单的教程,希望零基础的读者花上两个小时,可以简单上手C语言,快速了解常量、变量、运算符、for循环、if选择等语法知识。


主要利用了C语言版本的海龟绘图库,通过代码控制一只小海龟在屏幕上爬行,从而绘制出各种精美的形状和图案。所有案例代码不超过25行,教程适合中小学生、大学生、成人在内的全年龄段初学者。(​​知乎童老师文​​)

当然,为了引导C++新手快速入局,并非仅有海龟作图一种内容思路,其他GDI简易开发包也能够起到引导作用。但是,相对来说,海龟作图因为涉及语句极少,而且思路简单明了,效果更好。

本文书写正针对C++新手,目的在此让其在对比Python与C++的海龟作图编程中体会到高级语言学习的共通性,增强C++学习的信心。为作为编程王者语言的C++后续的扎实深入学习奠定基础。

案例1:编程猫社区在线海龟编辑器Python代码及对应的Dev-C++版本

Python与小熊猫Dev-C++海龟作图比较

【Python代码】:

import turtle

p = turtle.Pen()
p.pensize(3)
p.pencolor('gold')

n = 6

for j in range(5):
for i in range(n):
p.forward(100)
p.left(360/n)
p.left(360/5)

turtle.done()

【小熊猫Dev-C++版本(6.7.5)】:

const int n=6;
initWorld(800,600);
setPenSize(3);
setPenColor(ege::GOLD);

for(int j=0;j<5;j++){
for(int i=0;i<n;i++){
forward(100);
lt(360/n);
}
lt(360/5);
}
pause();

接下来的代码中,我努力争取把Python 3.8 IDLE编辑器内置的几个海龟作图版本通过Dev-C++来实现,方便读者对比分析学习。


案例2:三色螺旋线

【小熊猫Dev-C++版本(6.7.5)】

#include <turtle.h>

int main()
{
int i;
initWorld(800,600);
setSpeed(10000);
int n = 3;
float offset = 0.8;
float angle = 360/n + offset;
for (i=1;i<=380;i=i+2)
{
if (i%3==0)
setPenColor(RED);
if (i%3==1)
setPenColor(GREEN);
if (i%3==2)
setPenColor(BLUE);
forward(i);
rightTurn(angle);
}
hide();
pause();
return 0;
}

Python与小熊猫Dev-C++海龟作图比较

【Python代码】:

import turtle

p=turtle.Pen()
p.speed(10000)
#p.hideturtle()
p.pencolor("red")

n=3
offset=0.8
angle=360/n+offset

for i in range(1,381,2):
if i%3==0:
p.pencolor("red")
if i%3==1:
p.pencolor("green")
if i%3==2:
p.pencolor("blue")

p.fd(i)
p.rt(angle)

turtle.done()

Python与小熊猫Dev-C++海龟作图比较

未完待续。。。。。。


引用

​https://zhuanlan.zhihu.com/p/407289928​

​https://blog.csdn.net/NUNIDEcainiao/article/details/108913599​