现在 Python 用处很多,学的人也很多,其流行程度自不必说。但是很多人学 Python 的时候都遇到过问题,特别对于非计算机专业毕业的人来说。

现在的教程非常多,但是绝大部分对于初学者都不够友好。很多教程为了求全,把很多不常用、初学者从入门到放弃都不会接触到的内容,一股脑儿全部摆出来,加重了学习的负担;要么是面向有基础的人群,很多地方语焉不详,无法参照一步步去做。当初我在学习的时候就被坑过很多次,所以想写一系列面向初学者,甚至没怎么接触过计算机的读者。希望看教程的人能够一步步的去练习。

不过学习任何技术都应该有一定的认识,虽然 Python 号称简单易学,那都是相对的。学习一门语言,不动手去敲一下,看了也白看。技术好的人,历来就是动手最多的人。

语言的学习并没有太多捷径,需要多练习。希望读者在看本教程时,不要仅仅看,还要多动手去练。

你也许没有很强的逻辑思维、你也许没有足够的数学知识、也许你写不出牛逼的算法,其实这都不重要,重要的是学会如何去使用别人已提供的库中 API(函数或方法)的用途、用法。我觉得语言就像用的各种测试工具一样,我不用去考虑底层的实现,我只要考虑如何去使用。不要给自己学习增加太多的困难,自己学语言到底要干啥?做自动化测试还是写操作系统?

也许有的人会反驳,不了解语言的原理、不了解数据结构、不了解算法、不了解...你的学语言就没有意义。如果真要会这些才算学会语言,我相信有一大半的开发人员都不合格。

有一句话我觉得很对:不求完美,先让事情开始,然后再完善它。

如果一开始追求太过,那么就应了那段经典的话:从入门到放弃。而我觉得绝大部分人可能还没摸到门槛就要放弃了。

其实我写这边教程的目的就是想告诉大家,先学到足够的知识,然后写点有意思的小玩意。让自己的学习能够见到成果,这会极大促进你学习的兴趣。

学习靠的不是毅力,靠毅力的学习都长久不了,因为这个世界有毅力的人本来就少。学习要靠正向的反馈,这些反馈来源于你学习过程中体会到的成就感。你写出一个自动化脚本,看着自动化脚本自动点击、自动输入、自动断言是有成就感的;你写了一个小爬虫,去爬了一个网站上你喜欢的图片,看着你硬盘上一个个图片的生成,这也是有成就感的。这些成就感能给你不断的正向反馈,于是你有一直学下去的动力。在教学过程中,我一直比较推荐去写写网络爬虫,这比较容易得到这种正向的反馈,同时网络爬虫的技术和自动化测试、接口测试有共通的技术点。

而你太过于纠结原理、太过于纠结完美,你会发现你的学习是寸步难行的。

Python学习过程中,就我个人的经验来说,最重要的是字符串、列表和字典的各种处理操作和函数方法等。因为以后很多时候都在处理这些内容,比如写测试脚本过程中你需要从界面上提取断言、需要自己参数化定位语句、需要从数据库中查询数据、需要批量插入数据等众多的操作,都是对这三种数据类型的处理。

也许你不一定能记住所有的函数与方法的具体写法,但是你一定要知道 Python 对某种数据类型提供了哪些函数与方法。这样当你码代码的过程中需要操作某种数据类型时,才有处理的思路,否则就傻了。对于记不住的函数或方法,你可以查阅教程资料,多用自然就记住了。

对于函数和面向对象之类的,先从概念理解。不要妄想一下就理解什么时抽象。这需要一个过程,只有当你代码写多了,你才知道为什么要写函数和写类,因为函数和面向对象就是为了减少代码而生的。但是你写了那么点代码,减了就没了,还谈什么减少。所以暂时不理解也不要过于焦虑,先记住概念。

学习很多时候,需要一个醍醐灌顶的过程。并不是所有的知识点看了、写了就领会了,每个人都有思维的短板,所以对于某些知识点有时候会出现短路的情况,也就是怎么想都理解不到,怎么问也理解不到。那么对于确实不能理解的内容,先记下来,也许你只是缺少一个契机。但如果你不去记,想给你灌顶,但是没东西给你灌啊!

由于第一次写教程,有任何意见和建议,请在评论中指出。谢谢!

