欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

怎样开始自学Python?

程序员文章站 2022-05-18 16:50:14
...
电脑上面要安装哪些软件?需要做哪些准备?转行待业中。

回复内容:

Python是一个通用编程语言,并很快成为每个自重程序员宝库中的一个必需品。

Python中有数不清的Web框架,从基本的微小架构到完整的架构,它们自有各自的优点。那么你准备使用它来做一些web开发,但在探讨细节之前,让我们从头开始。


学习Python的基础

截至目前,Python有两个版本,2.7.5和3.3是目前Python的稳定版本。你选择哪个学习并不重要,因为区别非常小——尤其对于初学者而言。但你应该知道,虽然Python 2有非常非常多的第三方支持,Python 3是设计语言的开发者关注的重点,很多第三方支持还没有移植到Python 3。这个选择需要你做出决定。然而,学习任何新的语言都会是一件令人却步的任务,找到合适的地方和人并从中学习是成功的一半。这是这篇指南的用处。让Python简单、有趣并易于学习是你的蓝图。


1. Codecademy python课程

Codecademy做了一项伟大的工作,将python的课程放在了一起,这对于初学者快速入门Python非常有用。

2. ScreenCasts

对于绝对的初学者,有一些非常棒的截屏视频。

我学习python时参考的一些截屏视频是:

  • ShowMeDo's Python Screencasts
  • TheNewBoston's Python Programming Tutorials

两个教程非常优秀,你甚至可以在学习完这两个系列后开始编写脚本。非常建议观看下那些教程,它们是免费的,同时也是你将来参考时的非常好的资源。


3. Python的官方网站

当然,没有比官方python.org的文档更加好的资源了。但并不推荐给初学者,因为涉及的概念更加深入和高级,但它仍然是最好的资源。

有了这个,你将拥有一些python知识,知道在python中怎么样处理东西。

读一些书

有过剩的免费高质量的电子书可供选择。下面的快捷清单列出了一些最好的书。你可以免费下载它们的电子版,或者如果你想支持作者的话,你也可以选择购买纸质书籍(或者捐赠),我相信他们将非常感激这种方式。


Think Python: How to Think Like a Computer Scientist

Think Python涉及理论方面的知识稍微多些。这可能会让初学者有些沮丧,但这本书在算法原理和高级概念上的相关知识非常值得一读。

Invent With Python

如果“边学边做”是你的方式,那么构建自己的游戏将会是一个非常值得的经历!在这本书中,AI Sweigart假设没有Python的知识,并全程带领你构建自己的游戏。


熟悉*

*不仅仅全是“新手”错误和问题;有一些非常聪明并乐于助人的人也在使用这个网站——从他们身上学习!

例如,看一下 Python的隐藏特性这个问题。

你这里看到的很多提示和技巧可能很多正式的教程不会涉及,但它们对于中高级Python用户非常有用。


进入Web开发

现在你完成了Python忍者训练,准备深入Ptyhon的Web开发,但现在的问题是有很多的框架,从中选择最好的框架非常困难,但从初学者的角度出发,Flask基本Web框架将非常适合Web开发入门,因为你仅仅需要知道Python就可以开始,而你已经学了很多知识了。

在你学习完Flask框架后,你将会知道创建静态页面非常简单,这是下一个问题出来了,使用它创建下一个web2.0的大应用合适么?答案是Yes,你可以用Flask创建任何你想的应用,但在通过很多步的努力之后,你会发现,你已经成功的重新建造了一个已经有的*,但它给予你巨大的灵活性和力量,一开始你可能会感觉势不可挡,而这也是很多初学者选择Django,然后在六个月左右换了其他的框架。


你可以读一下这个,知道哪些网站是由Flask驱动的

The largest site built with Flask

尽管Django和Pyramid也擅长Web开发,但他们是专为高级用户设计,而不是仅仅学习编写了几行python的初学者。但如果你想认真学习Web开发,学习Flask是个很好的入门框架,因为它不抽象任何事物,也没有任何魔法。


常用的库和工具

PyPy

如果你要做的工作是计算密集型的,那么你会发现Python的性能是一个瓶颈,这时候你就需要PyPy。PyPy是Python解释器的一个替代品,可以有效加快处理速度。

NumPy + SciPy

