赞
踩
人生苦短,我用Python。欢迎大家一起分享,你是如何入门Python的~
偶然的机会接触到python,于是开始利用空闲时间学起了python。自学过2年python,有一些学习心得和避坑经验和大家分享,希望对已经入门和准备入门的零基础朋友能有些帮助,少走点弯路。
首先,对于python初学者最大的困难是什么?就是不自信,否定自己,在心理上设障碍,觉得一个个编程代码看不懂学不会。这种思想就是阻止自己去掌握一门语言最大的障碍,就像婴儿学走路,如果怕摔怕疼就不学,那这辈子就永远无法正常行走,虽然比喻不恰当,但想表达的就是要先去尝试,在学习的过程中找到乐趣再掌握它,总能学会。比如先学基础命令,比如打印出一句话都能有满满的成就感,从小小的成就感中一点点的体会编程的乐趣,久而久之就会去研究python 的语法去掌握它。
下面给大家展示一下我学习的笔记,欢迎大家借鉴!!
30个精品python项目:
1、【Python 五子棋小游戏】
2、【python俄罗斯方块小游戏】
3、【python编程之吃苹果】
4、【turtle 绘图 】
5、【python人脸检测】
6、【python加密和破解】
7、【python图像分割】
8、【利用Python检测年龄性别】
9、【python文本的编辑器】
10、【Python模拟时钟游戏】
11、【python猜数字游戏】
12、【python猜文字游戏】
13、【Python生命小游戏】
14、【Python计算器代码】
15、【python设置二维码】
16、【Python语言的检测】
17、【python重量转换器 】
18、【Python制作闹钟】
19、【Python音乐播放器】
20、【python模拟骰子小游戏 】
21、【python围棋之路】
22、【Python坦克大战】
23、【Python外星人大作战】
24、【Python3扫雷小游戏】
25、【Python3贪吃蛇小游戏】
26、【python连连看】
27、【Python酷跑小游戏】
28、【python飞机大战】
29、【Python魂斗罗大战】
30、【python之URL的缩短 】
上面的项目已经是给大家准备完毕了,需要的可以直接带走了!!!
1. Python编程:从入门到实践 - 豆瓣评分:9.1 ★★★★☆
这本书的架构非常清晰,十分适合没有基础的python萌新入坑自学之用。可以说,对于自学python入门来说,没有比这更合适的推荐了。
不过对于有基础的小伙伴,本书就显得有些太基础和冗长了,推荐可以看后面的几本。
2. Python基础教程 - 豆瓣评分:7.9 ★★☆
本书是经典的python入门教程,文章结构严谨,层次鲜明,内容详实。
本书的后半段,会将之前介绍的内容应用到10个引人入胜的项目中,让初学者在夯实基础的同时,真正领略python的魅力。
3. 笨办法学Python3 - 豆瓣评分:8.3 ★★★☆
《笨办法学Python3》本书中有大量练习,是一个十分适合具备一定编程基础的同学阅读和学习。全书超过50个实战习题,让你在潜移默化中掌握扎实的Python基础
4. Python核心编程 - 豆瓣评分:8.2 ★★★☆
《Python核心编程》是经典的Python指导书,在python最新的特性上作了全面升级和进一步解释,不管你是初学者,还是已经入门,抑或是想继续精进和提高的,这都是你的必选书单。
不过国内大部分售卖的都是英文版…有兴趣的朋友拿来读一读。
5. Python编程快速上手 - 豆瓣评分:8.8 ★★★★
本书非常适合小白上手,它和《Python编程:从入门到实践》同属一个系列,搭配实用,都是面向初学者的Python指导书,学习效果更好,是学习python编程的实用指南。
6. Python学习手册 - 豆瓣评分:8.0 ★★★☆
这是O’REILLY出品的经典制作,也是python入门的必读制作,长期位列美国亚马逊编程类书籍畅销榜榜首,详细讲解各种语言特性。
每一章都包含关于Python的关键内容,并配合适配性极高的“练习题”,让你在实践中提高自己对语言的认识和理解,测试自己对python的掌握程度。
7. 流畅的Python - 豆瓣评分:9.4 ★★★★☆
这又是一本来自O‘REILLY的红宝书,是一本面向实践的Python编程实用指南、豆瓣的高分佳作。即便对于有一定经验的中、高级Python工程师来说,本书也是一本充满实用技巧的宝藏书籍。
8. 像计算机科学家一样思考Python - 豆瓣评分:8.7 ★★★★
这也是一本O‘REILLY出品的书籍。全书根据计算机学者的思路来教授Python编程语言,本质上,它介绍的并不是python这门语言,而是在介绍编程思想。全书排版合理,巧妙地涉及多于晦涩的知识,阅读起来不会那么无聊,适合新入门的初学者学习和体验编程世界。
9. 利用Python进行数据分析 - 豆瓣评分:8.7 ★★★★
这本书由浅入深地将数据分析讲解清楚,系统性地介绍Numpy、Pandas、Matplotlib等数据分析核心工具的经典书目。是不可多得的数据分析入门书,对数据科学的从业者来说必读不可。
10. Python编程初学者指南 - 豆瓣评分:8.0 ★★★☆
本书通过轻松有趣的方法,帮助初学者了解和掌握Python编程语言和相关开发技巧。全书通过完整的游戏演示来介绍各个关键知识点。
11. Head First Python - 豆瓣评分:8.7 ★★★★
本书脱离了枯燥的语法和用法,通过风趣的形式讲解python,是一本典型的《First Head》系列书籍。全书根据对象进行分类,非常适合入门。
方向四:怎么用最短时间高效而踏实地学习 Python?
第一阶段:Python根底预备本阶段次要是学习Python开发入门知识,HTML+css、javascript、jquery、Python编程根底、Python初探等,让你轻松入门Python言语。
第二阶段:Python Web开发本阶段是次要Python开发根底知识的解说,经过零碎学习mysql数据库、django、ajax、Tornado入门、团体博客零碎实战等相关技术,片面掌握Python根底开发技艺技巧。
第三阶段:Python开发选修阶段是Python开发的一个拓展解说,次要是Linux零碎、Flask框架、redis框架、node.js框架、HTML5+css3等相关零碎和框架及技术方面的结合运用学习,让通晓Python开发的你,技艺愈加精深。
网上充斥着大量的学习资源、书籍、视频教程和博客,但是大部分都是讲解基础知识,不够深入;也有的比较晦涩,难以理解。
如果你真的想要高效地学习 Python,那就需要掌握如何过滤网上的垃圾教程资源的技能,并从其他有经验的程序员或在线编程社区中获得帮助。倘若你没有任何编程知识,或者知之甚少,从一张白纸起步,或许会更容易一些。
在本篇文章中,我们将分享 6 位技术专家学习 Python 的最佳方法,也许当你学习举步维艰之时,他们的经验将会帮你躲避很多不必要的坑,以及可以让你学会如何通过 Python 教程编写出色的 Python 程序。
最初学习 Python 时,我使用的主要编程语言还是 Java。之所以学习 Python,是因为我想要使用一种可读性更高并且能够快速实现原型开发的编程语言(最直接的反映就是编程语言的“print”语句)。
1、方向选择
学习Python的目的不是为了解这门语言,而是为了要学会运用这门语言来解决问题。
但Python的应用方向,实在太广了。在Python基础知识学完之后,如果应用方向不同,要学习的东西也会大不同。
我不能说我要做web开发,学完Python基础知识,跑去学numpy、pandas等知识;也不能说我要用Python做数据分析,学完Python基础知识,然后就跑去学django、flask框架。
这个道理,就跟我们想要去泰国旅行,肯定不会买去日本的机票一样,很简单。但是我们不得不承认,还是会有人犯迷糊,上来就开干。
2、路径规划
当我确定好方向后,下一步骤就是顺着这个方向,建立好我自己的学习路径地图。
这个路径是一个系统性的逻辑主线,这个主线会让我知道每个部分需要完成的目标是什么,需要学习哪些知识点,哪些知识是暂时不必要的。然后每学习一个部分,我就能够有一些实际的成果输出,利用成果产出来形成正向刺激,激励后续的学习。
而且,如果我们身在职场,大多时候我们是没有很大块的时间来集中学习的。我们的学习时间被分割在了一些碎片化的时间里。在碎片化的时间里,系统性的学习一门知识,更需要有一个贯穿前后,系统的逻辑主线,来串联所有相关碎片化的时间的学习。
初学者可以根据下图步骤,开始学习:
3、基本概念
Python是我学习的第一门编程语言,我在开始学习Python的时候,是一个连什么是字符串都不知道小白。所以对我来说,最重要的开始是,首先对这一领域的基本概念建立认知!
事实上,对一门领域完全零基础的人,想要开始学习它的话,真正重要的工作是先对这门领域的基本概念建立认知。
比如我在看到教程中有句话是“为变量赋值”,那我至少得知道,什么是变量?赋值是什么意思?
不知道为什么这么重要的一个开始,很多人都不在意,不知道是大家都天赋异禀,觉得不屑于提起这基础的步骤,还是很多人已经忘记了从小白一路走过来的痛苦和挣扎。人是会篡改记忆的,会认为现在拥有的都是轻松获得的,但真实的经历永远都是坎坷曲折的。
所以网上一些教程典型的通病就是,教学者用一个我们不懂的概念去解释另一个我们不懂的概念,然后我们还是不懂。因为教学者提前预设了作为0基础的我们的立场:已经有其他编程语言基础,只是没有接触Python。
但其实,对真正如我一样的0基础的小白来说,大多时候,Python是我们学习的第一门编程语言。所以这个时候,对我们来说,学习Python,不仅是学习这门语言本身,还是在借着这门语言,帮我们建立对编程世界的一些基本概念的认知。
当我入了门之后,就是顺着在第二步建立的学习路径,一路升级打怪,毕竟,我的征途是星辰大海!
4、需要注意的几个方面
⑴、绝不陷入底层原理和细枝末节的纠缠
这个坑,是把我坑的最深的坑。
举个例子,我学到函数的时候,我在开始的时候只需要学会怎么定义函数,怎么调用函数这些基础知识,完全不需要一开始就深入到研究函数参数的传递规则,到底是值传递,还是引用传递。
不是说这底层知识不重要,至少在入门的时候,我们不用一上来就深入这个层面。因为知识的学习,是一个线性的,从潜入深的顺序。如果一开始,就眉毛胡子一把抓,不分主次,可能我们很快就会体会到“从入门到放弃”是一种什么样的感觉。
而且我们在后续的学习过程中,其本身就是在“运用中深入理解,在深入理解中优化应用”。相互印证理解,是一种自然而然的深入学习过程。
⑵、按照系统性的课程或书本来学习
既然在这个领域是新手,先接受一个已经存在的系统,再在上面修修改改,是最适合的方案。作为新手,根据我的经验,我认为最好的老师,是一套成体系的课程或书本。
网上的文章或帖子,其实非常不适合充当我们系统性的学习一门知识的教材,因为它是非常碎片化的知识,东一榔头西一棒子,不成体系。不要指望自己能把散落的信息整合成系统的,那是高手要做的事情。不过这些东西,可以作为我们对某些细节的查漏补缺的参考。
⑶、以能用起来,解决问题为指导原则
在工作中,需要的更多的是一种解决问题的工程性思维,所以很多时候,我们能掉包解决问题,就没必要自己造轮子。
举个例子,boss要去机场,那我只要会开车,驱车把boss送到目的地就行,而不需要我去研究怎么怎么造车轮,怎么造发动机,怎么造电瓶。。。。。。
当然,如果我们学有余力,能深入,肯定是只好不坏。但还是那句话,开始的时候,不眉毛胡子一把抓。
⑷、没有什么牛逼的事情是能够速成的,越是底层的、收益周期越长的技能越是这样。
Python在机器学习领域被广泛运用,现在的研究热点大都用Python实现;其次,自动化测验、运维,关于测验来说,要把握 Script 的特性,会在规划脚本中,有更好的作用。Python 是现在比较流行的 Script。
Python就业方向主要有web开发、爬虫、人工智能。Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格!Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。
5、掌握正确方法
1、勤加练习,对于初学者来说,对于python语言会比较陌生,因为每种语言都有自己的语法,自己的特点,比如python内置了许多的函数,但是需要多敲代码,记住并且知道怎么使用。
2、看基础讲解的书籍,如果你没有过编程经验还想自学python的话,最好买一本基础的书籍看,因为书籍讲的比较系统。
3、进阶中高级,基础学完之后,就可以向中高级进阶了,需要一些中高级的教程,或者试着解决一些有难度的问题,深入了解语言的特性及实现。
4、保持连续性,学习编程比较忌讳学习的过程中经常断,因为变成需要让大脑保持对程序的熟悉和记忆,所以学习python要保持连续性。
5、看牛人代码,因为看别人代码,可以看到别人对问题不一样的解决方式,可以看到不一样的实现方法,可能会让你学到你未曾掌握的知识。
1. 不使用分号
使用分号在 Python 中是可选的,对比其他面向对象语言,你不需要在每一条语句后面使用分号。
这看起来很简单,似乎也节省不了多少时间;但一旦你的代码量扩展到数千号,这些分号就变得分心且没有必要键入。
2. 找一个称手的代码编辑器
选择一个称手的代码编辑器可以节省大量的时间。面对这么多代码编辑器,很多新手都会感觉很迷茫。
习惯一个编辑器再使用其他编辑器会觉得很混乱,所以选一个称手的是一个好的起点。不管你选择哪一个,要实时支持 flake8 和 PEP8。
关于编辑器选择指南,请参考文章 Which Code Editors Do Pythonists Use?
3. 遵循 Python 代码规范
遵循 Python 代码规范可以提升代码的可读性,从而节省评审代码的时间。(Python 的设计哲学 强调代码的可读性。)
4. 使用 help() 函数
Python 的 help() 是随手可用的内置函数可以节约很多时间,比如查找其他函数的解释。你可以在解释器终端直接运行该函数。
Python 文档有更多该函数的用法。
5. 使用库
Python 有大量的库可以让你不必每次都重复造轮子。
比如,你可以从 PyPI(Python包索引)选择大量可用的包,这是一个软件仓库。Scikit-image 是一个很好例子,它使图像处理任务如模糊,增强对比度,缩放只需要一些函数调用就可以完成。
6. 使用Cookiecutter
Cookiecutter 是一命令行工具,可以帮助你从工程模板创建 Python 工程,这可以节省大量的时间。
7. 严格的注释
养成写注释的好习惯,可以节省你和其他人的时间,尤其是作调试跟踪。(是的我们听到很多,但似乎很多程序员还是需要提醒)。
注释在团队合作是非常关键,尤其是一个做了大量变更。
8. 经常测试
尝试测试你程序中的每一个组件。听起来好像有点费时,但长时间运行可以节省大量时间,帮助你发现隐藏的 bug,让你对代码更放心,还强制你理解自己的每一片代码在真实情况下是如何地运行。
REPL 是一个 read-eval-print loop,一个常用的代码测试工具,很多 Pythonists 使用它。
9. 专注和专业
Pythonists 都建议要有一个专注领域和专长。你可以使用 Python 做很多事情,从编写网页摄像到处理计算和算法。
已经有大量的库可以帮助完成这些任务,如 SimpleCV,计算机视觉处理;Biopython,是一个生物计算库; SymPy,是一个数学符号计算库。
深入类似这些的领域,并掌握一个特定的框架,帮助你在更深的层次学习 Python,掌握一个特定的代码风格(在第三部分已经提到),处理特定类型的问题。
10. 每天编码
当你养成了每天写 python 代码,使用 python 解决问题的习惯,你就会开始用 python 思考,可以这么说,这将最终会帮助你更快的解决问题。
总结
在这边简短的文章中,我已经列举了主要的几个我从和 python 开发者的对话收集来的 tips,下面的是我能够添加进去的其他的 tips.
参与 python 的活动和集会,保证参加你能够参加到的每场活动和集会。他们有益于分享经验,最佳实践,工具和其他有趣的话题。
这可能表面上不是一种省事的策略,但是通过建议,提示,破解来学习其他人的经验是另一种避免重复造轮子的方法。
本文分为五个部分:难度依次递增,劝退程度依次增大。
第一部分:编程环境准备
零基础入门Python的话我不建议用IDE,IDE叫集成开发环境,这东西一般是专业程序员用来实战开发用的,好处很多,比如:调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试、版本控制等。
坏处就一个,我觉得对于新手最致命的,按键太多,太麻烦了,很容易在这一步就直接放弃了。
在这里,我推荐使用jupyter notebook,别看它名字长哈,反而它实际上用起来很简单。
运行界面就这么简单,比起上面的IDE是不是要简单太多了?
jupyter notebook的优点我得再吹一波:
无需IDE,一个浏览器搞定
交互式开发和直观的数据展示
叙述性文本的特性让其直接变成展示文档
多种类型变化,可直接转换成python,md等类型文件
完全免费
还支持R语言
至于如何安装,可以看这里:【2022版】最新python+pycharm安装教程合集,哔哩哔哩_bilibili第二部分:基础入门
在第一部分完成之后,如果还没放弃的话,我觉得已经成功了一半了,因为据我的经验,很多很多的人倒在了编程环境的配置上,哈哈哈。
现在的你应该有了上图的那个界面,这个时候你就可以开始学习python的基础了。
这一步不能被跳过。在深入你的兴趣领域之前,学习Python语法的基础知识是必要的。但不用花很多时间,因为可以在实战中反复练习。
这里有一些很好的资源可以学习基础知识:
W3C schools:这上面有详尽的Python语法介绍,同时也包含了进阶的教程。
菜鸟编程:很多人的选择,里面的基础讲解的很详细,很适合新手入门。
比如编程的第一步,输出“hello world!”
红框里面的就是python的程序,最简单的一个。
、
print("Hello, World!")
你可以把这个代码复制粘贴过去,然后按下面的步骤运行,成功的话,下面会输出。
在完成了这一步之后,你需要手打一遍,不能再复制粘贴了,因为自己打可能会发现很多问题。
看起差不多吧?但实际上正确的括号应该是英文括号,如果打成中文括号就会报错。
同理,!和!也是不一样的,很多同学就卡在了这些细节上。
我建议新手把菜鸟教程的初级教程学完,高级教程可以先不看,但是学完的标志是自己全部手打一遍,而不是复制-粘贴-运行,这没有用!
第三部分:找到你的兴趣
在进一步深入学习Python之前,问自己为什么要学习它。这是因为这将是一个漫长而痛苦的过程。没有足够的动力,你可能无法坚持到最后。弄清楚动机的好处是可以帮助你弄清楚最终目标,以及一条学习起来轻松有趣的路线。在准备学习Python时,不用有一个确切的项目,一个你感兴趣的领域就可以。例如:
机器学习
人工智能
网站制作
游戏类
数据处理与分析
硬件/传感器/机器人
自动化工作脚本
对于大多数人来说,我其实是推荐把数据分析当做一个方向来学的,首先python的优势就在数据处理分析与人工智能。
人工智能的从业门槛很高,自学基本上属于纯玩,性价比不高。
数据分析处理,我觉得是未来各行各业都可能碰到的问题,虽然现在有很多自动化数据处理工具,但是毕竟通用的场景并不多,而那些熟悉某个特定行业领域+数据处理能力的复合型人才就相对可能更吃香。
这里有一门知乎出品的数据处理精品课程,对于在本职工作之外想要学习一门实用技能的同学,建议免费体验一下,记住,那这个找工作很难,属于锦上添花的技能。
画图是不是很有意思,自己就可以做报表了
第四部分:进行结构化项目练习
学习完基本语法后,并且选择好自己的方向之后。就可以开始自己做项目了。具体项目是一种学习的好方法,因为它可以运用自己的知识和反复帮助你熟练基础知识。要记住,编程这东西,一旦不用,能力会急速下降。但是,这时侯有网上也充斥着很多的资源,让人难以选择。因此,通常最好使用以及制作好的成体系的结构化的项目,可以一步步的引导你完成整个项目。网上很多资源都提供了结构化的项目,这些项目既可以让你从感兴趣的东西开始,又可以避免陷入学习困境。
下面介绍一些不错的项目:
数据科学/机器学习
Dataquest- 交互式的教学基于Python的数据科学。分析一系列有趣的数据集,从CIA文件到NBA球员数据。最终将构建复杂的算法,包括神经网络和决策树等。
Python for Data Analysis — Python数据分析的优质项目。
Scikit学习文档 — Scikit学习是主要的Python机器学习库。它具有一些出色的极其详尽的文档和教程。
CS109- 这是哈佛的课程,讲授使用Python进行数据科学。他们在线上有一些项目和全部资料 。
行动应用程式
Kivy指南 — Kivy是开源Python函式库,用于开发行动应用程序和其它采用自然用户界面的多点触控应用软件。它可以在Android,iOS,Linux,OS X和Windows执行。采用MIT授权条款,Kivy是自由并且开源的软件。
网站制作
Flask教程 — Flask是Python的流行Web框架。这是一个入门教程。
Bottle教程 — Bottle是另一个适用于Python的Web框架,同样是入门教程
如何使用Django进行网站制作 —使用Django(复杂的Python网络框架)的指南。
第五部分:自行探索Python发展路线
一旦完成了一些结构化项目,就可以独自开发项目了,以继续更好地学习Python。在这个阶段会遇到很多的困难,绝大多数的问题都可以在以下得到解答:
StackOverflow- 一个社区问答站点,人们可以在其中讨论编程问题。
CSDN - 中文技术论坛
Google- 每个有经验的程序员中最常用的工具。尝试解决错误时非常有用。
Python文档 -在Python上查找参考资料的好地方。一旦对掌握了上述技巧,就可以开始发展自己的项目。可以从自己感兴趣的事情开始。例如,在学习编程后不久,我做的就是简单的数据分析,进行一些走势的分析等。
以下是寻找有趣项目的一些技巧:
扩展您以前处理的项目,并添加更多功能。
查找要贡献的开源项目。
查找他人制作的项目,然后查看是否可以扩展或改编它们。 Github 是找到这些的好地方。
浏览其他人的博客文章以找到有趣的项目构想。
考虑可以使您的日常生活更加轻松的工具,比如自己做一个爬虫小工具。
最好启动一个小项目,然后慢慢的增加功能,直到完成一个中型甚至大型项目。如果实在没有什么想法,下面有一些项目可以参考:
数据科学/机器学习项目
可以预测居住地的天气的算法。
预测股市的工具。
自动汇总新闻文章的算法。
移动应用项目跟踪你每天走多远的应用程序。
发送天气通知的应用程序。
基于位置的实时聊天。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。