Python基础第一部分
Python简介
Python是一种解释性、面向对象型的语言。具有简洁,面向对象、免费和开源、可移植性和跨平台(Python会被编译成与操作系统相关的二进制代码,然后再解释执行。这种方式和java类似,大大提高了执行速度,也实现了跨平台)等特点,同时Python还有丰富的库和很强的扩展性。
应用范围
Python主要应用于科学计算、人工智能、WEB服务器和大型网站后端、GUI开发(图形用户界面开发)、游戏开发、大数据云计算等领域。
缺点
Python是解释执行语言,性能较低。
版本和兼容性问题
Python主要有两个版本Python2和Python3, 其中Python2已停止更新,Python2和Python3不兼容
Python解释器
CPython(默认,C语言实现的解释器)、Jython(使用Java语言实现的解释器,可直接调用Java类库)、IronPython(.NET平台上使用的解释器)、PyPy(使用Python语言实现的解释器)
Python安装和配置
程序安装时注意选中1和2
打开cmd,通过在命令行中输入python查看python是否安装成功
Python开发环境
集成开发环境IDE,是Integrated Development Environment 的英文缩写。常见的Python开发环境包括IDLE、Pycharm、windIDE、Eclipse、IPython等。
IDLE
IDLE是Python内置的集成开发环境,通过在启动栏输入IDLE来启动。IDLE包括了交互式命令行、编辑器、调试器等基本组件,能够应付大多数简单的应用。在IDLE中按F1可以打开帮助文档。
Python程序格式
缩进
- 逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。
- 语句从新行的第一列开始
- 缩进风格统一
每个缩进层次使用单个制表符或四个空格(IDE会自动将制表符设置成4个空格)
Python用缩进而不是{}表示程序块
大小写
Python区分大小写
行注释
#表示表示行注释
段注释
三个连续的单引号’’‘表示段注释,两个 ‘’’ 之间可以放入段注释
Python程序的构成
Python程序由模块构成。一个模式对应Python源文件,一般后缀名是.py.
模块由语句构成。运行Python程序时,按照模块中语句的顺序依次执行。
语句是Python程序的构造单元,用于创建对象、变量赋值、调用函数、控制语句等。
Python对象
对象的定义
Python中,一切皆对象。每个对象由标识(identify)、类型(type)、值(value)组成。
标识:用于唯一标识对象,通常对应于对象在计算机内存中的地址。使用内置函数id(obj)可返回对象obj的标识。
类型:用于表示对象存储的“数据”的类型。类型可以限制对象的取值范围以及可执行的操作。可以使用type(obj)获得对象的所属类型。
值:表示对象所存储的数据的信息。使用print(obj)可以打印对象的信息
对象的本质就是:一个内存块,拥有特定的值,支持特定类型的相关操作。
对象在内存中的表示
对象“3”在内存中的表示如下图所示
语句a=3的内存赋值过程由下图表示,通过a的地址查找元素3
引用
在Python中,变量就是对象的引用。因为,变量存储的就是对象的地址。变量通过地址引用了对象。
变量与内存
变量位于栈内存,对象位于堆内存。
Python是动态类型语言:变量不需要显示声明类型。根据变量引用的对象,Python解释器自动确认数据类型。
Python是强类型语言:每个对象都有数据类型,只支持该类型数据支持的操作。
标识符
标识符:用于变量、函数、类、模块等的名称。标识符的命名有以下几个规则:
- 区分大小写
- 第一个字符必须是字母、下划线。其后可以是字母、数字、下划线
- 不能使用关键字,比如if,or,while等。
- 尽量不以双下划线开头和结尾
Python标识符命名规则
类型 | 规则 | 规则 |
---|---|---|
模块和包名 | 全小写字母,多个单词之间使用下划线 | math,os,sys |
函数名 | 全小写,多个单词之间使用下划线隔开 | phone,my_name |
类名 | 首字母大写,采用驼峰原则。多个单词时,每个单词第一个字母大写 | MyPhone、MyClass |
常量名 | 全大写,多个单词之间使用下划线隔开 | SPEED、MAX_SPEED |
变量
变量的声明和赋值
变量的声明和赋值采用如下形式:
变量名=表达式
运行过程中,解释器先运行右边的表达式,生成一个代表表达式运算结果的对象;然后,将这个对象地>址赋值给左边的变量。
变量在使用前必须先被初始化(先被赋值)
变量的删除和垃圾回收机制
可以使用del删除变量
del a
如果对象没有变量引用,就会被垃圾回收机制回收。
变量赋值
链式赋值
链式赋值用于同一个对象赋值给多个变量
x=y=123
#等价于
x=123
y=123
系列解包赋值
系列数据赋值给对应相同个数的变量(个数必须保持一致)
a,b,c=4,5,6
#等价于
a=4
b=5
c=6
使用系列解包赋值可以实现变量交换
a,b=4,5
a,b=b,a #交换变量a,b