这两个库通常是一起使用的(SciPy依赖于NumPy)。如果你需要做一些复杂的数值计算或科学研究工作,那么这两个库将是你的案头好友。NumPy和SciPy扩展了Python的数学函数功能,可以大大提高你的工作效率。


BeautifulSoup

正如其名,BeautifulSoup确实是非常优雅的。如果你需要解析一个HTML页面来获取一些信息,你应该知道这是非常烦人的事情。BeautifulSoup的作用就是为你做这些事情,并为你节省时间。强烈推荐使用。

Python Image Library

The Python Image Library (PIL)是一个用来处理几乎所有图像操作的扩展库。如果你需要处理一个图像,PIL可以为你做很多。

了解了这些之后,你可以走上你自己的Python之路。


一些Web开发库

SQLAlchemy

SQLAlchemy是Python的一个SQL和对象关系映射(ORM)工具集。它功能强大,并且很灵活,使得应用程序开发者可以方便地进行SQL操作。

Alembic

Alembic是一个轻量级的数据库集成工具,主要和SQLAlchemy协同使用。


译文来源:oschina.net/translate/g

我最近开了一个微信公众账号,现在每天就在讲一点python入门,不过讲得很浅。
欢迎你来听听看。

名字叫做 Crossin的编程教室
微信号是 crossincode
给个二维码传送门
怎样开始自学Python? 本人才疏学浅,学识大多浅尝辄止,故文章若有错误,不论是文字笔误还是理解有错,烦请您留言以告知,本人必定感激不尽!

**Python分类下的系列文章,不断更新中,如果你迫不及待地想要看看写得如何可以先试试这篇[Python Algorithms - C4 Induction and Recursion and Reduction](Python Algorithms),如果觉得好久留言点个赞呗,如果觉得不好那就直接关掉这个博客网站吧,嘿嘿**

**[感谢@Google爱好者给该系列的命名,我很喜欢,叫做“码农与蛇的故事”]**

1.Python基础知识篇

[Python Basics](Python Basics) 和 [Python Advances](Python Advances)

前者是Python基础的简单总结(大部分摘自[网上恩师@廖雪峰老师的Python教程](Python教程 - 廖雪峰的官方网站)),后者推荐了些关于Python高级特性的好文章(大部分摘自[伯乐在线Python分类的文章](Python - 博客))

2.Python数据结构篇

数据结构篇主要是阅读[Problem Solving with Python](Welcome to Problem Solving with Algorithms and Data Structures) [该网址链接可能会比较慢]时写下的阅读记录,当然,也结合了部分[算法导论](Introduction to Algorithms)中的内容,此外还有不少wikipedia上的内容,所以内容比较多,可能有点杂乱。这部分主要是介绍了如何使用Python实现常用的一些数据结构,例如堆栈、队列、二叉树等等,也有Python内置的数据结构性能的分析,同时还包括了搜索和排序(在算法设计篇中会有更加详细的介绍)的简单总结。每篇文章都有实现代码,内容比较多,简单算法一般是大致介绍下思想及算法流程,复杂的算法会给出各种图示和代码实现详细介绍。

**这一部分是下面算法设计篇的前篇,如果数据结构还不错的可以直接看算法设计篇,遇到问题可以回来看数据结构篇中的某个具体内容充电一下,我个人认为直接读算法设计篇比较好,因为大家时间也都比较宝贵,如果你会来读这些文章说明你肯定有一定基础了,后面的算法设计篇中更多的是思想,这里更多的是代码而已,嘿嘿。**

(1)[搜索](Python Data Structures)

简述顺序查找和二分查找,详述Hash查找(hash函数的设计以及如何避免冲突)

(2)[排序](Python Data Structures)

简述各种排序算法的思想以及它的图示和实现

(3)[数据结构](Python Data Structures)

简述Python内置数据结构的性能分析和实现常用的数据结构:栈、队列和二叉堆

(4)[树总结](Python Data Structures)

简述二叉树,详述二叉搜索树和AVL树的思想和实现

3.Python算法设计篇



