ホームページ >バックエンド開発 >Python チュートリアル >初读「Python基础教程」自学Python完全读不懂该如何是好?

初读「Python基础教程」自学Python完全读不懂该如何是好?

WBOY
WBOYオリジナル
2016-06-06 16:23:371706ブラウズ

从来没学过编程,读教材读到一头雾水、不知所云,突然很有挫败感。我不靠 IT业谋生赚钱,也已错过专业培训的机会,但不想放弃曾经的理想,编程零基础应如何补救?谢谢!

回复内容:

看了题主的描述我大致能够理解题主现在的状态了。记得我刚开始接触编程是在高考结束因为被「软件工程」专业录取所以在假期里自学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 熟饺子们
以上是一个以日常生活为例的例子。不过有的人对这类不太恰当的比喻东西不太敏感。再补充一个从数学的角度来看的。在学校里上数学课时定义过函数,和程序中的函数的概念非常接近,具体区别看这里(zhihu.com/question/2038)。上边提到的「方法」就是程序里的「函数」(同义词)。数学里我们这样写:
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基础教程》这本书还是不错的,与同类书相比算是最接近面向零基础了,可以坚持看下去。至于零基础什么的……那些写代码的老宅男已经脱离人民群众太久了……鬼知道他们的零基础是什么……

一开始出现茫然不知所措的现象其实是一个普遍的现象。
写程序是个非常有趣的是,希望题主坚持自己的梦想~ 最重要不过一个循序渐进
Python教程 - 廖雪峰的官方网站
直接看书太过沉重 我觉得,楼上说的都不是关键。
关键是题主看的那本书确实不适合初学者。怎么说呢,那其实是一本初学者看着吃力,有经验者看着没劲的书籍。没错,就是一本烂书。 完全读不懂不太可能吧,推荐从《learn python the hard way》这本书学起,完全零基础学习python 2楼说的很对。另外,补充一点个人观点。我非计算机专业,对编程比较喜欢,学校教C的时候用的 谭浩强 的C语言基础,初学的时候感觉无比枯燥,觉得很简单,并且没有用处,直至最后老师布置小项目做时才觉得原来学的东西可以这样用。豁然开朗。

然后自学Java的时候,我就借助Android开发教程来学习,感觉也挺好,在后来遇到了RoboCode,电驴上有下载的,感觉这种边做边练项目的经历对编程很有用。学语言,能边做项目边学是最好的。

另外我也正在自学Python,不过,大三了,课外时间不是很多,感觉进度很缓慢。在此推荐一本 lovely python的书,里面通过应用需求学习,感觉也挺不错的。 这本书不是很适合0基础的朋友,建议你看看
像计算机科学家一样思考Python
Python编程实践
Python核心编程(第2版)

学习编程,不能只学语法,需要学习编程思路,学习解决问题的方法。
不然会出现书可以看懂,但自己不能写代码解决问题。

请看黄哥本人写的文章
如何捅破python编程的那层纸
article/pythonstudy.md at master · pythonpeixun/article · GitHub

剪刀石头布小习题三种语言python2、php、go代码
article/jdstb.md at master · pythonpeixun/article · GitHub
一段小代码说明@property装饰器的用法
一段小代码说明@property装饰器的用法


如何捅破python编程的那层纸之二
如何捅破python编程的那层纸之二

如何捅破python编程的那层纸之三
如何捅破python编程的那层纸之三



黄哥python远程视频培训班
article/index.md at master · pythonpeixun/article · GitHub

黄哥python培训试看视频播放地址
article/python_shiping.md at master · pythonpeixun/article · GitHub

加油! 交流才是王道。
初期自学最佳的方法就是找一个会的人,缠上他,问他应该去看什么书,遇到不懂的就问他。
不然,你只是找到一本别人都说好的教材,依然不可避免地碰到难以解决的问题。
人与人的直接沟通效果要绝对强于看书、看视频之类的单向学习。
欢迎你来我们教室一起学。
crossin.me
微信:crossincode
qq群:295921816 0基础的话,是要熬一段时间的。我们计算机的大一时很多0基础的同学也是云里雾里。
建议先找一本计算机导论读一读,主要理解一下CPU与内存的关系、冯诺依曼结构、2进制与数制转换吧。
然后,个人觉得Java比较适合作为第一门语言,因为设计硬件的内容较少。特别推荐《Head First Java》,有趣也易懂。
关于教材,国内的计算机教材都不太好,语言晦涩且观念陈旧。教材首先英语版,计算机还是英语最精准。译本也不错,不过专业词汇常错译。国内的教材,特别是高校教授写的最次,不过也有优点,就是基础教材涉及硬件的内容和很多考试的偏门点都讲得透。
最后说一个学习心得,一本书看不懂了,应该找相同内容的其他作者的书对比着看。看不同的人对同一问题的表述,这样更容易明白。
祝学习顺利。 0基础不推荐python基础教程。里面的语法讲的快对新手比较吃力推荐先从 与孩子一起学编程 起。 python基础教程 你注意看看前言 应该是给程序设计基础的人员初学python的
可能书看错了
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。