1. Python语言概述
Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,语言默认后缀为.py。经过多年发展,已经在系统编程、网络爬虫、人工智能、科学计算、系统运维、WEB开发等多个领域广泛应用。在网络爬虫方面,Python的常用框架有grab、scrapy和pyspider等多种网络爬虫框架和爬虫系统,在人工智能方面有TensorFlow、PyTorch等多种开发框架,在科学计算方面有诸如Numpy、Matplotlib、pandas等多项典型数据库。在多个应用领域,Python不免与其他语言有所重叠,在整体代码运行效率上,可能不及C/C++、Java 等语言,但是在语言入门难度上,Python要比其他语言要友好很多,而且随着现在硬件更新换代,除非对代码运行非常苛刻的领域,在大众应用领域,代码运行效率已相差不大。Python也被成为“胶水语言”(glue language),Python提供了丰富的—API和工具,因此编写程序时可以轻松使用C/C++等语言来编写扩充模块,同时Python编译器本身也可以被集成到其他需要脚本语言的程序内。
Python经过发展,现在已经更新到3.7.1版本,需要注意的是,在Python2.x和Python3.x语言已经存在很大差别,而且Python2.7将于2020年1月1日终止支持。
2. Python使用注意事项
Python是解释类语言,而诸如C/C++ 等为编译类语言,这也是Python代码运行效率低的本质原因。基于上述考虑,Python在书写规则上对代码的整洁,特别是缩进规则上要求就较为严格:
if age < 21:
print("这句话在if语句内执行,可看做是if的子语言")
print("这句话与if语句平级")
3. Python学习工具
语言学习,选择一个好的文本编辑器和IDE对今后学习是比较有帮助的。
文本编辑器
Windows自带有notepad(记事本),打开速度很快,但是对代码高亮和函数支持很差,因此不建议使用,当下比较实用的有notepad++、sublime、vscode和atom 等等。
notepad++体积小巧,能够支持多种语言,而且打开速度较快,支持中文,不过插件较少。
sublime界面美观,多种语言支持,而且打开速度很快,比notepad++要强大,有2.0和3.0版本,其中2.0免费,3.0付费,但是根据使用体验,3.0其实偶尔提醒你购买,大家可以网上寻找破解,不过还是建议大家支持正版;另外sublime是个人开发,开发速度比较慢,而且对中文支持不是很友好。
vscode和atom分别是微软和GitHub社区开发,背后都具有庞大的开发群体,因此软件更新速度和插件的丰富度都较前两者要好很多,本人现在正在使用vscode,背靠微软大山,因此文本编辑器具有较浓的微软扁平化的风格,另外vscode可以当做一个小型的IDE,自己假如安装有Python,通过定义Python文件的位置,可以直接在编辑器内进行编译,很方便,不过当插件安装较多时,编辑器打开速度比较慢;atom依据GitHub,个人暂时没有使用过,据网上说,atom比较占内存,因此配置较低不建议使用。
IDE
当下较为著名的IDE有Visual Studio、PyCharm、Juputer、Spyder等,Visual Studio毋庸置疑,宇宙第一IDE,微软开发,现在将要发布19版本,功能强大,之前版本不支持Java,据说在新版本中将会支持,当然,安装文件占据内存也是很大的,所以内存有限的同志请止步;PyCharm相对来说比较小巧,和Java开发IDE中的IntelJ 是一家产品,而且PyCharm对Python支持较好,在当下Python的开发者中比较流行,本人现在使用的就是PyCharm。需要注意,两款IDE都是商业版软件,收费,网上也可以找到破解,不过还是鼓励大家支持正版;Jupyter是当下比较流行的网页开发环境,网上也有相关的插件安装教程,很多程序命令也是基于ipynb格式(jupyter)默认格式,个人使用感觉,还是偏向于前两者,因为Jupyter会是不是出现卡顿等情况,即出现int[*]的情况;Spyder和前面的Jupyter都可以通过安装Anaconda获得,据说比较擅长科学计算,具体功能特点暂时没尝试过,所以在此不进行赘述,个人有兴趣可以自行查找。
个人学习路线
个人喜好不同,可能会选择不同的学习方法,此处介绍下我的学习路程,本人学习同时依靠书籍和视频,书籍比较慢,但是比较系统,而且练习题较多,视频速度快(此处指的是培训视频),但是知识点较碎,不利于知识系统的整体性把握,因此我是先大致过一遍书籍,然后在进一步观看视频,书籍内容基础系统,因此理解难度不大,视频内容难度系数较高,可以在对整体知识有个大致把握之后在进行拔高。无论是书籍还是视频,内容相差不大,因此不必过多取查找。
我使用的书籍是《Python编程:从入门到实践》,网上就可以找到,个人觉得讲的很基础,而且很系统;培训视频大家网上查找,一般也都能在网上找到。
总之,无论差异性多大,最终都应回归到学习->练习->总结->学习的循环中。