# python3小白课:python语言简介 ### python的起源 python起源于1989年,由龟叔`Guido van Rossum`发明,是一种解释型、跨平台的语言,使用它是`免费`的。相比其他语言而言,代码简洁简单,应用范围广,在当下十分流行,是一门十分容易入门的编程语言。不管你是什么工作岗位,如果需要学习一门大家比较认可的编程语言的话,python首当其冲受到推荐。 ![图1-1-1 龟叔](assets/1-1-1.jpg) --- ### python版本之谜 目前最新版本是python3以上的版本。目前使用python的用户分为使用python2.7的和使用python3的。为什么会这样呢? 因为在08年的12月,龟叔发布了python3.0的版本,决定不向下兼容python2(因为python首发版本的时间较早,比如早于unicode编码标准的发布时间),在这个抛开过去包袱的层面上对该语言做了一定的改进,对我来说,最大能感受到的变化有两点,一个是print打印输出内容到控制台的一个功能,新的写法跟旧的写法是不一样的,另一个就是编码问题,这对于许多写python代码又涉及中文的朋友感受可能更多一些。在python2中,默认的代码编码是ASCII编码,这样在输出一些中文字符串的时候常常遇到乱码的问题,需要各种解码、编码、转换编码等复杂操作才能不乱码,非常烦人。而python3代码的默认编码为`utf-8`编码,默认就支持了中文,所以在编码这块用python3会省心许多。 还有一些其他的差异,但差异并不算很多,如果你过去学习过python2,那么python3也是很容易上手的。 > [!note] > > python2.7是python2.x系列的最后一个会维护的版本,但官方宣布在2020年停止维护,目前看来,可能是真的要跟我们说再见了。 > > python2.7.18版本是目前python官方说的最后一个python2的版本,发布日期为2020年4月20日。 python2停止更新参考链接:[https://pythoninsider.blogspot.com/2020/04/python-2718-last-release-of-python-2.html](https://pythoninsider.blogspot.com/2020/04/python-2718-last-release-of-python-2.html) ![图1-1-2 python2的最后一个版本官方博客](assets/1-1-2.jpg) --- ### 学习python2还是python3? 其实在发布python3的时候,已经有非常多优秀的代码、三方库等都是用python2写的了,这时候大家的选择很多,而且很多大型公司内部都在用python2来编写一些代码做一些运维工作之类的或者其他(包括现在依然也是)。 我个人也在这个问题上纠结过无数次,那么本套教程的想法是,鉴于目前看到python2已经停止了进一步更新维护,python3才是我们应该考虑的未来。本套教程只着重讲解python3的基础内容,不对python2进行教学,如果你担心你写的代码跟公司的python2项目等不兼容的话,没有关系,我们后面讲解`虚拟环境`的搭建和使用,在不影响现有所有python2项目的基础上,顺利跑起来你写的python3的代码,也不是难事。 因此,我们的课程的所有内容均基于`python3`以上的版本学习,最好是python3.6+的版本。 --- ### python的用途 没有接触过python或者没有接触过编程的同学,一定会问出这个问题,python能做啥?能如何帮到我的工作和生活? 我们可以简单罗列一些: - web开发:也就是写网站,很多知名网站用python来做为主要开发语言,咱们列举几个:豆瓣、知乎、果壳网、Google、NASA、YouTube、Facebook等等。 - 网络爬虫:简单来说就是数据采集,从公开的互联网的数据中抓取所需要的信息下来,可以做后续分析啊什么的。如果你学习过易语言,可以跟易语言post技术相类比,而且在某些方面比易语言要优秀。 - 数据分析:将大数据或普通数据进行分析等,也可以对网络爬虫爬到的数据进行分析,成熟的模块,让有些用其他语言比如matlab、R等的开发者都开始用起了python。 - 人工智能:目前很热门流行的一个词汇,简单来说就是通过一系列数据建立模型对计算机进行训练,让计算机在某个领域达到人一样的智能,甚至超越人类,比如模型预测、图像识别等等一些,属于目前比较前沿的科学领域了。 - 自动化运维:这个在一般的公司的IT部门相当常见,只需要简单的几句代码,就可以实现一些自动化运维的任务,大大节省了人工成本,同时开发难度也并不高。对于个人,一些批量性的任务,也可以自己开发个小程序来实现,从此,妈妈再也不用担心我下班晚啦。 - 其他:常见的比如用户界面编程(这块的话用python写界面的人不算特别多,感兴趣可以深入了解,目前个人觉得易语言写用户界面比较方便)、数据库编程(有大量数据涉及跟数据库交互的,python可以轻松解决)、游戏编程(真的,python还能写个游戏出来),还有其他的一些,咱们就不一一列举了。 总之,python能实现的东西很多,它的社区很活跃,同时,世界各地有许许多多的贡献者,还会编写自己的一些三方库(即一些已经编写好的解决方案命令,你直接调用就可以实现一些功能,不需要你自己会写)上传到python社区当中,而这些,都是`免费下载和使用`的。 ### 单词释义 | 单词 | 释义 | | ------- | ------------------------------------------------------------ | | unicode | 为每种语言中的每个字符设定了统一并且唯一的二进制编码,统一码、万国码、单一码 | | print | 打印,在python中是一个像控制台输出调试内容的命令,可以理解为`调试输出` | | ASCII | 美国信息交换标准代码,共定义了128个字符,当然,没包含汉字 | | utf-8 | 8位元,是针对Unicode的一种可变长度字符编码。目前应用广泛,python3脚本的默认编码,支持中文 | | last | 最后的 | | release | 发行版,发布 |