零基础学Python入门的详细路径,我为你准备好了

零基础学Python入门的详细路径,我为你准备好了!程序员

做为一门优美、精巧的编程语言,Python不只仅适合做为编程入门,对于但愿掌握实战开发技能进而从事编程工做的人来讲,Python也是一个很不错的选择。编程

零基础学Python入门的详细路径,我为你准备好了

下面针对零基础学Python的初学者说一说入门的学习路径。数组

一、创建开发环境bash


创建开发环境很是重要,。作任何开发,首先就是要把这个环境准备好,以后就能够去作各类尝试,尝试过程当中的话就能逐渐创建信心。初学者每每在环境配置中被各类预想不到的问题弄得很沮丧。数据结构

目前来讲,使用Python的工做环境有以下几种:多线程

命令行交互环境:这是Python原生支持的工做环境,直接在命令行与Python进行交互。闭包

文本编辑环境:是集成开发环境的一种精简版,以Sublime-Text这类文本编辑器为表明。这种环境仅保留帮助你编写代码的核心组件,主要是提供给单人工做的场景使用,在没有太多分工协做的前提下专一于代码的编写。编程语言

集成开发环境:若是想要使用Python编写较大的工程项目,特别是在不少人协同工做的状况下,能够考虑使用PyCharm这样的大型集成开发环境(IDE)。在这种环境下,IDE会将许多开发中须要的功能集成在一块儿,便于咱们的使用。编辑器

交互研究环境:在这种交互研究环境下,每次的代码都至关因而在以前代码上的增量,从而保证只有发生变化的部分被从新执行,无需对不发生改变的部分从新计算。特别适用于研究人员快速验证模型的正确性模块化

初学者通常使用文本编辑环境就能够,固然也要了解如何在命令行中输入代码与Python进行交互。

二、了解编程语言基础

有了工做环境后,咱们就能够开始编写和执行Python程序了。

Python这类脚本程序其实就像是一段“电影脚本”,按照从前日后的顺序规定了一系列的动做,指挥着你电脑的CPU、硬盘、操做系统等部件干这干那。因此为了让电脑可以看懂,你编写的这段“电影脚本”须要按照电脑所使用的语言进行编写。例如print("hello world!")这样一句话就会让电脑调用一系列部件,最后在屏幕上输出它对世界的问好;而a=3+5这样一句话就会让电脑计算3+5的答案,而后将答案放入一个名字为a的“盒子”当中。

因此初期你学习的是一些编写“电影脚本”的语法规则,在这个过程当中你会逐渐了解到编程语言的一些基本元素:

· 变量:变量就像是一个个存放了东西的盒子,用来保存一些临时的值或者那些须要屡次使用的值。变量有不一样的基本类型,好比数字和字符串类型。

· 运算符:变量顾名思义,是能够不断变化的,而变化的手段就是对变量就行操做(或者称之为运算)。运算符是Python语言中一种直观的数据操做方式,它能够对特定的一个或者多个变量或常量进行运算并返回结果。好比最简单的加减乘除在Python语言中都有对应的运算符。

· 条件控制:在Python程序执行的过程当中,咱们须要根据当前的情况来判断接下来让电脑作什么,这就是条件控制语句,它会将“剧本”拆分红两部分,在一种状况下执行第一部分,在剩下的状况执行第二部分。

· 循环控制:有一些脚本咱们有时候可能要重复执行,或者它们有很大程度的公共部分(例如输出1到100之间的100个整数,每次输出就很是类似),咱们就会使用循环控制语句。咱们也能够中断一次循环(continue)或者跳出循环(break)。

使用这些元素,咱们就能完成大部分的计算了,你能够编写一些简单的程序,也能够在命令行中经过这些语言元素对Python虚拟机发号施令啦。固然,若是你学习过另一门语言,这部分基础是信手拈来的,那么对你来讲更可能是熟悉和适应Python的语法风格。

三、掌握数据结构基础

为了可以完成更复杂的计算场景,Python提供了若干种内置的数据结构。所谓数据结构,你能够认为一组变量以某个特定的方式组织在一块儿,而不只仅是单个独立的变量。经过特定的组织方式,在处理某些运算时可以可以大大提升编程的效率。数据结构是计算机专业的一门必修专业课,更高级的数据结构及其内部实现方式你须要专门学习,不过Python的数据结构能够是一个很是好的学习起点。

Python内置的数据结构包含以下四种:

列表:列表(list)在Python的语法中是一种有序且长度可变的集合,能够随时对其中的元素进行添加、删除和修改。咱们每每能够用列表来表示各类队列、数组这种“有序”的序列。

元组:元组(tuple)和列表基本相同,都是有序的序列,其区别在于元组内的元素一旦定义,就不可以再进行修改,只可以经过下标对元组内部的元素进行访问。使用元组,咱们能够将一些数据有机的组合在一块儿进行表示。

·集合:集合(Set)做为一个复杂数据类型,如其在数学中的定义同样,在Python中也是起到表示一系列值的“集合”的做用。使用集合,咱们能够快速的判断某个元素的存在性。

字典:字典(Dict)在数学中并无对应的定义,它更像是从生活中的字典借鉴而来的一种数据类型。例如手机通信录就是一个典型的可使用字典来存储的数据集。依靠字典,咱们能够很方便的根据某个元素ID(例如编号、名字等)来查找到它。

这四种数据结构可以覆盖大部分咱们所工做的场景,天码营的课程提升了更多实例,熟练掌握这四种数据结构,你会发现编程效率会大大提升。

四、掌握函数的基本概念

在实际编写程序的过程当中,某些代码可能会反复执行屡次。而这些代码除了变量不一样外,没有任何的区别。这些代码实际上相似于数学表达式中的函数f(x),当咱们给x赋值时,就会获得对应的结果。在Python中也提供了这样的特性,一样称之为“函数”。

函数将须要反复使用的代码进行模块化,从而减小了代码的重复,同时还增长了可读性和可维护性。当须要修改时,只要改变定义内的代码,就能够完成对每一次执行的修改。

定义函数的语法其实很简单,关于函数重点须要掌握的是函数的参数定义。Python函数的参数定义(即如何定义函数的输入)很是有特点,好比:

默认参数

可变参数

关键字参数

命名关键字参数

本质上这些特性使得函数调用者进行传参时会更加驾轻就熟。

五、面向对象编程

面向对象是一种很是符合人类思惟的编程方法,由于现实世界就是由对象和对象之间的交互来构成的,因此咱们其实很容易将现实世界映射到软件开发中。举个例子,一辆汽车、一篇博客、一我的,对应到软件系统中都是一个对象;而对象具备本身的状态和行为。

面向对象:类的定义

你须要了解一个面向对象编程的核心概念:“类”。类描述一类对象的状态和行为的模板。能够把类想象成一个汽车设计图,根据这个汽车设计图生产出来的每一辆汽车就是类的一个实例,这些实例就称之为对象。

状态和行为,对应到Python语言中,就是一个类和对象的属性和方法(类中的函数通常称之为方法),属性方法能够进行外部的访问控制,从实现“封装”这一面向对象特性。

因此对应到Python这门编程语言,首先你须要了解如何定义类,以及定义类的属性和方法。

面向对象:理解继承和多态

在“封装”的基础上,面向对象编程还有“继承”和“多态”的特型。假如咱们有一个动物(Animal)类,它包含有动物最基本的一些特型。如今咱们要新写一个犬(Dog)类,显然咱们知道犬也是动物的一种,所以它也确定包含动物类的所有特性。所以咱们利用“继承”的特型,并不须要将动物类的全部代码在犬类中重写一遍,而是在建立犬类时继承动物类。此时咱们将动物类称之为犬类的父类,犬类称为动物类的子类。而“多态”的特性使得犬类在继承动物类的方法时,也能够重写这写方法,使得它更有符合犬的特征。

面向对象编程方法的在大型项目中被普遍的应用。如今人们谈论到面向对象编程时,不只仅是一种程序设计方法,更多意义上是一种程序开发方法,了解面向对象编程时每一个程序员必需要作的事。

六、学习函数式编程

也许你还以为函数式编程很陌生,但许多的函数式编程风格已经渐渐开始流行。什么叫函数式编程呢?事实上只要语言将函数做为一等公民(或者借助工具达到相似效果) 就能够支持函数式编程。而将函数做为一等公民意味着函数能够像变量同样传参、赋值和返回。函数式编程的书写方式使得代码编写的效率更加高,极大地提升生产效率。

你须要了解高阶函数、匿名函数(lambda表达式),闭包等一些基本概念;了解函数式编程最好的方式是从下面几个很是实用的高阶函数开始。

函数式编程:了解高阶函数的用法

函数式编程:

map
复制代码

map多用于对列表数据的处理,它将一个方法依次对序列的每个元素使用,好比:

def f(x):
 return x*x
map(f, [1,2,3])
复制代码

该代码就会获得[f(1),f(2),f(3)],因此结果是[1,4,9]

reduce

reduce利用递归的思想,会将前一次的计算结果做为第一个参数,将下一个元素做为第二个参数进行计算:

def f(x1,x2):
 return x1*x2
reduce(f, [1,2,3,4])
复制代码

实际上等价于f(f(f(1,2),3),4),结果也就是24了

filter

filter会根据传入函数对象f的计算结果对原序列进行筛选,对于一个元素x, 留下f(x)为真(True)的元素,删除f(x)为假(False)的元素

sort

sort会根据函数的返回结果来断定两个数的大小关系,并依次做为依据对序列内元素进行排序,好比:

def compare(x, y):
 return y - x #逆序
myList.sort(compare)
复制代码

最后获得的myList就会是从大到小排列的序列。

函数式编程:lambda表达式

lambda表达式就是匿名函数,它直接实现了函数,而不须要定义函数名。好比上面排序的代码,咱们就能够这样实现:

myList.sort(lambda x,y: y-x)
复制代码

经过lambda表达式直接定义使用,这样就不须要去额外定义一个compare方法,代码会更加简洁。

函数式编程:闭包

在通常的函数中,返回值都是诸如数字、字符串之类的对象。但实际上函数的返回值能够是一个函数。返回的函数不只仅包含有其自身的代码,也同时包含了调用时的参数,而且屡次返回的函数之间互不干扰,这一特性被称为“闭包(closure)”。

函数式编程的学习并不复杂,学会使用函数式编程每每可以起到事半功倍的效果。可以熟练的使用Python函数式编程也是每一个Python程序员应该掌握的能力。

七、掌握更多标准库中的模块

咱们都说Python简单好用,方便易学,很大部分要归功于Python提供的功能强大的标准库。标准库意味着,Python已经帮咱们封装好了不少底层功能,咱们拿来即用。所以,标准库中的一些基础模块咱们须要掌握。

输入输出:最为“基础”的模块即是对输入输出的编程,咱们都知道能够经过input(),output()来完成对数据的输入和输出。可是若是想要读取的是图片?二进制文件?甚至于各种奇怪格式的文件。这种时候,咱们就须要经过IO编程来完成对这一过程的定制化。

异常处理:咱们编写的程序也可能产生许多错误,甚至有些错误是咱们在设计时就预计产生的。可是咱们不能让这些错误影响咱们程序的运行。例如,使用Python爬虫获取1000个网页,若是在开始爬第一个网页的时候程序就出错了,那么通常状况下咱们的程序就会自动终止,从然后续的网页也都不会爬取。可是咱们可使用异常处理,来“catch”住这些错误,将没有成功获取的网页记录下来,而后继续处理后续的网页。基于这样的方式,咱们就能够安心的让程序跑上一个晚上,而后在次日回来处理那些产生了异常的网页。

多进程与多线程:咱们还能够经过多进程和多线程使得咱们的Python程序拥有能够并行处理诸多复琐事物的功能。并行是一种可以充分利用计算机计算核心(CPU/GPU)性能的方法。在目前单核计算能力增加逐渐放缓的如今,并行是少有的可以大大增长计算速度的技术了。想象一下,使用单核CPU训练一次模型若是须要20小时,经过多核GPU(GPU内部自己就是并行的)就颇有可能将这个时间缩短到1小时内。这会大大增长对模型参数的调整效率。

Python标准库还有不少内容,这里列的确定是不全的;实际上随着Python版本的逐渐更新,还有更多的高级特性会被逐渐加入这门语言当中。毋庸置疑的,随着数据科学的发展,Python的使用前景也将愈来愈好。而在这个过程当中,保持对Python的熟悉和了解,会是你紧跟技术潮流的最佳助力。

若是你也恰好是零基础学Python,这篇文章看到这里也算是有收获了!

相关文章
相关标签/搜索