算法设计篇主要是阅读[Python Algorithms: Mastering Basic Algorithms in the Python Language](Python Algorithms: Mastering Basic Algorithms in the Python Language)[**点击链接可进入Springer免费下载原书电子版**]之后写下的读书总结,原书大部分内容结合了经典书籍[算法导论](Introduction to Algorithms),内容更加细致深入,主要是介绍了各种常用的算法设计思想,以及如何使用Python高效巧妙地实现这些算法,这里有别于前面的数据结构篇,部分算法例如排序就不会详细介绍它的实现细节,而是侧重于它内在的算法思想。这部分使用了一些与数据结构有关的第三方模块,因为这篇的重点是算法的思想以及实现,所以并没有去重新实现每个数据结构,但是在介绍算法的同时会分析Python内置数据结构以及第三方数据结构模块的优缺点,也就意味着该篇比前面都要难不少,但是我想我的介绍应该还算简单明了,因为我用的都是比较朴实的语言,并没有像算法导论一样列出一堆性质和定理,主要是对着某个问题一步步思考然后算法就出来了,嘿嘿,除此之外,里面还有很多关于python开发的内容,精彩真的不容错过!

这里每篇文章都有实现代码,但是代码我一般都不会分析,更多地是分析算法思想,所以内容都比较多,即便如此也没有包括原书对应章节的所有内容,因为内容实在太丰富了,所以我只是选择经典的算法实例来介绍算法核心思想,除此之外,还有不少内容是原书没有的,部分是来自算法导论,部分是来自我自己的感悟,嘻嘻。该篇对于大神们来说是小菜,请一笑而过,对于菜鸟们来说可能有点难啃,所以最适合的是和我水平差不多的,对各个算法都有所了解但是理解还不算深刻的半桶水的程序猿,嘿嘿。

本篇的顺序按照原书[Python Algorithms: Mastering Basic Algorithms in the Python Language](Python Algorithms: Mastering Basic Algorithms in the Python Language)的章节来安排的(章节标题部分相同部分不同哟),为了节省时间以及保持原著的原滋原味,部分内容(一般是比较难以翻译和理解的内容)直接摘自原著英文内容。

**1.你也许觉得很多内容你都知道嘛,没有看的必要,其实如果是我的话我也会这么想,但是如果只是归纳一个算法有哪些步骤,那这个总结也就没有意义了,我觉得这个总结的亮点在于想办法说清楚一个算法是怎么想出来的,有哪些需要注意的,如何进行优化的等等,采用问答式的方式让读者和我一起来想出某个问题的解,每篇文章之后都还有一两道小题练手哟**

**2.你也许还会说算法导论不是既权威又全面么,基本上每个算法都还有详细的证明呢,读算法导论岂不更好些,当然,你如果想读算法导论的话我不拦着你,读完了感觉自己整个人都不好了别怪小弟没有提醒你哟,嘻嘻嘻,左一个性质右一个定理实在不适合算法科普的啦,没有多少人能够坚持读完的。但是码农与蛇的故事内容不多哟,呵呵呵**

**3.如果你细读本系列的话我保证你会有不少收获的,需要看算法导论哪个部分的地方我会给出提示的,嘿嘿。温馨提示,前面三节内容都是介绍基础知识,所以精彩内容从第4节开始哟,么么哒 O(∩_∩)O~**

(1)[Python Algorithms - C1 Introduction](Python Algorithms)

本节主要是对原书中的内容做些简单介绍,说明算法的重要性以及各章节的内容概要。

(2)[Python Algorithms - C2 The basics](Python Algorithms)

**本节主要介绍了三个内容:算法渐近运行时间的表示方法、六条算法性能评估的经验以及Python中树和图的实现方式。**

(3)[Python Algorithms - C3 Counting 101](Python Algorithms)

原书主要介绍了一些基础数学,例如排列组合以及递归循环等,但是本节只重点介绍计算算法的运行时间的三种方法

(4)[Python Algorithms - C4 Induction and Recursion and Reduction](Python Algorithms)

**本节主要介绍算法设计的三个核心知识:Induction(推导)、Recursion(递归)和Reduction(规约),这是原书的重点和难点部分**

(5)[Python Algorithms - C5 Traversal](Python Algorithms)

**本节主要介绍图的遍历算法BFS和DFS,以及对拓扑排序的另一种解法和寻找图的(强)连通分量的算法**

(6)[Python Algorithms - C6 Divide and Combine and Conquer](Python Algorithms)

**本节主要介绍分治法策略,提到了树形问题的平衡性以及基于分治策略的排序算法**

(7)[Python Algorithms - C7 Greedy](Python Algorithms)

