`
webcenterol
  • 浏览: 906890 次
文章分类
社区版块
存档分类
最新评论

初学编程该怎么学?——对初学者程序设计语言学习的思考(2)

 
阅读更多

初学编程该怎么学?——对初学者程序设计语言学习的思考(2)

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

讨论新闻组及文件

作为学习编程几年的并且现在还靠着号称世界上特别复杂的一种语言C++活着的人来说,我也能在这些简单的图形中绘制中找到编程的乐趣,这就是turtle的乐趣了,我想初学者能找到的乐趣会比我更加多吧。

其实,对于初级编程来说,最主要的就是流程的控制,而流程的控制也就那么几种形式,这里有个我以前为Python写的流程控制表,其实实际上各类语言都差不多:

电脑,程序基础模型:

基本程序执行流程

  1. 顺序执行:

    Python的表现形式,一条接一条的语句

  2. 分支:

    Python表现方式:If-else

    python表现语法形式:if-elif-

3.循环:

python语法表现形式:for-in

各类语言在这个层面上除了语法的略微不同外,基本上是一致的,这些确实培养计算机思维逻辑的基础,也可以算是编程的初步知识,起码Small Basic用于熟练这些知识还有有用的,虽然它的设计原本是面对小孩子的。不要因为Small Basic是面向小孩子设计的就觉得它功能弱到学习功能都不够,事实上,因为SB对图形的重视,使得对图形控制如此容易,反而可以轻松的做一些很有意思的事情。

比如下面的例子,(超炫的文字显示,来自于http://social.msdn.microsoft.com/Forums/en-US/smallbasic/thread/b1b383c1-6b13-49c0-bf29-00de86103ac6

很炫的效果,才区区几行代码:

GraphicsWindow.BackgroundColor = "midnight"

gw = GraphicsWindow.Width

gh = GraphicsWindow.Height

GraphicsWindow.FontSize = 100

Turtle.Move (100)

Turtle.Turn (1*1)

While ("True")

For i = 1 To 50

GraphicsWindow.SetPixel(Math.GetRandomNumber(gw),Math.GetRandomNumber(gh),GraphicsWindow.GetRandomColor())

EndFor

Turtle.Move(1)

GraphicsWindow.BrushColor = "Black"

GraphicsWindow.DrawBoundText(30,110,gw-20,"Small Basic")

EndWhile

这是几乎每个人执行完后都会说"Impressive"的程序。

再来一些更多的SB程序图:

大家可以到(http://social.msdn.microsoft.com/Forums/en-US/smallbasic/threads)

中过去看看,其中有很多很有意思的例子。

其实我说了这么多,并不是鼓励大家都去学习Small Basic,仅仅是为初学者指出一条路,我觉得编程本质的复杂度来源于数学,思维和逻辑,不在于程序语言,即便是如SB这样的kids语言,在合理的思维逻辑下,一样有强大的效果,程序语言的本质并没有改变。

"Small Basic is a project that's aimed at bringing "fun" back to programming."MS如是说,的确是,什么时候我们失去了编程的乐趣了?为什么我们用的都是这样庞大的难以理解的语言?因为商业的需求,一个一个现代化的软件都是如此的庞大,犹如新特性的集合体,大量库的堆积。。。。让我们失去了太多本来该有的乐趣。

当然,假如仅仅局限于SB语言,那么用途毕竟还是比较有限的,教育意义也就没有那么大了。。。。虽然我感觉到能从SB中获得乐趣,但是。。。人还是要吃饭的,所以,对于正的想以编程作为职业的人来说,从Python开始,也还算是不错的主意(仅仅从学习角度,目前国内对Python的需求还是比较有限)。当时我处于这个考虑,准备用PyQt实现一个与SB一模一样的turtle库,结果经过查阅,发现Python的标准库中已经附带上一个了,呵呵,一如既往,Python的标准库之丰富与兼容并包简直不可想象。。。。。。。。你能想象到哪天C++的标准库里面加上一个这样的画乌龟的库吗?-_-!

因为Python标准库中就带有turtle库,所以我们完全可以用Python的语法来实现上述功能,同时还能使用一些Python比SB更强大一些的功能(Python的turtle库功能更多一些),并且,还有同时熟悉Python语法的功效。假如说Python是作为初学者迈入程序设计大门的合适的第一步的话,我认为Python的turtle库的使用,可以作为学习Python的合适的第一步。首先熟悉的是程序的思维和逻辑,其他的仅仅是这些的延生。(哪怕上升到DP,OO层次,这些还是不可或缺的基础)

这里给出原来用SB实现的那个最复杂的圆环结构的示例,其他的就省略了。要说的是,虽然用Python可以用更熟悉的语法,但是回到Python的编辑器来后,发现SB那个IDE也真是'Impressive'啊。。。

源代码:

import turtle

tr = turtle.getturtle()

tr.shape("turtle")

tr.speed('fast')

IN_TIMES = 40

TIMES = 20

for i in range(TIMES):

tr.right(360/TIMES)

tr.forward(200/TIMES)

for j in range(IN_TIMES):

tr.right(360/IN_TIMES)

tr.forward (400/IN_TIMES)

#tr.write(" Click me to exit", font = ("Courier", 12, "bold") )

screen = turtle.Screen()

screen.exitonclick()

可以看看Pythonturtle库中的example代码,其操作复杂到让你会误以为这是Flash完成的效果,其实,这都是乌龟的爬行而已。呵呵,要想以一个乌龟完成很多事情,除了需要足够好的数学基础外,还需要一点想象力。。。。。。。当然,还有美感。Gregor Lingl明显都不缺这些,所以他完成了一个很有意思的turtle库及很有意思的示例。

turtle熟悉Python的基本语法估计是没有问题并且充满乐趣的,乐趣对初学者来说可是最重要的东西。并且,当你想用其实现更复杂逻辑的时候,也不得不用到更多的Python特性,这个自然过程会促进/巩固对Python的学习。这也许是除了单独学习一门语言外,另一个初学者可以尝试的入门之路,充满乐趣的路途。

write by 九天雁翎(JTianLing) -- blog.csdn.net/vagrxie

分享到:
评论

相关推荐

    C++程序设计原理与实践

    而且这些颇具实践意义的编程思想还可以弥补高校程序设计课程偏重语法细节,忽视总体思想方法和整体过程实现的问题,使读者充分认识到程序设计是一种解决问题的方法和能力,最终是对程序设计语言的应用,这也是本书的...

    python免费网课-Python网课推荐-免费学习Python编程.pdf

    python免费⽹课-Python⽹课推荐——免费学习Python编程 对于想要学习python的初学者,⾯对⽹上⼤量的学习素材⽆从下⼿。今天⼩编就整理了⼀份详细的python教学视频合集,希望能为初学者 提供⼀些学习的⽅向。 1....

    Python 程序设计(微课版)习题答案.pdf

    本书以培养编程初学者或零编程经验的读者从学习程序设计到编写软件项目的实际过程为目标,采用“任务驱动”的方式设计整个教学过程,以程序员的真实工作场景、典型工作任务为载体组织教学单元,内容选取既突出Python...

    数据结构与算法分析——C语言描述(Weiss著)的学习笔记

    初学者,先学习Weiss的《数据结构与算法分析 C语言描述》或者严蔚敏的《数据结构(C语言版)》。对于如何消化掉这本书,我初步给出一个建议: 读上Weiss的《数据结构与算法分析 C语言描述》三遍,能坚持下来,你的...

    How To Design Programs (2nd Edition)

    现代编程语言的语法大多很繁杂,初学者使用这些语言学习编程会导致花大量的时间在编程语言语法(诸如指针,引用和类型定义)而不是程序设计方法(诸如数据抽象和过程抽象)之上。程序设计方法解决了这个问题——它...

    Windows环境下32位汇编语言程序设计(第2版)下载

     汇编语言编程是作者的一大爱好,作者自1990年开始即使用汇编语言编写程序,是Windows操作系统流行后国内最早研究Win32汇编编程的程序员之一,在1998年创建了专门探讨汇编编程的网站——htlp://asm.yeah.net,曾...

    毕业设计——基于深度学习的电动自行车头盔佩戴检测系统.zip

    易学易用: Python的语法设计简单直观,更接近自然语言,使初学者更容易上手。这种易学易用的特性促使了Python在教育领域和初学者中的广泛应用。 高级语言: Python是一种高级编程语言,提供了自动内存管理(垃圾...

    C程序设计 第四版 谭浩强 高清扫描版 带完整书签目录 加 学习辅导

    本书内容先进,体系合理,概念清晰,讲解详尽,降低台阶,分散难点,例题丰富,深入浅出,文字流畅,通俗易懂,是初学者学习C程序设计的理想教材,可作为高等学校各专业的正式教材,也是一本自学的好教材。...

    C++程序设计原理与实践.pdf

    而且这些颇具实践意义的编程思想还可以弥补高校程序设计课程偏重语法细节,忽视总体思想方法和整体过程实现的问题,使读者充分认识到程序设计是一种解决问题的方法和能力,最终是对程序设计语言的应用,这也是本书的...

    Flash ActionScript 3.0编程技术教程

    内容安排上既适合刚刚接触到ActionScript脚本语言的初学者,也照顾到学习过ActionScript之前版本有一定编程经验的读者。 鉴于ActionScript 3.0较之前版本的变化,为了适应更多的读者,本书没有过多强调ActionScript ...

    windows环境下32位汇编语言程序设计

    笔者从事汇编编程已经有十几年的历史了,从8086时代的DOS汇编编程开始到当前的Win32汇编编程,从一个初学者到现在能利用Win32汇编来解决大部分编程需求,中间也经过了很长时间的摸索和大量的挫折,所以笔者很清楚...

    基于机器学习的商品评论情感分析——毕业设计项目.zip

    易学易用: Python的语法设计简单直观,更接近自然语言,使初学者更容易上手。这种易学易用的特性促使了Python在教育领域和初学者中的广泛应用。 高级语言: Python是一种高级编程语言,提供了自动内存管理(垃圾...

    Flash ActionScript 3.0 编程技术教程(附书光盘)

    内容安排上既适合刚刚接触到ActionScript脚本语言的初学者,也照顾到学习过ActionScript之前版本有一定编程经验的读者。 鉴于ActionScript 3.0较之前版本的变化,为了适应更多的读者,本书没有过多强调ActionScript ...

    机器人编程语言python-10大热门机器人编程语言,你掌握了哪种?.pdf

    BASIC是为初学者设计的(它代表初学者通⽤符号指令代码),这使它 成为⼀个⾮常简单的语⾔开始。帕斯卡尔旨在⿎励良好的编程习惯⼩号,并介绍构造,如指针,它⼀个很好的"敲门砖",从普通版使⼀个 更复杂的语⾔。这...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    vb6.0 程序设计课件

    Visual Basic是Microsoft公司开发的一种通用的面向对象和事件驱动的程序设计语言。“Visual”指的是开发图形用户界面(GUI)的方法——不需编写大量代码去描述界面元素的外观和位置,而只要把需要的控件拖放到屏幕上的...

Global site tag (gtag.js) - Google Analytics