QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 2249|回复: 3
打印 上一主题 下一主题

[问题求助] 初读「Python基础教程」自学Python完全读不懂该如何是好?

[复制链接]
字体大小: 正常 放大

2

主题

8

听众

5

积分

升级  0%

该用户从未签到

自我介绍
78954785
跳转到指定楼层
1#
发表于 2015-6-12 14:25 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
从来没学过编程,读教材读到一头雾水、不知所云,突然很有挫败感。我不靠 IT业谋生赚钱,也已错过专业培训的机会,但不想放弃曾经的理想,编程零基础应如何补救?谢谢!

zan
已有 1 人评分体力 收起 理由
苍松绿竹 + 1

总评分: 体力 + 1   查看全部评分

转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信

180

主题

68

听众

1975

积分

  • TA的每日心情
    开心
    2015-6-19 13:01
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    社区QQ达人

    看了题主的描述我大致能够理解题主现在的状态了。记得我刚开始接触编程是在高考结束因为被「软件工程」专业录取所以在假期里自学Java。当时的状态和题主差不多,不知道为什么代码究竟是怎么执行的(记得当时还去百度知道上问程序语句的执行顺序=_=),不知道为什么要编译,为什么写出来的程序都是黑框框,双击还无法运行……后来大概有半年时间就好了,多少算是积攒了一些经验,拿出来和题主分享一下。

    方法上
    如果感到迷惑就先不要考虑编程的「思路」,先做到把代码读懂。书上的代码是循序渐进由少到多的。针对书上的每一个(是每一个噢~)例程,要做到从头到尾每一条语句的每一个关键字都明白是什么意思(书上明确指出不用理解的忽略之)。然后合上书本将能够实现相同功能的代码默写出来。同时适当的改改代码,比如删掉某一条,加上某一句之类的,来加深理解。注意千万不要背例程。只要是功能一致,掌握方法就算完成目标,背下来毫无意义,并且不会有所提高。之后一段时间后随着对代码理解的加深会渐渐的自然地理解写程序的「思路」。感觉就像是学完英语语法背好单词后,自然就会写文章了(当然写的不好)。在学完第一本书后,就尝试着独立完成一个小程序,贪吃蛇、俄罗斯方块之类的,python的话可以尝试一下写个文本处理的小程序。在这个时候再系统的考虑「思路」是一个不错的选择。《Python基础教程》这本书后边有大量的实例,在写那些实例的时候也是个不错的时机。
    此外还有一点,一开始肯定会有大量的名词看不懂。碰到不懂的名词尽量上网去查,来知乎问也可以。不要积攒太多,不然很容易产生理解障碍。这也是一个学习的过程。编程并不仅仅只有代码,还有与之配套的其他知识,有一些是没有专门书籍系统讲解的,需要自己积累。

    理解上
    写程序的思路在初学的时候平时的思想完全可以硬上(当然深入以后就不行了)。举个例子,包饺子.py可以这样写:
    # 引入厨房中的所有工具
    import 厨房
    # 之前前三句写错了,不小心把别的语言的语法混进来了,已纠正。中文括号()内的是术语。
    # 此处的「肉馅1」肉馅1是一个代号/名字,用来控制/获取变量。就像遥控器一样。
    #「方法名(参数1, 参数2, ...)」的写法表示用一定的的输入(参数),通过「方法名」所代表的一系列
    # 运算/操作(此处我们并不知道具体是什么)。有时它会产生一个结果(返回值),有时不会。
    # 此处是某种肉馅。第一句可以解释为:
    # 用一个叫做「肉馅1」的名字(引用)来代表通过以「猪肉」为「材料(参数)」的方法「做肉
    # 馅」所得到肉馅。
    肉馅1 = 做肉馅(猪肉)
    # 「XX.YY」可以理解为XX的YY, 以下就是厨房的调料
    调料1 = 厨房.调料
    # 同第一句
    面团1 = 买面团(钱)

    饺子皮们 = 做饺子皮(面团1)
    生饺子们 = 包饺子(饺子皮们, 肉馅1)

    # 「def 方法名(参数1, 参数2, ...):」定义了一个指令序列,用「方法名」代表,以方便以后需要时
    # 直接使用不必重复书写。上边用到的「做肉馅」也是这么定义出来的。
    def 煮饺子(生饺子):
    # 产生一个锅
    锅 锅1
    下锅煮(生饺子, 锅1)
    # 这个东西代表之后缩进的代码重复执行三遍
    for 次数 in [1, 2, 3]:
    加水(锅1)
    熟饺子 = 出锅(锅1)
    # 返回最终的结果
    return 熟饺子

    熟饺子们 = 煮饺子(生饺子们)
    # 输出
    print 熟饺子们
    以上是一个以日常生活为例的例子。不过有的人对这类不太恰当的比喻东西不太敏感。再补充一个从数学的角度来看的。在学校里上数学课时定义过函数,和程序中的函数的概念非常接近,具体区别看这里(http://www.zhihu.com/question/20385250)。上边提到的「方法」就是程序里的「函数」(同义词)。数学里我们这样写:
    f(x, y, z) = x*2+y-z
    m = f(x, y, z)
    写作Python代码就是
    def f(x, y, z):
    return x*2+y-z

    m = f(x, y, z)
    看出区别了吗?我猜想程序中的这个写法就是从数学中借鉴过来的从这个角度来讲程序也可以简单粗暴的理解为用某种特殊语言描述的运算过程。和平时写数学作业其实类似。只不过其中多了些「print “Hello world”」之类的特殊语句。思路还是差不多的。
    完全可以看做是现实世界中一步一步来的思路。这叫「面向过程」的编程方法^_^。熟悉了以后其实也没什么,但一开始确实会有些转不过弯。有一个习惯的过程。

    最后,Python是一门很有亲和力的语言,适合非科班入门(当然Python也很强大)~《Python基础教程》这本书还是不错的,与同类书相比算是最接近面向零基础了,可以坚持看下去。至于零基础什么的……那些写代码的老宅男已经脱离人民群众太久了……鬼知道他们的零基础是什么……

    一开始出现茫然不知所措的现象其实是一个普遍的现象。
    写程序是个非常有趣的是,希望题主坚持自己的梦想~
      收起(5)
    • 和风戏雨 和风戏雨 :感谢你的耐心回复,可惜 包饺子.py 那堆东西依然看不明白。无奈呀!
      2015-06-12 14:36 回复
    • 大微微---0170 大微微---0170 :回复 和风戏雨 :嗯,我写的那个「包饺子.py」的「伪代码」多少涉及了一些Python的语法内容,看不明白不要紧。我主要是想要表达一下即使完全不懂程序光看汉语也大致能「猜」出来写这个程序的逻辑。就是先做肉馅->拿调料->买面团->做饺子皮->包饺子…一条一条来的顺序。还有有就是,不好意思Orz,那个「包饺子.py」的前三句写错了,已修正。另外我又加了些注释和另外一个例子。
      2015-06-12 14:38 回复
    • 和风戏雨 和风戏雨 :我觉得《和孩子一起学编程》真是python的神级入门教程。你的煮饺子已经很生动了
      2015-06-12 14:41 回复
    • 大微微---0170 大微微---0170 :                    
      2015-06-12 14:42 回复
    • 大微微---0170 大微微---0170 :f(x, y, z) = x*2+y-z这个写法可以在Scala中直接用。学不好Python的同学还是转投Scala门下吧~
      2015-06-12 14:43 回复
    • 我也说一句

    回复

    使用道具 举报

    21

    主题

    97

    听众

    3110

    积分

  • TA的每日心情
    奋斗
    2014-3-2 00:26
  • 签到天数: 243 天

    [LV.8]以坛为家I

    回复

    使用道具 举报

    12

    主题

    7

    听众

    639

    积分

    升级  9.75%

  • TA的每日心情

    2016-1-8 16:40
  • 签到天数: 185 天

    [LV.7]常住居民III

    社区QQ达人

    群组学术交流A

    群组中国数模会长俱乐部

    群组建模讨论组

    群组沈阳理工应用技术学院

    群组数学软件学习

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2025-5-15 23:43 , Processed in 0.689230 second(s), 76 queries .

    回顶部