一、Python语言
1.1 基本概念
- Python 是⼀种极少数能兼具简单与功能强⼤的编程语⾔。你将惊异于发现你正在使⽤的这⻔编程语⾔是如此简单,它专注于如何解决问题,⽽⾮拘泥于语法与结构。
- 官方定义:Python是⼀款易于学习且功能强⼤的编程语⾔。它具有⾼效率的数据结构,能够简单⼜有效地实现⾯向对象编程。Python 简洁的语法与动态输⼊之特性,加之其解释性语⾔的本质,使得它成为⼀种在多种领域与绝⼤多数平台都能进⾏脚本编写与应⽤快速开发⼯作的理想语⾔。
- Python 的创造者吉多·范罗苏姆(Guido van Rossum)采⽤ BBC 电视节⽬《蒙提·派森的⻜⾏⻢戏团(Monty Python's Flying Circus,⼀译巨蟒剧团)》的名字来为这⻔编程语⾔命名。
吉多·范罗苏姆.jpg
1.2 解释型和编译型语⾔的区别
根据转换时机的不同,语⾔分成了两⼤类:
- 编译型语言
会在代码执⾏前将代码编译为机器码然后将机器码交由计算机执⾏。
C语言
X(源码)→编译→Y(编译后的机器码)
特点:执行速度快
缺点:跨平台性比较差 - 解释型语⾔
解释型语⾔,不会在执⾏前对代码进⾏编译⽽是在执⾏的同时⼀边执⾏⼀边编译。
Python语言
X(源码)→解释器→解释执行
特点:执行速度快
缺点:跨平台性好
1.3 Python语言的特色
- 简单、易学、且开放、跨平台、可嵌入性、丰富的库。
Eg. pip install XXX
标准库:正则……
第三方库:requests……
1.4 Python的发展及应⽤
-
应用:常规软件开发、科学计算、网络爬虫、数据分析、WEB开发、自动化测试、自动化运维、人工智能。
001.jpg
002.jpg PYTHON之禅
(输⼊import this)
美胜于丑陋(Python以编写优美的代码为⽬标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,⻛格相似)
简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)
复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔胜于紧凑(优美的代码有适当的间隔,不要奢望⼀⾏代码解决问题)
可读性很重要(优美的代码是可读的)
即便假借特例的实⽤性之名,也不可违背这些规则(这些规则⾄⾼⽆上)
不要包容所有错误,除⾮你确定需要这样做(精准地捕获异常,不写except:pass⻛格的代码)
当存在多种可能,不要尝试去猜测⽽是尽量找⼀种,最好是唯⼀⼀种明显的解决⽅案(如果不确定,就⽤穷举法)
虽然这并不容易,因为你不是Python之⽗(这⾥的Dutch是指Guido)
做也许好过不做,但不假思索就动⼿还不如不做(动⼿之前要细思量)
如果你⽆法向⼈描述你的⽅案,那肯定不是⼀个好⽅案;反之亦然(⽅案测评标准)
命名空间是⼀种绝妙的理念,我们应当多加利⽤(倡导与号召)
二、Python的搭建环境
2.1 Python的解释器
- 环境搭建就是安装Python的解释器
-
Python的解释器分类
1、CPython(官⽅我们⽤的就是这个版本) ⽤C语⾔编写的Python解释器
2、PyPy ⽤Python语⾔编写的Python解释器
3、JPython ⽤Java编写的Python解释器
2.2 搭建Python环境
Python官网:https://www.python.org
- Python相当于语言程序,Pycharm是一个解释器,即编程工具。IDLE(Python自带的编程工具)
2.2.1 安装注意事项
1、官网中选择下载没有后缀的版本,并适合自己电脑位数的版本;稳定版本:Python-3.6.5。
2、DOS命令查询是否安装成功:
直接输入:python;
查询Python版本:python-V。
3、解释
2.2.2 安装步骤
1、将指定的安装包下载
2、按照提示勾选内容并安装到指定的文件夹中
3、Python的交互模式解释
(1)Python 3. 6. 5 .... → 版本
(2)Type "help","copyright".....→ 版权声明
(3)>>> → 命令提示符 (在后⾯可以直接输⼊指令)
2.3 pip工具的使用
2.3.1 pip介绍
- 我们都知道python有很多的第三⽅库或者说是模块。这些库针对不同的应⽤,发挥不同的作⽤。我们在实际的项⽬中肯定会⽤到这些模块。那如何将这些模块导⼊到⾃⼰的项⽬中呢?
- Python官⽅的PyPi仓库为我们提供了⼀个统⼀的代码托管仓库,所有的第三⽅库,甚⾄你⾃⼰写的开源模块,都可以发布到这⾥,让全世界的⼈分享下载 。
- Python有两个著名的包管理⼯具easy_install和pip。在python 2中easy_install是默认安装的,⽽pip需要我们⼿动安装。随着Python版本的提⾼,easy_install已经逐渐被淘汰,但是⼀些⽐较⽼的第三⽅库,在现在仍然只能通过easy_install进⾏安装。⽬前,pip已经成为主流的安装⼯具,⾃Python2≥2.7.9或者Python 3.4以后默认都安装有pip。
2.3.2 pip使用
在DOS命令⾏下,输⼊pip,回⻋可以看到帮助说明。
另外输入如下信息可实现不同的功能
pip,查询pip信息
pip –V(或--version),查询版本号
pip list,列出已经安装的库
pip show package,显示所安装包的信息
pip freeze,将已经安装的库列表保存到指定的文件夹
eg.
pip freeze > D:\桌⾯\install.txt
pip install xxx,普通安装
pip unstall xxx,卸载已安装的库
eg.
(1)pip install SomePackage
(2)pip install SomePackage==1.0.5 # 指定版本
(3)pip install 'SomePackage>=1.0.6' # 最⼩版本
pip install robotframework==2.8.7,指定版本的安装
升级指定的包,通过使⽤“==, >=, <=, >, < ”来指定⼀个版本号。
……
2.3.3 使⽤wheel⽂件安装
除了使⽤上⾯的⽅式联⽹进⾏安装外,还可以将安装包也就是wheel格式的⽂件,下载到本地,然后使⽤pip进⾏安装。在PYPI上可下载pillow库的wheel⽂件,后缀名为whl。
网址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
- 可以使⽤pip install pillow-4.2xxxxxxx.whl的⽅式离线进⾏安装
-
安装步骤
安装wheel.jpg
2.3.4 换源安装
⾖瓣 :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
……
eg.
pip install SomePackage -i http://pypi.douban.com/simple
2.4 Python的第⼀个程序
可以在交互模式实现{需要先在指定文件夹编写代码,即可使用DOS命令(交互模式)敲入代码并通过如下方式打开:python a.txt(文件后缀名必须是.txt)或者直接a.py(前提是文档是.py后缀)}
-
可以⽤Python⾃带的IDLE
IDLE测试1.jpg -
可以⽤⾼级开发⼯具如 : PyCharm
PyCharm测试1.jpg
三、PyCharm的安装与配置
3.1 PyCharm的安装
官网地址:https://www.jetbrains.com/pycharm](https://www.jetbrains.com/pycharm
-
安装步骤
下载PyCharm.jpg
3.2 PyCharm的简单配置
主题修改:File--settings--apperance--theme
代码字体修改:File--settings--Editor-Font
关闭更新:File--settings---apperance---System Settings ---Updates --- Automatically check updates for 取消打钩
快捷键修改:File--settings---apperance-- Keymap 选择⾃⼰习惯的快捷键⽅式
⾃动导包:File--settings---apperance--General ---Auto Import打钩
禁止打开上次的⼯程: File--settings---apperance---SystemSettings ---Reopen last project startup
修改新建⽂件的⽂件头:File--settings--Editor---Code Style --- Fileand Code Templates --- Python Script
eg.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : ${DATE} ${TIME}
# @Author : Alan
# @File : ${NAME}.py
# @Software: ${PRODUCT_NAME}修改字体编码:File--settings--Editor---Code Style --- File
Encoding --- Project Encoding