Python概述
简介
Python是一种面向对象、动态解释型的编程语言,由Guido van Rossum于1989年发明。Python可以在Windows、UNIX、MAC等多种操作系统上使用,也可以在Java、.NET开发平台上使用。
特点
- Python使用C语言开发,但是Python不再有C语言中的指针等复杂的数据类型。
- Python具有很强的面向对象特性,而且简化了面向对象的实现。它消除了保护类型、抽象类、接口等面向对象的元素。
- Python代码块 使用空格或制表符缩进的方式分隔代码,一般建议使用4个空格分隔代码块。
- Python仅有31个保留字,而且没有分号、begin、end等标记。
- Python是强类型语言,变量创建后会对应一种数据类型,出现在统一表达式中的不同类型的变量需要做类型转换。
- python2与python3是目前主要的两个版本。目前官方推荐的是python3。python3部分语法可能并不兼容Python2。
Python基本要素
注释
- 无论是行注释还是段注释,均以#加一个空格来注释。
- 默认情况下,python文件使用utf-8字符编码,但在中文环境中开发时,最好在源码文件开头添加"#coding=utf-8"语句
- 如下注释用于指定解释器
#! /usr/bin/python
# coding=utf-8
数据类型
- Python提供了几种不同的数据类型,其中数字类型分为整型、长整型、浮点型、布尔型、复数类型,没有像C/Java语言中的字符类型,任何类型都是对象.
- 最常用的两种:int(整型)与str(字符串型)。Python所能表示的整数大小只受限于机器内存,而非固定的字节数。字符串型可以使用双引号或单引号封装,只要头尾使用的符号对称即可。字符串和整数之间可以通过"数据类型(数据)"形式互相转换。如int("123 ")表示将字符串123转换为数字123,注意字符串转换成整数时,字符串前后可以包含任意多个空格(字符串中间不能包含空格),并且被转换的字符串不能包含字母,否则会抛出异常,str(123)则表示将整数123转换成字符串。
- python有3种表示字符串类型的方式,即单引号、双引号、三引号。单引号和双引号的作用是相同的。python程序员更喜欢用单引号,C/Java程序员则习惯使用双引号表示字符串。三引号中可以输入单引号、双引号或换行等字符。
- Python中可以使用[]来读取某段字符串中的单个字符,Python语法中,索引位置默认是从0开始的。
- 如果需要查看变量的类型,可以使用type类,该类可以返回变量的类型或创建一个新的类型。
对象引用
- 在Python中,对于x=‘hello’,操作符"=“负责将等号前面的"对象引用”(x),与等号后在内存中的数据对象(hello)进行绑定,x称之为hello对象的引用,此时x保存的是hello这个数据的内存地址。
- 在Python中,整型与字符串都是固定类型,也就是说一旦创建了对象引用,就不能改变数据对象的值,如果想改变对象引用的值,就必须重新创建数据对象。如想改变x的值,可创建y=‘world’,然后执行x=y,即可让x引用指向’world’数据对象,此时’hello’数据对象没有任何"对象引用"指向它,它将被"垃圾回收程序"自动处理。
组合数据类型
Python提供了元组(tuple),列表(list),字典(dictionary)三种组合数据类型。元组和列表相似,由一组元素组成。可以使用len()函数来度量这些类型的"长度大小"(返回这些对象所包含的字符或元素的个数)Python使用"点"操作符来存取对象的某个属性。同字符串操作一样,可以使用方括号取出列表或元组中的元素值。
- 元组是固定的,创建后就不能改变,元组使用逗号创建,用逗号隔开元组中每个元素内容,将元组也可以包含在一对小括号中,如果小括号中仅包含一个元组元素,那么在这个元素末尾必须添加一个逗号。
- 列表是可变的,在需要的时候,列表可以实现添加append(在尾部追加元素),insert(中间插入)、删除remove和查找操作,列表可以使用方括号来创建,用逗号隔开每个列表元素。
- 字典是由键-值对组成的集合,字典中的值通过键来引用。键和值之间用冒号隔开,键-值对之间用逗号隔开,并且被包含在一对花括号中。
逻辑运算符
- is用于判断其左边的对象引用与其右边的对象引用指向的是否为同一个内存地址,如果是,则返回True,否则返回False
- is not来判断某个对象引用是不是不等于某个对象。
- in用于判断左边成员是否在右边的字符串、列表或元组中。
- not in用于判断左边成员是否不在右边的字符串、列表或元组中。
- 比较操作符与其他编程语言相似,不同的是可以使用结链比较,如判断c是否在1到4的闭区间里,可这样写1<=c<=4,python字符串比较,字符串的每个字母都将转换成Unicode码,python会逐个比较这些Unicode码。不要使用比较操作符去比较不同的数据类型,那样会产生一个TypeError的程序异常。
- Python提供了三个逻辑运算符:and、or和not;不同之处在于and与or,它们返回决定结果的操作数,而非布尔值;如x and y,如果x为True,则返回y,否则返回x;x or y,如果x为True,返回x,否则返回y。
流程控制语句
- if语句中可以有多个可选elif分支,最后的else分支也是可选的。要注意每个if分支后面都有一个:,这是语法规定。python标准规定,每层程序缩进块都使用"4个空格",在编写python的时候,尤其要注意这一点。python本身没有switch语句
- while语句,要注意while后面有一个:,这是语法规定
- for…in语句,要注意in后面有一个:,这是语法规定
#if else格式
if 表达式 :
语句1
else:
语句2
#if elif else格式
if 表达式 :
语句1
elif 表达式 :
语句2
…
elif (表达式) :
语句n
else :
语句m
异常处理语句
try:
可能发生异常的语句
except 抛出的异常:
运算符和表达式
- python不支持自增运算符和自减运算符。例如i++/i-是错误的,但i+=1是可以的。
- 不等于为!=或<>
- 等于用==表示
- python与其他编程语言唯一的区别是对除法的处理,python的除法操作符会产生一个浮点数,而不是整数(就算整除,也会产生一个浮点数),如果需要产生一个整数,需要使用int()函数转换,或使用双斜杠(//)。1/2结果为0.5,int(1/2)或1//2结果为0。