目录
一、python定义
Python是一种解释型、面向对象的语言,提供给开发人员更为便利的开发环境。Python因为其简单的语法,以及解释性属性,一跃成为当下最热门的开发语言之一。
说到解释型语言,我觉得还是有必要和大家解释一下,解释型语言(JavaScript/python)和编译型语言(C/C++)的区别:
解释型:
解释型语言源代码不会直接翻译成机器码,它会先翻译到中间代码,再通过中间代码去运行,可以这么说,只有在中间代码运行过程中,才会将其翻译成机器码去执行。
优点:
1、只要设备上存在解释器,那么该脚本便可以跨平台执行;
2、修改代码更为方便快捷,代码可读性更高;
缺点:
1、执行速率较慢、效率较低;
2、强依赖解释器,且执行性能上不如编译型语言;
编译型:
在程序运行之前,编译型语言源代码通过编译器直接编译为设备可识别的机器码,在本机上一次编译,多次执行。
优点:
1、存在预编译机制对代码进行优化;
2、一次编译多次执行,执行效率高;(不可跨平台)
缺点:
1、编译后如果出现新需求,导致要修改部分代码,那么我们需要将整个模块的代码重新编译一遍,需要停机维护;
2、编译阶段会直接根据对应环境生成适配的机器码,不同操作系统之间无法跨平台运行;
二、python版本
Python的发明者为Guido van Rossum。
在Python的不断发展中,逐渐将Python分为两个大版本,分别为Python2和Python3,该两个版本并不是完全兼容的。现如今python的最新版本已经达到3.10.6,建议大家用python3版本,相比较python2版本
- python编译原理
Python虽然是一个解释型语言,但实际上我们需认清Python并不是直接从源代码解释成机器可识别的去运行的,它是经过先编译,后解释的过程,具体过程如下:
Python源代码通过Python解释器编译为对应字节码,再通过PVM将其转化为机器指令。
注:
1、不是所有Python代码在运行过程中都会生成字节码文件,Python中只针对被加载的模块生成字节码文件,目的是为了提高重用性。
2、所有源代码都经历“编译---字节码----PVM转化---机器指令”步骤,这个是一致的
四、Python使用场景
Python使用领域主要存在于以下方面:
Web程序开发:Flask、Django
移动App/GUI程序开发:PyQt、Wxpython、Tkinter
网络爬虫:Selenium、Scrapy
数据库编程:SQL Server、MySQL
自动化用例开发:Robot Framework、Scapy、Selenium、Postman、Jmeter、Appium
机器学习方面:NumPy、scikit-learn、TensorFlow
五、python程序设计思想
Python是一种面向对象的脚本语言。设计思想主要有两种——面向过程/面向对象
面向过程就是一种流程化思想设计,比如下象棋,把一局完整的博弈可以拆分成无数个动作去完成,比如跳马,移炮,出将,在跳马这些,最终一整盘可以拆分成无数个动作来完成的,这就是面向过程语言设计。
面向对象是一种结构化设计思路,他将每个步骤封装成了许许多多的功能,再通过不断调用去完成最终实现,还是拿象棋举例子吧,一局完整的博弈,可以划分为许多功能点,比如动马这个操作就封装成一个功能,后面要去跳马的时候就不用再详细写跳马的动作了,直接调用这个功能,并赋予一定的参数就可以完成这个事件。
我们不难看出,面向过程设计方法是针对每一步具体步骤去做书写,二面向对象方法是针对于你所有需要用到的功能进行封装,后期只要调用这些封装好的函数即可,这也是为什么在书写同一个脚本过程中,往往面向过程代码量要比面向对象代码量多,但执行效率却比面向对象脚本要高的原因所在。
面向对象的三个基本特征:封装、继承、多态
封装就是把抽象出来的数据(属性)和对数据的操作(方法)封装在一起;
继承可以定义为不同模块中均需要调用一个公共模块,便可通过继承直接使用;
多态是建立在封装和继承的继承上的,存在方法重载和方法重写两种方式。
六、python交互方式
这里主要做windows下的交互方式
6.1、窗口命令行下发python命令行,打印临时回显
6.2、创建并执行py文件
在D盘新建python命名文件夹,并在文件夹内部创建111.PY文件,执行该文件后打印对应输出
6.3、pycharm IDE执行
七、python编码规范
7.1、代码编码格式
声明编码格式在脚本中是必需的。如果没有生命,后期出现非ASCII编码的字符,Python解释器就会报错,依照国际惯例,文件编码和Python编码格式全部utf-8,需要在Python代码开头加上”# -- coding: utf-8 --”
python代码书写规范中每行最好不超过80字符,Python会将圆括号, 中括号和花括号中的行隐式的连接起来 ,所以文本字符串一行放不下时,可以使用圆括号构造隐式行连接。
7.2、注释
Python中使用 # 进行注释,# 号后面要空一格
具体可区分为行注释,块注释,文档注释,可用 # xxx 和“””xxx“”“来表示。
行注释:
块注释:
7.3、命名规范
模块尽量使用小写命名,首字母保持小写,尽量不要用下划线
import abc_ad
变量名尽量小写, 如有多个单词,用下划线隔开
Cout = 1
常量或者全局变量命名全部大写,如有多个单词,用下划线隔开
MAC_ADD = 0000.0000.0001
函数命名函数名应小写,且在私有函数命名时,应在函数前加一个下划线_
def abc_ds
类命名使用驼峰(CamelCase)命名风格,首字母大写
class AnimalAnd(Farm)
八、python模块导入
在模块导入学习前,首先了解包和模块的区别:
包:
在一个文件夹下同时有 __ init __.py文件和其他.py模块文件时,此文件夹为一个包
模块:
包中的.py文件为对应模块
定义:
模块导入过程,就是一个将新导入模块放置入sys.modules字典中,并根据后期再调用时,直接从字典中查找。
导入一共分两个方向,绝对导入和相对导入:
绝对导入:
可使用import xxx 或from 根节点包名.一级目录包名 import 模块 格式前去调用(切记import后面引用时,不可用import . 或import ..书写方式)
相对导入:
可使用from .import 模块名 格式前去调用
单独导入包:
单独import某个包名称时,不会导入该包中所包含的所有子模块的代码,此时如果仍需调用对应包中的其他模块,则需要在待引入包中的__init__.py文件(由根目录一路检索,都需加上)上加入”from . import 待引入模块名“,即可完成模块导入。