2024-01-14 12:12:12 | 我爱编程网
我是真正零基础开始学Python的,从一开始的一窍不通,到3个月后成功搭建了一个动态网站(没有用任何框架)。相比于计算机大牛,我更加知道一个小白将会遇到什么坑,遇到哪些难点。我把我的学习过程写在下面,并附上在每个阶段的学习资料,希望对零基础的Python学习者有所帮助。
想学习编程但不知如何开始的朋友。回答这类问题的人往往只是列出书单资源然后给出一个大致的方向。有些朋友一开始就扎入了理论学习的汪洋大海,从苦读类似《算法导论》开始,能够坚持读下来的寥寥无几,学习的积极性也被不断的挫败感消磨的所剩无几。
一直以来,编程对我而言是一种「黑魔法」般的存在。今年阿里月饼门,当很多人都参与到是非之争的时候,我更加着迷于程序员区区几行代码的脚本所展现出的威力,对于外行而言,这是超乎他们想象之外的某种能力——为什么我守在电脑面前盯着秒针然后拼命点击鼠标都不一定能抢到的礼物,程序员只需要提前花5分钟写3行代码就轻松搞定?
所以,我的心底深处一直都想变成这样的一位魔法师。今年的8月,刚好工作上想要开发一个基于微信的英语学习网站,借此机会,我决定好好学习一下编程。在此之前,我所有关于程序的知识仅仅来源于两部分,一是本科时期的C语言必修课,现在已经忘的一干二净,不过好歹我从中明白编程是怎么回事;第二部分是大概两年前由于工作关系学的一些Python,不过只是皮毛,现在忘的七七八八。
简单说,我的目标是建立一个网站,不过这个网站是动态的,也就是说它能识别谁登陆,然后对不同的人显示不同的内容。而当时的现实是,我完全不明白网页是如何显示出来的?譬如每个人登陆知乎的时候看到的是定制化的页面,后台是如何基于每个ID来组织出不同的页面的?所有我们看到的问题,回答,参与的评论在背后的服务器上是以一种什么样的形式存在的?又比如为什么有些页面只能在微信端打开,在电脑上就会出错?(不知道你有没有发现这一点)
当时我的心中充满了无数个类似的问号?当然如果你也是小白,一定有着同样的疑问。
好处是一开始就明确了学习的目的:Web建站。所以我的学习方案基本就是通过做项目学习,哪里不懂就解决哪里,边做边学习,不断推进。另外,由于知道很多成功的网站在用Python做服务器开发,比如知乎,所以我就自然选择了Python。
于是我就开始了我充满着挫败感和成就感的编程之路……
从8月到12月的四个月里,除去本来的工作,为了学习质量,我会保证平均每天4个小时的学习时间,周末也不例外。另外,所有的文档,问答都尽量看英文的,这可以帮你剩下大量的时间。12月13日,我做的网站上线了,3天时间大概有5000人访问了这个网站,我有时在后台看着日志,不免有些心潮喷涌,我想把自己的经验写下来,希望对于那些有心学习编程但无从下手的朋友提供一些帮助和鼓励。
现在回头看,我认为这一段时间的造轮子是提升编程能力最快的时候。比如为了写ORM,就必须去花很多时间学习SQL,去了解Python里面的metaclass,而如果用一个现成的框架,我很有可能偷懒不去关注某些细节。而不出问题还好,一旦出问题,我就只能跪。另外,造轮子迫使我在开始的时候就构思整个框架,因为我必须尽可能的考虑到所有的情况,于是就会不断的强迫自己完善知识体系,和别人的代码作对比从而改进自己的,这个过程充满了无尽的挫败感,但是得来的成就和快乐也是无可比拟的。
SQL书籍:Sams Teach Yourself MySQL in 21 Days
Python:Python核心编程(第二版)
Github上的优质Python资源:CodementorIO/Python-Learning-Resources
过程中还牵涉到部署,我的网站是跑在Linux上的。关于部署网上有非常多的优质教程,一搜一大把。这里就不再赘述。
这些是我学习大致路线,当然过程中充满着小的磕磕绊绊,虽然网站上线了,貌似运行还比较顺利,但是如果以一个程序员的标准来要求自己,自己依然非常菜鸟。不过我并没有以前那样惧怕技术了,就像你明白魔术的背后的原理后,会更多的思考原理本身。
新手python入门教程包括了解Python编程基础、Python函数及流程控制、利用Python做些事情、深入Python编程。
1、了解Python编程基础:首先第一点,要能够看懂了解变量、基础语法、编程规范等,这些事能够上手编写Python代码的前提。其次第二点,对于数据结构,字符串、列表、字典等需要比较熟练运用。
刚开始的这部分就做一些简单的练习,构造出一个数据类型,然后再实现基本的用法。比如你自己构造一个列表,实现列表中数据的访问、更新、删除等基本操作,比如len()、max()、min()、函数以及append()、count()、extend()等方法。
2、Python函数及流程控制:有了前面的基础练习之后,学习Python的函数和控制语句,是真正去解决问题的过程,如何将固定的功能模块封装成函数,如何实现判断和循坏,这些不仅是写出代码的必要条件,也是训练编程思维的必经之路。流程控制比较好掌握一些,条件语句和循坏语句在不同的场景下练习几遍,知道判断和循环实现的过程就行。
3、利用Python做些事情:在前期的理论知识学透之后,你不妨尝试着利用利用Python做些事情,检验自己的学习成果,这样也能够巩固加深自己学习的理论知识。同时,可以查漏补缺,看看自己哪方面需要保持,哪方面需要继续学习。
这个时候不妨了解一些第三方库,你可以做更多的事情。对于不同的库,内部的方法、函数你还需要去熟悉,开始的时候先掌握少部分最常用的方法,在遇到实际的问题的时候,再去查对应的更多的用法,这样会更高效。
4、深入Python编程:首先需要了解Python的高级特性,如迭代器、生成器、装饰器等,了解类和面向对象的理念。深入下去,你可以去探索Python的实现原理,Python的性能优化,跳出Python语言本身,去了解计算机的交互原理,还有很长的路要走,但并不是每一个人都需要这个过程。
这些确实是你在这个领域立足生根的重要条件,对于特别想要在IT行业发展的人来说,这个过程是非常有必要的。
简单好用的Python编程工具
1、Mu Editor:专为初学者设计的编辑器,简洁易用,集成了调试、自动补全等功能。
2、PyCharm:Python IDE之王,强大的代码补全和调试功能,越来越受专业开发者的喜爱。
3、Thonny:另一款Python初学者IDE,拥有调试、变量视图和简单的调试功能,易学易用。
4、海龟编辑器:运行在浏览器中的Python IDE,可以在任何设备上编写和运行Python代码。
5、VS code:轻量但强大,拥有丰富的Python开发插件,autopep8格式化代码功能极佳。
6、Spyder:科学用途Python IDE,强调代码可读性,内置Variable Explorer等数据分析功能。
7、Kitten Code:在Mac上开发python的轻量级IDE,拥有代码高亮、自动补全和调试功能。
8、IDLE:Python自带的简易IDE,适合入门学习,但功能相对较简单。
我爱编程网(https://www.52biancheng.com)小编还为大家带来如何在Python中使用break跳出多层循环的相关内容。
像c语言中的goto,shell中的break 后面跟跳出层次的在方法在python中都没有,这可不是因为python设计的low,而是允许一次性跳出多个循环很容易造成程序流程的混乱,使理解和调试程序都产生困难,这也是为什么goto在c语言中不建议使用的原因。
#_*_ coding:utf-8 _*_
loop1 = 0 #设定loop1 and loop2这两个计数器
loop2 = 0
while True:
loop1 +=1
print "Loop1:", loop1
break_flag = False #在父循环中设定一个跳出标志,子循环只要想连父亲一块跳出时,就把这个标志改成True
while True:
loop2 +=1
if loop2 ==5:
break_flag = True #让我爹一块往外跳
break #我先跳出第一层
print 'Loop2:',loop2
if break_flag: #儿子跳了没有?
print u"接到子循环跳出通知,我也得跳了!" #我擦,儿子真跳了。
break
上面代码的基本逻辑就是,在第一层循环中设置一个是否跳出的标志变量默认为False,如果子循环在break时想连它的上一层一起break,就可以把这个跳出的标志变量改成True,当子循环跳出后,
父循环会继续往下走,但下在的语句是判断这个跳出变量是否已经被子循环改掉了,如果已经改掉了,那就直接跳出就好了,因此你就实现了同时跳出2层循环的功能啦。
2025-02-01 20:24:39
2024-01-05 14:11:24
2025-02-12 03:21:37
2025-02-10 15:19:48
2025-01-28 17:58:32
2024-11-22 05:08:01