python3全栈学习笔记-01

网络上关于python的课程很是多,图文、视频都有,这里记录本身的学习历程,驽马十驾,功在不舍。python

第一个问题 什么是python

咱们从事一件工做以前,首要的就是弄清它的概念,名称,历史和渊源。
咱们为何要编程?编程就是想用编程语言开发程序,让计算机干活。好比分析金庸全集中的人物关系图、下载一个全系列的莫扎特音乐等等。而计算机干过的CPU只认识机器指令。在机器指令和需计算机完成的任务之间,就须要编程语言。什么是编程语言?你可能已经据说过不少种流行的编程语言,好比很是难学的C语言,很是流行的JAVA语言,适用网页编程的JavaScript语言等。不一样的编程语言,干同一件事,编写的代码量,差价很大。
那python是一种面向对象、解释型的计算机程序设计语言。它由Guido van Rossum在1989年发明,第一个公开发行版于1991年发布。它的特色是语法简洁、清晰、优雅、简单易学。强制采用空白符(white space)做为语句缩进,而不是采用{}来表示代码件的层次关系。这在必定程度上减小了码农输入量。
如今,全世界差很少有600多种编程语言,但流行的编程语言也就那么20来种。若是你据说过TIOBE排行榜,你就能知道编程语言的大体流行程度。这是最近10年最经常使用的10种编程语言的变化图:
[编程语言趋势图]linux

第二个问题 python的优缺点

总的来讲,这几种编程语言各有千秋。C语言是能够用来编写操做系统的贴近硬件的语言,因此,C语言适合开发那些追求运行速度、充分发挥硬件性能的程序。而Python是用来编写应用程序的高级编程语言。git

当你用一种语言开始做真正的软件开发时,你除了编写代码外,还须要不少基本的已经写好的现成的东西,来帮助你加快开发进度。好比说,要编写一个电子邮件客户端,若是先从最底层开始编写网络协议相关的代码,那估计一年半载也开发不出来。高级编程语言一般都会提供一个比较完善的基础代码库,让你能直接调用,好比,针对电子邮件协议的SMTP库,针对桌面环境的GUI库,在这些已有的代码库的基础上开发,一个电子邮件客户端几天就能开发出来。程序员

Python就为咱们提供了很是完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称做“内置电池(batteries included)”。用Python开发,许多功能没必要从零编写,直接使用现成的便可。github

除了内置的库外,Python还有大量的第三方库,也就是别人开发的,供你直接使用的东西。固然,若是你开发的代码经过很好的封装,也能够做为第三方库给别人使用。
能够参看python awesome算法

许多大型网站就是用Python开发的,例如YouTube、Instagram,还有国内的豆瓣。不少大公司,包括Google、Yahoo等,甚至NASA(美国航空航天局)都大量地使用Python。数据库

龟叔给Python的定位是“优雅”、“明确”、“简单”,因此Python程序看上去老是简单易懂,初学者学Python,不但入门容易,并且未来深刻下去,能够编写那些很是很是复杂的程序。编程

总的来讲,Python的哲学就是简单优雅,尽可能写容易看明白的代码,尽可能写少的代码。windows

那Python适合开发哪些类型的应用呢?python3.x

首选是网络应用,包括网站、后台服务等等;

其次是许多平常须要的小工具,包括系统管理员须要的脚本任务等等;

另外就是把其余语言开发的程序再包装起来,方便使用。

最后说说Python的缺点。

任何编程语言都有缺点,Python也不例外。优势说过了,那Python有哪些缺点呢?

第一个缺点就是运行速度慢,和C程序相比很是慢,由于Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程很是耗时,因此很慢。而C程序是运行前直接编译成CPU能执行的机器码,因此很是快。

可是大量的应用程序不须要这么快的运行速度,由于用户根本感受不出来。例如开发一个下载MP3的网络应用程序,C程序的运行时间须要0.001秒,而Python程序的运行时间须要0.1秒,慢了100倍,但因为网络更慢,须要等待1秒,你想,用户能感受到1.001秒和1.1秒的区别吗?这就比如F1赛车和普通的出租车在北京三环路上行驶的道理同样,虽然F1赛车理论时速高达400千米,但因为三环路堵车的时速只有20千米,所以,做为乘客,你感受的时速永远是20千米。
第二个缺点就是代码不能加密。若是要发布你的Python程序,实际上就是发布源代码,这一点跟C语言不一样,C语言不用发布源代码,只须要把编译后的机器码(也就是你在Windows上常见的xxx.exe文件)发布出去。要从机器码反推出C代码是不可能的,因此,凡是编译型的语言,都没有这个问题,而解释型的语言,则必须把源码发布出去。

这个缺点仅限于你要编写的软件须要卖给别人挣钱的时候。好消息是目前的互联网时代,靠卖软件受权的商业模式愈来愈少了,靠网站和移动应用卖服务的模式愈来愈多了,后一种模式不须要把源码给别人。

再说了,如今如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数很是优秀的像Linux同样的开源代码,咱们千万不要高估本身写的代码真的有很是大的“商业价值”。那些大公司的代码不肯意开放的更重要的缘由是代码写得太烂了,一旦开源,就没人敢用他们的产品了。

