初始Python
本文收录在python从入门到精通系列文章系列
1. python简介
1.1 python的历史
python的创始人为吉多·范罗苏姆(荷兰语:guido van rossum)
- 1989年的圣诞节期间:吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为abc语言的一种继承。之所以选中python作为程序的名字,是因为他是bbc电视剧——蒙提·派森的飞行马戏团的爱好者。
- 1991年2月:第一个python编译器(同时也是解释器)诞生,它是用c语言实现的(后面又出现了java和c#实现的版本jython和ironpython,以及pypy、brython、pyston等其他实现),可以调用c语言的库函数。在最早的版本中,python已经提供了对"类","函数","异常处理"等构造块的支持,同时提供了"列表"和"字典"等核心数据类型,同时支持以模块为基础来构造应用程序。
- 1994年1月:python 1.0正式发布。
- 2000年10月16日:python 2.0发布,增加了实现完整的垃圾回收,提供了对unicode的支持。与此同时,python的整个开发过程更加透明,社区对开发进度的影响逐渐扩大,生态圈开始慢慢形成。
- 2008年12月3日:python 3.0发布,此版不完全兼容之前的python源代码。不过因为目前还有不少公司在项目和运维中使用python 2.x版本,很多新特性后来也被移植到旧的python 2.6/2.7版本。
此处借鉴于python*:https://zh.wikipedia.org/wiki/python
1.2 python的优缺点
- 简单和明确,做一件事只有一种方法。
- 学习曲线低,跟其他很多语言相比,python更容易上手。
- 开放源代码,拥有强大的社区和生态圈。
- 解释型语言,天生具有平台可移植性。
- 支持两种主流的编程范式(面向对象编程和函数式编程)都提供了支持。
- 可扩展性和可嵌入性,可以调用c/c++代码,也可以在c/c++中调用python。
- 代码规范程度高,可读性强,适合有代码洁癖和强迫症的人群。
- 执行效率稍低,因此计算密集型任务可以由c/c++编写。
- 代码无法加密,但是现在很多公司都不销售卖软件而是销售服务,这个问题会被淡化。
- 在开发时可以选择的框架太多(如web框架就有100多个),有选择的地方就有错误。
1.3 python的应用领域
目前python在web应用开发、云基础设施、devops、网络爬虫开发、数据分析挖掘、机器学习等领域都有着广泛的应用,因此也产生了web后端开发、数据接口开发、自动化运维、自动化测试、科学计算和可视化、数据分析、量化交易、机器人开发、图像识别和处理等一系列的职位。
2. 搭建编程环境
2.1 windows环境
可以在python官方网站下载到python的windows安装程序(exe文件),我下载的是版本,需要注意:
- 如果在windows 7环境下安装python 3.x,需要先安装service pack 1补丁包(可以通过一些工具软件自动安装系统补丁的功能来安装);
- 安装过程建议勾选"add python 3.7 to path"(将python 3.6添加到path环境变量)并选择自定义安装;
- 如果系统显示api-ms-win-crt*.dll文件缺失,直接在下载visual c++ redistributable for visual studio 2015文件进行修复;如果是因为更新windows的directx之后导致某些动态链接库文件缺失问题,可以下载一个directx修复工具进行修复。
2.2 linux环境
linux环境自带了python 2.x版本,但是如果要更新到3.x的版本,可以在python的官方网站下载python的源代码并通过源代码构建安装的方式进行安装,具体的步骤如下所示。
(1)安装依赖库(因为没有这些依赖库可能在源代码构件安装时因为缺失底层依赖库而失败)。
[root@python ~]# yum -y install wget gcc zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel wget
(2)下载python源代码并解压缩到指定目录
[root@python ~]# wget https://www.python.org/ftp/python/3.7.3/python-3.7.3.tgz [root@python ~]# tar -xvf python-3.7.3.tgz
(3)切换至python源代码目录并执行下面的命令进行配置和安装
[root@python ~]# cd python-3.7.3/ [root@python python-3.7.3]# ./configure --prefix=/usr/local/python37 --enable-optimizations [root@python python-3.7.3]# make && make install
(4)配置path环境变量并使其生效
[root@python ~]# vim /etc/profile.d/python export path=$path:/usr/local/python37/bin [root@python ~]# source /etc/profile.d/python
2.3 macos环境
macos也自带了python 2.x版本,可以通过python的官方网站提供的安装文件(pkg文件)安装python 3.x的版本。默认安装完成后,可以通过在终端执行python命令来启动2.x版本的python解释器,可以通过执行python3命令来启动3.x版本的python解释器。
3. 从终端运行python程序
3.1 确认python的版本
python --version
(2)或者是在linux或macos系统的终端中键入下面的命令。
python3 --version
(3)当然也可以先输入python或python3进入交互式环境,再执行以下的代码检查python的版本。
[root@python ~]# python3 >>> import sys >>> print(sys.version_info) sys.version_info(major=3, minor=7, micro=3, releaselevel='final', serial=0) >>> print(sys.version) 3.7.3 (default, apr 26 2019, 14:42:46) [gcc 4.8.5 20150623 (red hat 4.8.5-36)]
3.2 编写python源代码
可以用文本编辑工具(推荐使用sublime、textmate、visual studio code等高级文本编辑工具)编写python源代码并用py作为后缀名保存该文件,代码内容如下所示。
print('hello world!')
3.3 运行程序
切换到源代码所在的目录并执行下面的命令,看看屏幕上是否输出了"hello, world!"。
[root@python ~]# python hello.py hello world!
或
[root@python ~]# python3 hello.py hello world!
3.4 代码中的注释
注释是编程语言的一个重要组成部分,用于在源代码中解释代码的作用从而增强程序的可读性和可维护性,当然也可以将源代码中不需要参与运行的代码段通过注释来去掉,这一点在调试程序的时候经常用到。注释在随源代码进入预处理器或编译时会被移除,不会在目标代码中保留也不会影响程序的执行结果。
""" 第一个python程序 - hello, world! 向伟大的dennis m. ritchie先生致敬 version: 0.1 author: 阿龙 """
""" 第一个python程序 - hello, world! 向伟大的dennis m. ritchie先生致敬 version: 0.1 author: 阿龙 """
print('hello, world!') # print("你好,世界!") print('你好', '世界') print('hello', 'world', sep=', ', end='!\n') print('goodbye, world', end='!\n')
(2)执行
[root@python ~]# python3 hello.py hello, world! 你好 世界 hello, world! goodbye, world!
4. 其他工具介绍
4.1 idle - 自带的集成开发工具
idle是安装python环境时自带的集成开发工具,如下图所示。但是由于idle的用户体验并不是那么好所以很少在实际开发中被采用。
4.2 ipython - 更好的交互式编程工具
ipython是一种基于python的交互式解释器。相较于原生的python交互式环境,ipython提供了更为强大的编辑和交互功能。可以通过python的包管理工具pip安装ipython和jupyter,具体的操作如下所示。
pip install ipython
或
pip3 install ipython
注:如果报错,加2个参数
[root@python ~]# pip3 install --trusted-host pypi.org --trusted-host files.pythonhosted.org ipython
原因:当前python版本是3.7,网上查找说是python高版本需要验证ssl
(2)安装成功后,可以通过下面的ipython命令启动ipython,如下图所示。
4.3 jupyter - 网页编程工具
当然,我们也可以通过安装jupyter工具并运行名为notebook的程序在浏览器窗口中进行交互式代码编写操作。
pip install jupyter
或
pip3 intall jupyter
[root@python ~]# jupyter notebook --ip=192.168.200.101 --port=80 --allow-root
注:
4.4 sublime - 文本编辑神器
- 首先可以通过下载安装程序安装sublime 3或sublime 2。
- 安装包管理工具。
- 通过快捷键ctrl+`或者在view菜单中选择show console打开控制台,输入下面的代码。
- sublime 3
import urllib.request,os;pf='package control.sublime-package';ipp=sublime.installed_packages_path();urllib.request.install_opener(urllib.request.build_opener(urllib.request.proxyhandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read())
- sublime 2
import urllib2,os;pf='package control.sublime-package';ipp=sublime.installed_packages_path();os.makedirs(ipp)ifnotos.path.exists(ipp)elsenone;urllib2.install_opener(urllib2.build_opener(urllib2.proxyhandler()));open(os.path.join(ipp,pf),'wb').write(urllib2.urlopen('http://sublime.wbond.net/'+pf.replace(' ','%20')).read());print('please restart sublime text to finish installation')
- sublime 3
- 手动安装浏览器输入 https://sublime.wbond.net/package%20control.sublime-package 下载这个文件,下载好以后,打开sublime text,选择菜单preferences->browse packages... 打开安装目录此时会进入到一个叫做packages的目录下,点击进入上一层目录sublime text3,在此目录下有一个文件夹叫做installed packages,把刚才下载的文件放到这里就可以了。然后重启sublime text3,观察preferences菜单最下边是否有package settings 和package control两个选项,如果有,则代表安装成功了。
- 通过快捷键ctrl+`或者在view菜单中选择show console打开控制台,输入下面的代码。
- 安装插件。通过preference菜单的package control或快捷键ctrl+shift+p打开命令面板,在面板中输入install package就可以找到安装插件的工具,然后再查找需要的插件。我们推荐大家安装以下几个插件:
- sublimecodeintel - 代码自动补全工具插件。
- emmet - 前端开发代码模板插件。
- git - 版本控制工具插件。
- python pep8 autoformat - pep8规范自动格式化插件。
- converttoutf8 - 将本地编码转换为utf-8。
4.5 visual studio code - 轻量级但功能强大的源代码编辑器
- 官网地址:
- 我下载的版本:https://vscode.cdn.azure.cn/stable/0f3794b38477eea13fb47fbe15a42798e6129338/vscodeusersetup-x64-1.36.0.exe
说明:事实上visual studio code可能是更好的选择(我使用的是vs code),它不用花钱并提供了更为完整和强大的功能。
4.6 pycharm - python开发神器
pycharm的安装、配置和使用稍后会编写一篇《玩转pycharm》进行了介绍,有兴趣的读者可以选择阅读。
5. 练习
5.1 在python交互环境中查看下面的代码结果,并试着将这些内容翻译成中文。
import this
说明:当前键入上面的命令后会在交互式环境中看到如下所示的输出,这段内容被称为"python之禅",里面讲述的道理不仅仅适用于python,也适用于其他编程语言。
5.2 学习使用turtle在屏幕上绘制图形。
说明:turtle是python内置的一个非常有趣的模块,特别适用于让小朋友体会什么是编程,它最早是logo语言的一部分,logo语言是wally feurzig和seymour papert在1966发明的编程语言.
import turtle turtle.pensize(4) turtle.pencolor('red') turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.right(90) turtle.forward(100) turtle.mainloop()
结果展示: