2020-04
8

为什么会被小海龟折磨

By xrspook @ 8:44:09 归类于: 烂日记

先画一个正方形,然后画一个正多边形,接着画一个圆形,最后画一个圆弧。从思路上说,再简单不过了,但实际上实施起来的时候,我还是花费了一点心思,但这些东西跟之后的用圆弧画出三个花朵比起来,我算是轻而易举就完成了的任务。后来的花朵之所以耗费了好几个小时才终于搞定,倒不是因为问题本身有多难,而是因为其实我没想通那些数学上的问题。我要画一朵花,花是由花瓣组成的。我画的那朵花是规则结构。那么画完一个花瓣到下一个花瓣的时候,角度我应该如何确定呢?这个问题很简单,但实际上我却在这里兜了无数个圈。我在那里瞎猜,所以很浪费时间。有无数次,我想直接去看答案了,但是我还是控制住了自己。当我终于画出一朵花,并在里面测试无论花瓣是胖是瘦,是多是少,我都能画出来以后,接下来我考虑的是如何一次性在一个面板上画出三朵花。画出一朵跟一次性画出三朵,其实已经非常接近了,但要怎么实现,还是费了一点心,因为某些函数的应用书上根本没说。我去网上稍微搜了一下,发现直接搬过来,而且是在没有看到例子的时候就搬过来行不通。最终我用了COPY大法,一次性画出了三朵花,虽然花的大小跟要求的有点差别。当我看过答案以后,我觉得这种差别是完全可以理解的。胖瘦跟大小是由他们设定的参数决定的,那些参数我们不可能知道。我只能模拟出个大概比例,要我完全模拟出一模一样是不可能的。

小海龟这个东西是一个画图的玩意,但是那又不像艺术家手里的画笔那样随心所欲。那是编程出来的,编程出来的东西还是有大神可以画出个小猪佩奇,但这些做法正如某些大神能用Excel的单元格画出他们想画的任意东西一样。

玩过成年人常规的编程以后再去搞这个小海龟,我觉得最难的地方在于数据的运用。你该怎么处理那些数据?难就难在那些公式设计上面。我不知道为什么Think Python 2这一章要这么整人,但也正是因为他们把我整得很惨,所以我在函数调用上面的确有了一些思路,而那种感觉是从前老师又或者我自学的课程里从来没接触过的。这些才是最核心的东西!为了让我懂得这个,他们祭出了从来都让我很崩溃的小海龟。

现在回想起来,为什么小学的时候小海龟会那么容易让我崩溃,估计情况跟现在差不多。在解决问题的时候我没有把那个箭头当作是一条数学题,一定程度上我把它当作是一个游戏了,所以当我不可以一口说出答案的时候,我首先开始做的是瞎掰,折腾好长时间以后我才终于静下心来,用脑子去考虑,这到底是怎么回事。所以可能某些东西的实现并不难,但是因为我耗在瞎掰上面的时间太多了,简直把我搞得慌张了,所以我会对那个东西瑟瑟发抖。把大问题解剖下来变成小问题,再逐个击破,我应该能很快的发现我的问题所在。

战胜人生中曾经不敢去面对的,非常有意思。

2020-04
7

阴魂不散的小海龟

By xrspook @ 21:56:27 归类于: 扮IT

LOGO语言小海龟,你为啥阴魂不散啊啊啊啊啊啊啊啊啊啊!!!!!对从前小学3年级的我来说是个噩梦,现在依然是个噩梦!Think Python 2的第四章正是用这个turtle讲故事,想死的心都有了。没有一定英语基础,没有足够强悍的数学基础,怎么可能玩得转小海龟,而且还要空间思维能力。小时候我对这个东西瑟瑟发抖实在太正常了…… 25年后再遇到,我继续纠结得死去活来……

第四章最后的习题1要求画一个堆栈图,不知道他们到底要画些什么,要画到什么程度,mindmanager了一个,画完以后的确对函数的嵌套有点开窍。

习题2要画3朵花,画得我死去活来…… 但总算完全不看答案能画出来,看完答案,得到那些偷偷摸摸设定的参数后能画得跟要求一模一样。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import turtle, math
def arc(t, r, angle):
    n = 20 # int(2*math.pi*r/4)+3 公式画图太细致太慢,直接赋值加速
    step_length = int(2*math.pi*r)*angle/360/n
    step_angle = angle/n
    t.lt(step_angle/2) # 据说折腾一下角度能消除像素误差?
    polygon(t, step_length, n, step_angle)
    t.rt(step_angle/2)
def polygon(t, length, n, angle):
    for i in range(n):
        t.fd(length)
        t.lt(angle)
def flower(t, p, r, a): # t for turtle, p for petal, r for radius, a for angle
    for i in range(p):
        for i in range(2): # 重复两次画花瓣,两次转向后和初始方向一致,非常重要!!!!!
            arc(t, r, a)
            t.lt(180-a)
        t.lt(360/p)
