授鱼不如授渔

本文面向那些每周为了编程作业哀嚎挠破头的孩子,如果你一次csc作业算上debug可以在三小时内完成,请无视。

文主,本学期初零编程基础,现在依旧弱弱的一枚,但至少每周的csc作业可以在大家出去逛个街的时间里写完。

态度

应该有不少人和我一样打算念统计,所以对于python没那么重视。我想说python或许比你想的有用,不管你念什么专业。当然我不是说非要像那些打算念相关专业的人一样翻着教材学得很深,但掌握基础的应用,成本低,潜在效益高,我觉得值得去花一些精力去做到。

杀作业的流程

我个人理解,现在的作业就是,逻辑+计算机语言的实现。先逻辑,再计算机语言的实现,有时候发现逻辑上是通的,计算机语言实现不了,即使查了各种资料,还是发现python喊着“臣妾做不到”,就回过头来改逻辑,然后重复。

逻辑

就是读完题,了解需要做什么,如何去实现,然后形成一个连贯的思路,如果你觉得一开始比较吃力,建议拿一张白纸画下你的逻辑图。越清楚越好!!!强烈建议形成了一个完整的思路再去编程,不要想到一点编一点!

这里要注意,能简单的绝对不麻烦!不要想到什么就是什么,多花几分钟再想想有没有更简单的处理方法,这样做的好处是:

第一、代码可以少写好多。

第二、简易的逻辑在debug的时候不容易把自己搞晕。

第三、是有时候一个作业要实现的目标不止一个,你用一个很笨重的逻辑做完了第一步,后面的几步可能会非常痛苦。

第四、优化的思维形成对于生活中的其他事情也会有帮助。

没逻辑怎么办?凉拌。但或许没逻辑的时候,出去吃个饭,喝个咖啡逻辑就有了,还省下了在屏幕前发呆的时间。

计算机语言的实现

1、课上教的东西不多,就那么几页东西,上面的function麻烦请稍微看仔细点,什么空括号不加,这里漏参数,那里多什么的,在写程序的时候给你浪费掉的时间,绝对多于你稍微记下那些function能干啥,用的时候要注意些啥。

2、一般而言,我们教的function是足够了,但是有时候,确实有一些课外的简易function,能帮我们完成课内function实现不了或者实现起来很麻烦的目标,这时候适当扩充自己的知识库是事半功倍的。百度谷歌自己选,输入“python xxx(你要实现的功能)”。比如让一个str反序排列,你只需要xx[::-1],简单吗?但不少人不知道。有时候python可能没有这个功能,比如你输“python 找个女朋友”,那么就尝试用其他的方法去实现逻辑啰,实在不行就只能改动一下逻辑了。

3、把大程序拆分成多个小部分解决(cs1的作业太短了,拆不拆没啥感觉,至于cs2,不作死不会死),每完成一小部分就对那一小部分debug,把各种可能会出现的情况都试一遍,没问题再往下写。(有一次帮朋友debug的时候,报错一行改一行,改完报错新的一行,十多次以后程序还是没跑起来,我看到天上好多星星!)

4、过程中多用print,特别是程序报错,你一时半会找不到错误,可以在关键步骤前加几个print,print的好处第一可以看看这步是否被执行了,第二是可以看看你得到的变量和你想的一样还是你生出了个妖怪。有时候可以在报错的语句前加#让它先不运行,然后print一下看看你得到的变量是否妖孽无比。记得最后程序没问题了把那些print都去掉。

5、debug请耐心,请耐心,请耐心!实在不行,我们还有1,1,0。

文本编辑器

私以为python本身的ide还是不是很方便,无论是每次运行手动保存,还是整体缩进缩回似乎实现不了。还有print东西过多的时候电脑会卡住。

相比之下一个好的文本编辑器,不但界面亲切,颜色可调,还各种智能,纠错也方便。我觉得帮我省下不少时间。

我自己用的是Eclipse,上面搭PyDev,这个很麻烦。PyCharm的教育版是免费的,最重要的装起来很方便,本来就是为了python专门设计的。你要是问我为什么我用Eclipse?回答是,颜值呀!

后记

或许有人会问,你在python上花了多久?

再次申明,零编程基础,但这个杀作业的思路真的给我很大帮助。我趁开学初空的时候花了几个小时(个位数),学完了慕课网的python入门,或许有一些些用处吧。但其实相关的知识老师上课都会讲到。比起有些人向我抱怨一周花十几个小时、二十几个小时(你骗我的吧),一周就省回来了。然后上课,虽然觉得没意思,因为和看ppt没啥区别,但每次还是不旷,理由就是担心自己自制力这么low的人一旦旷了就一发不可收拾。

帮人debug(离成功还差临门一脚的不算)绝对比自己写一份程序累,因为要去理解人家的思路,去从那密密麻麻的代码里找出问题。所以,如果你的朋友懒得帮你debug,很正常,因为他不只你一个朋友。

我觉得学校其实给理工的男生们提供了一个很好的机会呀,你们难道没有发觉吗?

诶,有时候,会不自觉得羡慕sme的少年们呐。

欢迎转载,拒绝删减

by Arthur 邱

guest
9 评论
oldest
newest most voted
Inline Feedbacks
View all comments
Alan Chen
管理员
7 years ago

Eclipse 的颜值真是不敢恭维的……

Alan Chen
管理员
7 years ago
Reply to  Arthur

个人还是喜欢用 Sublime Text 或者 Atom 这种颜值比较高的(。

Stardust
7 years ago

这背后恐怕有肮脏的py(thon)交易(笑)

Anonymous
Anonymous
7 years ago

邱神邱神

Anonymous
Anonymous
7 years ago

看名字识男神系列

Alan Chen
管理员
6 years ago

现在还是羡慕你们啊(修了 ERG2050 发现要学 R 兴奋得不行的 SME 狗