Python 极简教程(一)前言的更多相关文章

  1. Python 极简教程(八)字符串 str

    由于字符串过于重要,请认真看完并保证所有代码都至少敲过一遍. 对于字符串,前面在数据类型中已经提到过.但是由于字符串类型太过于常用,Python 中提供了非常多的关于字符串的操作.而我们在实际编码过程 ...

  2. python极简教程04:进程和线程

    测试奇谭,BUG不见. 大家好,我是谭叔. 这一场,主讲python的进程和线程. 目的:掌握初学必须的进程和线程知识. 进程和线程的区别和联系 终于开始加深难度,来到进程和线程的知识点~ 单就这两个 ...

  3. python极简教程01:基础变量

    测试奇谭,BUG不见. 其实很久之前,就有身边的同事或者网友让我分享一些关于python编程语言的教程,他们同大多数自学编程语言的人一样,无外乎遇到以下这些问题: 网络上的资料过多且良莠不全,不知道如 ...

  4. Python 极简教程(三)数据类型

    每种语言都有各种数据类型.这就像在现实生活中,我们计数的时候需要用到数字,在表述金额.重量.距离等需要精确计数时用到小数,在日常交谈中要用文字,等等.在计算机语言中,为了表述不同的情况,也需要用到各种 ...

  5. Python 极简教程(二)编码工具

    Python 的编码工具很多.目前最流行的是 pycharm,关于 pycharm 的安装使用请参考 PyCharm安装使用教程. 而学习过程中,我觉得最好用的,还是 Python 自带的练习工具 I ...

  6. python极简教程05:生成器和匿名函数

    测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...

  7. python极简教程07:封装、多态和继承

    测试奇谭,BUG不见. 这一场主讲python的面向对象部分--封装.多态和继承. 目的:掌握Python面向对象的三个核心概念. 封装 01 什么是封装? 封装的目的是,保护隐私.通俗的讲:不想让别 ...

  8. python极简教程08:对象的方法

    测试奇谭,BUG不见. 讲解之前,我先说说我的教程和网上其他教程的区别: 1 我分享的是我在工作中高频使用的场景,是精华内容: 2 我分享的是学习方法,亦或说,是指明你该学哪些.该重点掌握哪些内容: ...

  9. Python 极简教程(十三)while 循环

    循环简单来说就是让一段代码按你想要的方式多次运行.软件拥有强大的运算能力,就是由循环提供的. 在 Python 中支持的循环由两种:while 循环 和for 循环. 现在我们先来讲while循环. ...

随机推荐

  1. Create an ASP.NET Core web app in Visual Studio Code

    https://www.microsoft.com/net/core#windowscmd https://download.microsoft.com/download/B/9/F/B9F1AF57 ...

  2. 9.java 操作mongodb插入、读取、修改以及删除基础

    1 package mongodb; import java.net.UnknownHostException; import java.util.ArrayList; import java.uti ...

  3. vue.js中compted与model的区别

    在p便签内写的{{reversemessage}}方法,若js里对应的函数为computed则不需要加上括号 若js里对应的函数为model则应该将{{reversemessage}}改为{{reve ...

  4. BZOJ2690: 字符串游戏(平衡树动态维护Dfs序)

    Description 给定N个仅有a~z组成的字符串ai,每个字符串都有一个权值vi,有M次操作,操作分三种: Cv x v':把第x个字符串的权值修改为v' Cs x a':把第x个字符串修改成a ...

  5. zip-tar

    1.zip 制作压缩文件 (1)格式:zip 压缩文件名 文件1 文件2... zip文件不能用cat查看 (2)选项: -r:用来压缩目录 2.unzip 解压缩文件 (1)格式:unzip 压缩文 ...

  6. tac---反转输出文件

    tac命令用于将文件已行为单位的反序输出,即第一行最后显示,最后一行先显示.

  7. php,javascript设置和读取cookie

    1.php设置cookie setcookie($name,$value,expire,path,domain,secrue); //$name:指的是cookie的名字:$value指的是cooki ...

  8. [React] Validate Custom React Component Props with PropTypes

    In this lesson we'll learn about how you can use the prop-types module to validate a custom React co ...

  9. Android设计模式(七)--原型模式

    1.定义: 用原型实例指定创建对象种类,并通过拷贝这些原型创建新的对象. 2.目的: 从一个对象创建另外一个可定制的对象,而不须要知道不论什么创建细节. 3.作用: 3.1.简化对象的创建. 3.2 ...

  10. 【Struts2】Struts2纯手工安装、配置以及Helloworld,以最新版struts 2.3.20 GA做样例

    很多网上的教程对Struts2的配置.安装弄得不明不白,非常多高手以为小白是什么都懂.很多细节上面的地方没有说明清楚,甚至还有在Maven上面解说的,要知道Struts2跟Maven没有半点的关系.全 ...