**本节主要通过几个例子来介绍贪心策略,主要包括背包问题、哈夫曼编码和最小生成树等等**

(8)[Python Algorithms - C8 Dynamic Programming](Python Algorithms)

**本节主要结合一些经典的动规问题介绍动态规划的备忘录法和迭代法这两种实现方式,并对这两种方式进行对比**

(9)[Python Algorithms - C9 Graphs](Python Algorithms)

**本节主要介绍图算法中的各种最短路径算法,从不同的角度揭示它们的内核以及它们的异同** 推荐《笨办法学 Python (第三版)》
我最近也在学编程。纯兴趣。 推荐2个站点
初级班:http://www.learnpython.org
高级班:learnpythonthehardway.org Coursera上有个Python互动编程的课 哈哈,知乎我又回来.
首先,你只要下个ide,然后呢,去看下《python简明教程》,这书很小,而且基础的知识点基本都涵盖了,对着它里面讲的都自己敲一遍,2,3天就可以搞定(不需要花很多时间就可以看完,很激励人心)。
然后呢,你就可以开始尝试做下一些小东西啦,比如做游戏的经常会遇到要导表的情况,即从excel导出数据到txt或者其它的地方,比如做些批处理操作,又比如尝试去抓取下某个网站的图片,信息,如果你觉的上面那个不够有趣,而且你喜欢玩游戏,你会知道游戏里面经常有些重复的操作升级打副本什么的,你就可以写个想按键精灵那样的东西(记住不用去做界面哦),总之就是找些有趣的东西做就是了。当然了,做这些的过程肯定会遇到问题(当然我保证是些不会涉及复杂的问题),你尝试着去搜索,然后解决。
最后,当你解决了这些的时候,你会发现,python是这么有趣(精简的代码竟能实习如此多的功能。。。。。。),这时候你可以继续做小工具,小玩意,也可以回头去找些更加系统的书籍(如 python核心编程 )看下。之后剩下的进阶就交给时间很经验了。 我在另一个问题中的内容,觉得部分适用,就贴过来了,大家分享一些我的总结:
Pycharm,推荐一款免费的Python IDE
IDE对比,开源才是硬道理

学习链接:

Python:

Python | Codecademy

PythonTab:Python中文开发者社区门户

R:

R语言中文网-R语言论坛


最后分享一个:
做事就要像黑客一样执着
当然还有一些,python的Ta-lib的东西,就不在这里写了。感兴趣的可以交流互相学习。 推荐一个网站,可以在初学的时候用 mengma.com
入门之后,可以找一些书看 回想一下自己学习Python的经历,不可说不迷茫,不杂乱。
我的经验就是,你可以从Web入手,学习一下Django,或者webpy等等框架,做一些小的或模仿别人的web应用,当你遇到问题时,就回去网上找一些第三方的库,或其他资料。这样自然而然的就会有提高。
过程中你可能遇到各种问题,英文google是你最好的助手(唉,身边实在是没人学Python,只能靠自己)。有一个问题,你要注意,到你到了一个新的程度,你会觉得这么多东西需要学,然后既想学这个,又想学那个,结果会都学不好。认准一个目标,先做点成绩出来,在干别的。
仅是个人的一点拙见,学东西还是靠自己。

这个问题说简单也简单,说复杂也复杂.

一是要学好一句话兴趣.当你开始了兴趣是唯一驱动你继续学习的动力,因为程序设计是脑力劳动是智慧的结晶,每一个你自己写的程序都是心血.

二是要有坚定毅力.因为程序设计是纯脑力劳动,在你学习的道路上会有很多的问题,你应该知道一个符号都不能错,错了轻则通不过程序,重则结果错误.也许你为了一个小问题需要很长的时间,有时候时间都不一定能够解决问题.QQ群 \查资料(百度 Google能够解决绝大部分问题) \看该软件(语言)的帮助等等

三是有目标,比如做个聊天软件或是什么的,然后做设计\查资料\编码\测试等等通过做实际的感兴趣的东西来学习是最快的.及时困难很多很大,也要逐步的来.你一开始可以做个小东西积累经验.

python的帮助文档是很好的东西,英文的.如果你想学编程就要会英语同时装个金山词霸.

祝君好运,编程的道路漫漫,坚持就是胜利
Python培训 楼主可以看一下这个,希望对你有所帮助。