第三个问题 python版本的选择

学习一门语言,理应学习、掌握它的新特性、新功能,计算机发展突飞猛进,不知是硬件有摩尔定律,软件新知识也迭代很快。python2的默认字符集是ASCII编码,写中文会报错,字符编码一直是让程序员头疼的一件事情,python2在处理中文的时候的确比较头疼,在python3.x版本中默认字符集是Unicode。这里,就选python3.6。python官网

第四个问题,python编程环境的选择

首先咱们选择是windows平台,其实windows,linux,Mac,从入门的角度来看,都差很少。这里选择windows,是由于你们平常办公和编程开发在windows平台下的几率大一些。
python外号“胶水语言”,也就是说它能把不少编程语言、不少功能集成起来。它为何会这么强大,很大一部分缘由就是他的包。但包的管理不是一个很容易的事情。为了解决这些问题,有很多发行版的Python,好比WinPython、Anaconda等,这些发行版将python和许多经常使用的package打包,方便pythoners直接使用,此外,还有virtualenv、pyenv等工具管理虚拟环境。
本身爱尝试不一样的工具,尝试到最后, anaconda,为何选择这个,由于其强大而方便的包管理与环境管理的功能,很是便于新手。固然,还有不少课供选择的,之前有python(x,y)等包的集成环境。但,截至到目前,anaconda集成度较高,使用用户很是多。
Anaconda是一个用于科学计算的Python发行版,支持 Linux, Mac, Windows系统,提供了包管理与环境管理的功能,能够很方便地解决多版本python并存、切换以及各类第三方包安装问题。Anaconda利用工具/命令conda来进行package和environment的管理,而且已经包含了Python和相关的配套工具。

这里先解释下conda、anaconda这些概念的差异。conda能够理解为一个工具,也是一个可执行命令,其核心功能是包管理环境管理。包管理与pip的使用相似,环境管理则容许用户方便地安装不一样版本的python并能够快速切换。Anaconda则是一个打包的集合,里面预装好了conda、某个版本的python、众多packages、科学计算工具等等,因此也称为Python的一种发行版。其实还有Miniconda,顾名思义,它只包含最基本的内容——python与conda,以及相关的必须依赖项,对于空间要求严格的用户,Miniconda是一种选择。

进入下文以前,说明一下conda的设计理念——conda将几乎全部的工具、第三方包都当作package对待,甚至包括python和conda自身!所以,conda打破了包管理与环境管理的约束,能很是方便地安装各类版本python、各类package并方便地切换。
考虑到软件源下载速度问题,通常在清华大学开源软件镜像站下载,配置软件源。下载地址,进入之后,会发现有两个不一样版本的Anaconda,分别对应Python 2.7和Python 3.5,两个版本其实除了这点区别外其余都同样。后面咱们会看到,安装哪一个版本并不本质,由于经过环境管理,咱们能够很方便地切换运行时的Python版本。(因为我经常使用的Python是3.6,所以倾向于直接安装Python3.6对应的Anaconda)。选择最新的python3安装包进行安装。安装完成后,运行一下命令配置
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes

第五个问题 python编译环境的选择

这里选择pycharm。pycharm社区版对新手来讲,已经够用了。

第六个问题,python教程的选择

学习 Python 除了官方的教程以外,推荐一本书 Dive Into Python 有中文版,也有英文版。中文版翻译质量也很高。
固然,Learn Python The Hard Way 也不错。不过建议选择一本照着练习,一个月掌握这个语言的基础特性问题不大。
推荐一个网络文字教程廖雪峰的python3课程

Python 用来实现科学计算的软件包是 scipy, numpy, matplotlib,其中 numpy 提供高性能的数值去处;scipy 实现机器学习的算法;matplotlib 提供数据可视化。

这三个库都挺大的,内容也比较多。这里重点推荐一个很是优质地适合入门的网站:Python Scientific Lecture Notes。一个网站把机器学习想着的 Python 工具所有搞定,而且内容易懂。

几点感悟

经过这个,有如下几点感悟:

  1. 完成一件事情,一般都有不少种选择,python编译环境既能够选择pycharm集成。也能够选择VIM,emacs,vscode,notepad++,sublime_text等编辑器,而后在命令行或者在编辑器自身上配置运行编译,这个都行。你的爱好定了,你的选择就定了。
  2. 如今想学习一个东西都太方便了,互联网上各种教程都有。为何不少人制做免费教程给你们分享,为何不少人选择付费教程学习,为何不少人喜欢在互联网上分享本身的学习心得?这里面有不少值得思考的地方。
  3. 为何在这里将本身的心得强行记录下来,目的就是经过这样一种强行“输出”,倒逼本身思考,理清思路,再很好的输入。
  4. 不管作什么事情,哪怕再小的一个事情,里面都有一些技巧、诀窍值得深思,学习,总结。譬如,anaconda软件源的选择,pycharm安装后的设置,pycharm激活码的获取,里面其实仍是有不少能够总结的地方。
  5. 学习能够从零开始,但在工做上必定要充分利用前人的成果,站在巨人的肩膀上,本身才能站得更高,看的更远。
相关文章
相关标签/搜索