导航目录
1.Python语言
1) Python语言的基本概念
- Python是一种
面向对象
、动态解释型
、强类型定义
的计算机程序设计语言,由Guido van Rossum于1989年发明
,第一个公开发行版发行于1991年
。Python 的创造者吉多·范罗苏姆(Guido van Rossum)
采用 BBC 电视节目《蒙提·派森的飞行马戏团(Monty Python’s Flying Circus,一译巨蟒剧团)》的名字来为这门编程语言命名
Python是纯粹的自由软件, 源代码和解释器CPython遵循 GPL(GNU General Public License)协议。 - Python的
官方介绍
如下:
Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之其解释性语言的本质,使得它成为一种在多种领域与绝大多数平台都能进行脚本编写与应用快速开发工作的理想语言 - 总的来说,Python 是一种极少数能兼具简单与功能强大的编程语言。你将惊异于发现你正在使用的这门编程语言是如此简单,它专注于如何解决问题,而非拘泥于语法与结构
2)解释型和编译型语言的区别
- 根据转换时机的不同,将语言分成了两大类:
类型 | 原理 | 优点 | 缺点 |
---|---|---|---|
编译型语言 | 通过专门的编译器,将所有源代码一次性转换成特定平台(Windows、Linux 等)执行的机器码(以可执行文件的形式存在)。 | 编译一次后,脱离了编译器也可以运行,并且运行效率高。 | 可移植性差,不够灵活。 |
解释型语言 | 由专门的解释器,根据需要将部分源代码临时转换成特定平台的机器码。 | 跨平台性好,通过不同的解释器,将相同的源代码解释成不同平台下的机器码。 | 一边执行一边转换,效率很低。 |
3)Python 的优点
- 优雅简单
Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常复杂的程序。 - 自由且开放
Python是FLOSS(自由/开放源码软件)之一。简单地说,你可以自由地发布这个软件的拷贝、阅读它的源代码、对它做改动、把它的一部分用于新的自由软件中。Python希望看到一个更加优秀的人创造并经常改进。 - 可移植性(跨平台)
由于它的开源本质,Python可以通过改动被移植在不同平台进行工作。如果我们避免使用依赖于系统的特性,那么所写Python程序无需修改就几乎可以在市场上所有的系统平台上运行 - 可扩展性
如果需要使一段关键代码运行得更快或者希望某些算法不公开,可以把该部分程序代码用C或C++编写,然后在Python程序中使用它们。 - 可嵌入性
可以把Python嵌入C或C++程序,从而向程序用户提供脚本功能。 - 丰富的库
Python标准库确实很庞大。python有可定义的第三方库可以使用。它可以帮助你处理各种工作,包括正则表达式、文档生成、单元测试、线程、数据库、网页浏览器、CGI、FTP、电子邮件、XML、XML-RPC、HTML、WAV文件、密码系统、GUI(图形用户界面)、Tk和其他与系统有关的操作。记住,只要安装了Python,所有这些功能都是可用的。这被称作Python的“功能齐全”理念。除了标准库以外,还有许多其他高质量的库,如wxPython、Twisted和Python图像库等等。 - 规范易学
Python采用强制缩进的方式使得代码具有极佳的可读性,也由此易于初学者学习。
5)Python的缺点
任何编程语言都有优点与缺点,Python也不例外,但是语言会在发展过程中不断改善这些缺点。
-
运行相对较慢
运行速度,有速度要求的话,用C++改写关键部分吧。不过对于用户而言,机器上运行速度是可以忽略的。因为用户根本感觉不出来这种速度的差异。 -
不可加密
优点也会带来缺点,Python的开源性使得Python语言不能加密,但是目前国内市场纯粹靠编写软件卖给客户的越来越少,网站和移动应用不需要给客户源代码,所以这个问题就是问题了。国随着时间的推移,很多国内软件公司,尤其是游戏公司,也开始规模使用他。 -
架构分散
构架选择太多(没有像C#这样的官方.net构架,也没有像ruby由于历史较短,构架开发的相对集中。Ruby on Rails 构架开发中小型web程序天下无敌)。不过这也从另一个侧面说明,python比较优秀,吸引的人才多,项目也多。
6)Python的发展及应用
Python的发展
- 近三年世界编程语言的排行榜如下:
- 18年九月Python第一次进入TiOBE指数前3名
- Python取得了长足的进步,19年百度对Python给予了高度评价:
2019年1月编程语言TOP20
一月头条:Python是Tiobe 2018年的编程语言!
python编程语言荣获“年度编程语言
”称号!python之所以获得这个称号,是因为与其他语言相比,它在2018年获得了最多的排名。Python语言赢得了3.62%,其次是VisualBasic .NET和Java。Python肯定已经成为大型编程语言的一部分。近20年来,C、C++和Java一直排在前3位,远远领先于其他语言。python加入了这三种语言。它是当今大学最常教授的第一语言,在统计领域排名第一,在人工智能编程领域排名第一,在脚本编写方面排名第一,在系统测试方面排名第一。除此之外,python还在Web编程和科学计算方面处于领先地位(只是命名一些其他领域)。总之,python无处不在。
Python的应用
- WEB开发
Python拥有很多免费数据函数库、免费web网页模板系统、以及与web服务器进行交互的库,可以实现web开发,搭建web框架,目前比较有名气的Python web框架为Django。从事该领域应从数据、组件、安全等多领域进行学习,从底层了解其工作原理并可驾驭任何业内主流的Web框架。 - 网络编程
网络编程是Python学习的另一方向,网络编程在生活和开发中无处不在,哪里有通讯就有网络,它可以称为是一切开发的“基石”。对于所有编程开发人员必须要知其然并知其所以然,所以网络部分将从协议、封包、解包等底层进行深入剖析。 - 爬虫开发
在爬虫领域,Python几乎是霸主地位,将网络一切数据作为资源,通过自动化程序进行有针对性的数据采集以及处理。从事该领域应学习爬虫策略、高性能异步IO、分布式爬虫等,并针对Scrapy框架源码进行深入剖析,从而理解其原理并实现自定义爬虫框架。 - 云计算开发
Python是从事云计算工作需要掌握的一门编程语言,目前很火的云计算框架OpenStack就是由Python开发的,如果想要深入学习并进行二次开发,就需要具备Python的技能。 - 人工智能
MASA和Google早期大量使用Python,为Python积累了丰富的科学运算库,当AI时代来临后,Python从众多编程语言中脱颖而出,各种人工智能算法都基于Python编写,尤其PyTorch之后,Python作为AI时代头牌语言的位置基本确定。 - 自动化运维
Python是一门综合性的语言,能满足绝大部分自动化运维需求,前端和后端都可以做,从事该领域,应从设计层面、框架选择、灵活性、扩展性、故障处理、以及如何优化等层面进行学习。 - 金融分析
金融分析包含金融知识和Python相关模块的学习,学习内容囊括Numpy\Pandas\Scipy数据分析模块等,以及常见金融分析策略如“双均线”、“周规则交易”、“羊驼策略”、“Dual Thrust 交易策略”等。 - 科学运算
Python是一门很适合做科学计算的编程语言,97年开始,NASA就大量使用Python进行各种复杂的科学运算,随着NumPy、SciPy、Matplotlib、Enthought librarys等众多程序库的开发,使得Python越来越适合做科学计算、绘制高质量的2D和3D图像。 - 游戏开发
在网络游戏开发中,Python也有很多应用,相比于Lua or C++,Python比Lua有更高阶的抽象能力,可以用更少的代码描述游戏业务逻辑,Python非常适合编写1万行以上的项目,而且能够很好的把网游项目的规模控制在10万行代码以内。 - 桌面软件
Python在图形界面开发上很强大,可以用tkinter/PyQT框架开发各种桌面软件!
行业应用
Python在一些公司和组织的应用
- 豆瓣:公司几乎所有的业务均是通过Python开发的
- 知乎:国内最大的问答社区,通过Python开发(国外Quora)
- 春雨医生:国内知名的在线医疗网站是用Python开发的
- 谷歌:Google App Engine 、code.google.com 、Google earth 、谷歌爬虫、Google广告等项目都在大量使用Python开发
- YouTube:世界上最大的视频网站YouTube就是用Python开发的
- Facebook:大量的基础库均通过Python实现的
- Dropbox:美国最大的在线云存储网站,全部用Python实现,每天网站处理10亿个文件的上传和下载
- Instagram:美国最大的图片分享社交网站,每天超过3千万张照片被分享,全部用python开发
- Redhat:世界上最流行的Linux发行版本中的yum包管理工具就是用python开发的
- CIA:美国中情局网站是用Python开发的
- NASA:美国航天局(NASA)大量使用Python进行数据分析和运算
除了这些,搜狐、金山、腾讯、盛大、网易、百度、阿里、淘宝 、土豆、新浪、果壳等公司都在使用Python完成各种各样的任务。
看到这里你是否明白了为什么Python开发领域流传的那句话:Life is short,you need Python.(人生苦短,我用Python。)
7) Python之禅
(输入 import this)
翻译
:
美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)
当存在多种可能,不要尝试去猜测而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)
虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )
做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)
如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)
命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)
2.搭建环境
1)Python的解释器
- 环境搭建就是安装Python的解释器
- Python的解释器分类:(下载其中一个就行)
1.CPython
(官方推荐我们用的就是这个版本) 用c语言编写的Python解释器
2.PyPy
用Python语言编写的Python解释器
3.JPython
用Java编写的Python解释器
2) 搭建Python环境
- 官网链接
- 下载安装包
- 安装成功测试
打开cmd
输入python
,安装成功则如下图所示
输入python -v
或python --version
可查看Python解释器版本
3) Python的交互模式
4) pip工具的使用
-
pip介绍
我们都知道python有很多的第三方库或者说是模块。这些库针对不同的应用,发挥不同的作用。我们在实际的项目中肯定会用到这些模块。那如何将这些模块导入到自己的项目中呢?
Python官方的PyPi仓库为我们提供了一个统一的代码托管仓库,所有的第三方库,甚至你自己写的开源模块,都可以发布到这里,让全世界的人分享下载 。
python有两个著名的包管理工具easy_install和pip。在python 2中easy_install是默认安装的,而pip需要我们手动安装。随着Python版本的提高,easy_install已经逐渐被淘汰,但是一些比较老的第三方库,在现在仍然只能通过easy_install进行安装。目前,pip已经成为主流的安装工具,自Python 2 >=2.7.9或者Python 3.4以后默认都安装有pip -
pip使用
在命令行下,输入pip,回车可以看到帮助说明:
查看pip版本pip -V pip --version
普通安装
pip install requests
指定版本安装
pip install robotframework\==2.8.7
卸载已安装的库
pip uninstall requests
pip install SomePackage
pip install SomePackage\==1.0.5 # 指定版本
pip install SomePackage>=1.0.6 # 最小版本
升级指定的包,通过使用==, >=, <=, >, < 来指定一个版本号。
列出已经安装的库
pip list
显示所安装包的信息
pip show package
将已经安装的库列表保存到文本文件中
pip freeze > D:\桌面\install.txt
使用wheel文件安装
除了使用上面的方式联网进行安装外,还可以将安装包也就是wheel格式的文件,下载到本地,然后使用pip进行安装。比如我在PYPI上提前下载的pillow库的wheel文件,后缀名为whl
地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
可以使用pip install pillow-4.2xxxxxxx.whl
的方式离线进行安装
• 第一步 安装 wheel
• 第二步 找到下载的whl文件的目录进行安装(以桌面为例)
• 第三步 执行命令安装
如果安装较慢,推荐换源
豆瓣 :http://pypi.douban.com/simple/
阿里 :http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学:http://pypi.mirrors.ustc.edu.cn/simple
清华:https://pypi.tuna.tsinghua.edu.cn/simple
例如:pip install SomePackage -i https://pypi.douban.com/simple
5)Python的第一个程序
- 在交互模式实现
- 用Python自带的idle
- 用高级开发工具如 : PyCharm
3.PyCharm的安装和配置
1)PyCharm的安装
2) PyCharm的简单配置
1、主题修改 File–settings–apperance–theme
2、代码字体修改 File–settings–Editor-Font
3、关闭更新 File–settings—apperance—System Settings —Updates — Automatically check updates for 取消打钩
4、快捷键修改 File–settings—apperance-- Keymap 选择自己习惯的快捷键方式
5、自动导包 File–settings—apperance–General —Auto Import 打钩
6、进制打开上次的工程 File–settings—apperance—System Settings —Reopen last project startup
7、修改新建文件文件头 File–settings–Editor—Code Style — File and Code Templates — Python Script
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : ${DATE} ${TIME}
# @Author : Jerry
# @File : ${NAME}.py
# @Software: ${PRODUCT_NAME}
8、修改字体编码 File–settings–Editor—Code Style — File Encoding — Project Encoding
Python语法
如果你想了解Python有关的语法,请点击下方链接博主带你学习更多。