从能做什么到如何去做,一文带你快速掌握Python编程基础与实战
摘要:python语言的教程虽然随处可见,但是忙于日常业务/学习的你或许:一直想要“找个时间学一点”,但是又不知道该从何下手?本文将从python能做什么,如何学习python以及python的基础知识为你的python之路点上一盏明灯。
本文内容根据演讲视频以及ppt整理而成。
本文的分享主要围绕以下几个方面:
- python能做什么?(常见应用场景介绍)
- 如何学习python?
- python语法基础实战
- python面向对象编程实战
- 练熟基础:2048小游戏项目的实现与实战
福利:小编从事python开已有数年,最近整理了完整一套适合0基础入门的python学习资料来分享给大家;添加小编学习qun813542856即可。然后觉得文章不错麻烦帮小编点个转发,小编在这感激不尽。
一、python能做什么?
一种编程语言往往可以应用于多方面,有些方面比较常用,有些方面极为常用。上图中标红的部分是python极为常用的领域。首先,利用python可以进行简单脚本编程,比如使用python编写2048小游戏或12306的自动抢票软件。其次,可以使用python进行系统编程,开发系统应用。第三点,python一个较为常用的功能就是开发网络爬虫。网络爬虫的用途是进行数据采集,也就是将互联网中的数据采集过来。网络爬虫的难点其实并不在于爬虫本身,由于网站方为了避免被爬取回采取各种各样的反爬虫措施,而如果想要继续从网站爬取数据就需要解决这些反爬虫措施,所以网络爬虫的难点在于反爬的攻克和处理。第四点,python极常用于web开发,可以借助python开发web站点,比如个人博客、在线教育网站以及论坛等。第五点,在运维方面,python可以用于自动化运维,可以通过写python脚本实现对于服务器集群进行自动化管理。第六点,python可以用于网络编程,比如socket编程等。第七点,python极常用的一个方向就是数据挖掘、机器学习等大数据与人工智能领域方向的程序开发,比如在人工智能领域,使用python就可以很容易地实现算法模型,并且借助python可以很容易地处理相应的数据。
作为系列文章的首篇,本文将为大家分享python的基础知识。而学习python基础的第一步就是认识python可以干什么,通过上面的内容,大家可以了解到python语言可以做很多事情,或者可以说python基本上是一门全能的语言。python在各个领域都很优秀,而最重要的一点就是python比较易学。综上所述,python是一门非常棒的语言。
二、如何学习python?
首先与大家分享一些方法论,究竟应该如何学习python?其实学习任何一门知识,方法都是类似的,有些同学习惯直接看书或看视频,这些方法都不错,但是在学习的过程中需要掌握一些技巧,这样学习起来会事半功倍。
成体系地学,不搞“题海战术”
首先,要学就要成体系地学,不搞“题海战术”。遇到新知识就去查,然后就知道了,反复这样就是所谓的“题海战术”,这样做的好处就是用到了就会去寻找,但是缺点就是脑海里面的知识体系会非常乱,而且越学越乱,因为太多东西在脑海中不成体系地堆积导致非常难以利用,所以需要成体系地学习。所谓成体系地学习,就比如在学习基础时可以先掌握数据类型、控制结构、函数以及模块等,将这些知识形成体系。构建知识体系就像写书一样,在写书的过程中不可能想到哪里就写到哪里,而应该有一个大致的框架。成体系地学习的好处就是无论怎样学习都不会乱。而且最开始的体系不一定是非常完备的,比如在刚开始学习编程语言的时候可能并不知道迭代器和生成器,但这并不会影响知识体系的建立,而在后续学到迭代器和生成器的时候,再将这一部分的知识加入到知识体系中就可以了。但是这样的前提就是在脑海中一定要有一个非常清晰的体系结构,学到的新知识都可以归入到体系中,如果遇到了知识体系中没有的内容就可以对应地进行补充,这样就形成了非常清晰的体系结构,这样的学习方法收益会比较大。
不仅要“摹”,还要“临”
其次,不仅要“摹”,还要“临”。“临摹”是练习书法的手段,所谓“临”就是看着字帖中的字,凭着印象在纸上书写并且尽量复现字帖中的字;所谓“摹”就是在字帖上面蒙上一层薄白纸,然后在上面跟着字帖直接描。在“临”与“摹”中,显然后者更为简单。其实,学习任何一门知识都一样,不仅要“摹”,还要“临”。在学习python等编程语言时,一些同学可能学习时看看视频就过去了,这样显然是不可取的,好一点的同学会在看过视频之后,跟着视频把代码敲一遍,但是这样只是进行了“摹”,应该在此基础之上加上“临”的步骤,也就是关上视频、合上书本之后,凭借记忆对代码进行复现,去想自己的代码需要实现哪些功能,这样才能将知识真正地吸收。这样练习久了之后就会发现自己的能力提升得非常快。
通所有不如精一物,精一物方可通所有
第三个学习方法就是通所有不如精一物,精一物方可通所有。大家在学习的时候可能会遇到很多的框架,但是其实并不需要掌握所有的框架,比如对于爬虫而言,既可以学习scrapy,也可以学习urllib,还可以学习其他的框架。其实并不用掌握所有的框架,学习时可以深入地掌握其中一两个框架,之后就会发现所有的框架都是万变不离其宗的。精通一两个框架之后,其他的框架也会很容易掌握。学习编程语言也是一样的,当你精通了php或者java,python也能很快学会,但是如果同时学习java、python和php,最终可能导致每一门语言都不精通。其实学习过程的曲线在刚开始的基础阶段上升会非常慢,但是只要上手之后,进度就会非常快,所以大家在学习基础的时候一定不要着急。
三、python语法基础实战
在python语法的基础实战这部分将与大家分享数据类型、控制结构、函数与模块、文件操作与数据库操作以及异常处理等内容。
python基础知识入门
在python中输出直接使用print()函数,如果在python文件中重复四次print("hello python"),那么输出时就是四次“hello python”。如果想让某一行代码不起作用,可以使用注释。在python中有两种比较常见的注释方案,第一种是单行注释,在行首加“#”,这样就会注释掉这一行代码;第二种是多行注释,多行注释一般使用“'''”或“"""”(三引号)实现,直接将需要注释的代码段的首部和尾部加上三个引号即可。
数据类型
在学习任何一门编程语言时,都需要了解这门编程语言有哪些数据类型。在python中,常见的数据类型有数、字符串、列表、元祖、集合以及字典等。
数:就是数学上的数字,比如“a=7”就是将数字7赋值给a,这里的等号是赋值的意思。想要查看对应的数据是什么类型可以使用type()函数查看,比如7就是int整形,7.0就是float浮点型。
字符串:一系列字符所组成的序列叫做字符串。字符串一般使用引号将其引起来,这里使用单引号和双引号均可。比如:
上述代码所表达的内容是相同的,区别在于使用单引号和双引号所引起来的内容不能直接换行,而使用三引号就可以。
列表:存储多个元素的容器,列表中的元素可以被重新赋值,也就是说列表中的元素是可以变化的。建立列表可以通过“[]”实现,在其中可以放置数据。比如:a=[]表示a是一个空列表。再比如a=[a1,a3],列表中每个元素之间使用逗号隔开,a这个列表中包含了a1和a3两个元素。取其中的元素可以通过下标实现,比如a[1]就可以取出a1的值。而列表中的元素可以被重新定义,比如使用a[1]="hello" 就可以对原本a[1]的位置进行赋值,这就说明了列表中的元素是可以变化的。
元组:存储多个元素的容器,但是元组中的元素不可以被重新赋值。比如c=(7,"cd",9),c存储了一组数据,如果想要对c中任意位置赋值成为其他的数据,都是不可以的,因为元组内的数据是不能被更改的。所以,元组一般在对数据安全要求较高时使用,这也是元组与列表的区别。
字典:字典相当于关联数组,所谓关联数组就是里面需要存储一对信息的数组。列表和元组存储的元素都是一个,而字典存储的元素都是一对信息如d={"name":"weiwei","sex":"boy","job":"teacher"}这样的{键:值, 键:值, ...}。在取值的时候直接使用字典名["对应键名"]即可,比如对于上诉d这个字典,使用d["name"]就可以取到"weiwei"这个值。
集合:集合也是用于存储一组数据的,只不过集合的特性是不允许出现重复的元素,这一点大家早在高中就已经学习了。所以,集合的一个非常简单的应用就是去重,之所以说这个方法简单,是因为去重还有很多的实现方法,比如布隆过滤器等都是非常好的去重方式。在python中直接通过set就可以直接建立集合,比如e=set("abcdefgabc"),而集合是通过“{}”存储的,只不过大括号里面直接存储元素。而当输出e时就会发现,原本重复的内容就只保留一个。此外,集合还可以用于差集的运算,比如e=set("abcgjkhsgkjha"),f=set("jikhsdghsdueigdsfzau")直接使用g=e-f就可以获得e与f的差集。
运算符
以上的这些数据类型归根结底都是数据。数据是静态的,而通过运算符进行运算就可以让这些数据动起来。python里面的运算符有哪些呢?首先就是大家非常熟悉的“+-*/%”,这些运算都满足数学规律。除了“+-*/%”之外,还有字符串连接符“+”,如果想要将两个字符串连接起来只需要用“+”即可。
缩进问题
可能某些同学对于python的缩进比较反感,会觉得缩进很麻烦并且非常容易出错。但是实际上,缩进很美,当打开python项目时就会发现层次感很强,会感受到代码的美感,哪些代码属于同一层级是一目了然的。缩进所需要掌握的规律就是最开始的代码顶格,第二点就是同一层级的代码在同一个缩进幅度上,下一个层级的代码在下一个缩进幅度上。当掌握了缩进规律之后,再去写python代码就会很容易了。
控制结构
所谓控制结构就是程序的执行结构,程序可以像流水账一样顺序执行下去,也可以跳跃、循环以及分支执行,这些多种的执行方式叫做控制结构。实际上,python中最常用的控制结构只有三种就是:顺序结构、选择结构和循环结构,当然还有一些不常用的控制结构比如中断结构等。
顺序结构不必多讲,就是按照顺序写,程序也就按照顺序执行。在python中,分支结构通常使用if语句实现,如果if的条件为真,则执行下面对应的代码,否则继续向下看是否有分支结构,如果有则继续执行,否则就执行这一部分内容;如果if的条件为假,就不执行下面对应的代码。如下示例代码:
上述代码中第3行的if条件判定结果为真,程序会执行第4行至第6行代码。如果第3行的if判定为假,则继续向下面找寻分支。第7行和第9行都存在elif,其意思就是在不满足if的情况下如果满足elif的条件,就执行elif下面的代码,如果上述两行的elif条件都不满足,在第11行还有一个else,其意思就是在上述条件都不满足的情况下,执行else下面的代码。上述代码最终将会输出“gsdajk”。这里值得说明的一点就是如果实际情况不需要,可以没有elif以及else等语句,也就是可以单独使用if语句。
循环结构也是一个极为重要的结构。在python中,循环结构有相应的方法去实现,常用的有两种:while和for语句。while语句的格式如下所示:
四、python中面向对象编程实战
上述内容帮助大家了解了python在语法层面的基础知识,接下来为大家分享python中面向对象编程实战。面向对象编程一般区别于面向过程,其更适合于中大型的项目的开发。
认识类和对象
面向对象编程主要是通过“类”和“对象”实现的。举例而言,具体的某个人就是“对象”,小明是一个对象,小张也是一个对象,而将“对象”共有的特点抽象出来就能够形成“类”,比如小张和小明都是“人”,那么“人”就是一个“类”,所以“类”就是类型的意思。只不过面向对象的类是自定义的。“类”是抽象出来的,“对象”则是具体的。
如果想要建立一个类则可以使用class字段进行声明:
如下示例代码,建立了一个名为cl1的类,类中的内容是“pass”,就是一个占位符,不会起到任何作用,但如果没有pass则会出现缩进错误。
而将类实例化成为对象可以使用类名后面加括号并直接赋值给一个对象,如a=cl1(),那么a就是cl1这个类的一个对象。
五、练熟基础:项目实战
上面为大家介绍的python知识非常零散,但是也非常重要,既然想要掌握python,就需要使用实际项目进行巩固和提升,当将项目实现之后,对应的能力也就自然掌握了。
上一篇: 详解node中创建服务进程
下一篇: python与中文的那点事