def move(t, length): # 一个画板画3朵花必须用暗中位移
    t.pu()
    t.fd(length)
    t.pd()
bob = turtle.Turtle()
move(bob, -100)
flower(bob, 7, 60, 60) # 偷偷设定半径和角度,万恶的例子,叫人怎么猜!于是我也直接搬!
move(bob, 100)
flower(bob, 10, 40, 80)
move(bob, 100)
flower(bob, 20, 140, 20)
turtle.mainloop()
2015-05
31

计算机往事

By xrspook @ 20:01:09 归类于: 烂日记

还记得前几天的职称计算机考试最后一门Internet 应用(XP)简直是到了天意弄人的境界!显示器有问题,某个区域字体会有重影,一开始我以为是我疲劳产生的幻觉,是我眼睛有问题,但后来渐渐觉得我没有一点问题,是机器本身的问题。那门考试抽到的题目里面有超级多需要输入内容,光是输入邮箱地址就不下5个,还有什么帐户名啊密码之类的,谢天谢地我很用力地看显示器终于猜中了重影写的是什么。电脑没有死机你就不好意思让监考员给你换机子。5门考试,5个不同的座位,不得不说,最后那门是最让我辛苦的,那种辛苦是客观原因我无法避免。但话说回来,只要你进入状态,什么问题都不会影响太大。

我是那种摸着计算机就会着迷的人,向来如此。但其实,不能说向来,因为小学时我的计算机真是烂透顶了!最开始用的是5寸软盘,然后是3.5寸盘,使用的是dos系统,看到老师用鼠标在玩纸牌觉得那是很高大上的事!家里没有电脑,几乎每个人都在拿着一张用白报纸打印的键盘死记硬背键盘分布。在那种条件下上手盲打你不觉得真心太困难了么?我的小海龟logo语言挺糟糕的说,其实当时我的数学并不差,但那时我完全没有在计算机那个问题上把握到相应的节奏。现在回想起来,可能当年的考试其实很简单,但我却一直没有领会到。小学时代,计算机对我来说是一门让我有点心惊肉跳的学科,记忆之中,貌似我的小学计算机课是从小学3年级开始的。初中完全没上过计算机课,虽然我去过初中的计算机房,好像是因为某次考试报名?初中绝对有计算机房,因为那里的职中是财经类的,电算化很普遍很重要。彻底改变我的是初中开始我终于有了自己的电脑,虽然那玩意是亲戚的淘汰机,东拼西凑而来,4条8MB的内存,700多MB的硬盘,CPU是奔腾133,搭载的是Windows 95系统,装有Microsoft Office 95。电脑到家的那天,是我第一次用鼠标,别人都理所当然地觉得我应该懂基本操作,但实际上连正常退出关机我也摸索瞎猜了半天才终于做到。你用过微软的Office 95吗?我可以很负责地告诉你,就界面而言,那玩意比后来流行了非常长时间的Office 2000好看多了!虽然现在已经是2015年,但我还是在用Office 2003,一直觉得那不错很好。我甚至不知道现在Office的最新版本到底是多少,反正大学的时候当同学兴冲冲地从Office 2003换成Office 2007的时候我就明白到,那个叫做2007的东西功能藏得很奇葩,颠覆了95-2003一直以来的用户习惯,看上去漂亮了,但中看不中用,最要命的是系统资源占用巨大。

高中开始又有了电脑课,记忆之中,他们教过Word,Excel,也教过Access。某一年的期末成绩需要我们自己选择做一些作品交上去,可以选择做PS,Flash等等,我做的是PS。现在回想起来,我之所以懂得Word的流畅使用,很大程度是因为初中的那门课。另一个很重要的原因是初中时家里刚有电脑的时候表哥给了我2片Word 95和Excel 95的教学光盘。但在高中的电脑课里我觉得讲得最多最详细的是Access,偏偏那玩意在往后的很长时间都一直没怎么用过。至于PowerPoint,我不记得到底是怎么学回来的了,无师自通?大概是高中老师上课经常用那个,虽然自己使用制作得不多,但看多了也知道那么点东西吧。Excel一直以来对我来说都是一个高深莫测的领域,直到我开始工作,直到我不知为何被推去做统计那种事。一个文员的Excel水平可能不太高,但Excel水平达到某层次的人去当文员那简直太简单了。

多年以来的计算机经历让我明白到,对我来说我缺的是不是领会,是练习,如果能有足够多的实操,那玩意对我来说可以变得非常简单、得心应手。跟跑步没什么两样,计算机操作真心不是那种你看懂了给你台计算机你就能很好地玩起来的货,可能我水平太低,所以我必须练习练习再练习。

我的厉害不是因为我天生很强大,不过是我可能投入了比我战胜了的人更多的时间精力而已。

© 2004 - 2024 我的天 | Theme by xrspook | Power by WordPress