Python 不像其他程序设计语言,(如Java或者C语言)采用大括号“{}”分隔代码块,而是采用代码缩进和冒号“:”区分代码之间的层次。
缩进可以使用空格或者键实现。 其中,使用空格时,通常情况下采用4个空格作为一个所尽量,而使用Tab键时,则采用用一个Tab键作为一个缩进量。通常情况下建议采用空格进行缩进。
在python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。
python对代码的缩进要求非常严格,同一个级别的代码块缩进量必须相同。如果不采用合理的代码缩进,将抛出SyntaxError异常。例如,代码中有的缩进量是4个空格,还有的是3个空格,就会出现SyntaxError错误。
同一级别的代码只需要保持对齐就可,对于不同级别的代码进行缩进,这样就能区分开代码执行的逻辑。
python的语法其实总结一下就两条:
第一,一条代码作为一行:比如一个赋值、一个运算、一个请求、一条打印等。
第二,对齐和缩进:同一级别的代码只需要保持对齐就可,对于不同级别的代码进行缩进,这样就能区分开代码执行的逻辑。
保留字是python语言中一些已经被赋予特定意义的单词。开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。
注:python中所有保留字是区分字母大小写的。例如,if是保留字,但IF就不属于保留字。
(1)变量的定义:在python中,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。但是变量的命名并不是任意的,应遵循以下几条规则:
1)变量名只能是字母、数字或下划线的任意组合
2)变量名的第一个字符不能是数字
3)变量名不能使用上述保留字
4)变量名必须是一个有效的标识符
5)慎用小写字母i和大写字母O
6)选择有意义的单词作为变量名
注:print说明可以同时打印多个数据,打印的不同数据之间要用逗号区分开,逗号前后代表两个参数
注:在python语言中,使用内置函数type()可以返回变量类型。
在python语言中,使用内置函数id()可以返回变量所指的内存地址。
在32位机器上,整数的位数为32位,在64位系统上,整数的位数为64位。
整数:整数类型包括十进制、八进制、十六进制和二进制。
#每个位置上“1”代表的阿拉伯数字是2(n-1)次方,n表示位置所在位数。
跟c语言不同,python的长整数没有指定位宽,即:python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2 起,如果长数发生溢出,python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果
浮点数用来处理实数,即带有小数的数字。类似于c语言中的double类型,占8个字节(64位),其中52位表示底,11为表示指数,剩下的一位表示符号。
注:浮点的表示形式是小数,但小数不止包括浮点。
复数由实数部分和叙数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
该类型主要用来表示真值或假值。真值返回结果为:True或者1,假值返回结果为:False或者0
在python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种情况得到的值为假:
2)数值中的零,包括0、0.0、虚数0
3)空序列,包括字符串、空元组、空列表、空字典
4)自定义对象的实例,该对象的_bool_方法返回False或者_len_方法返回0
字符串就是连续的字符序列,可以是计算机所能表示的一切字符集合。在python中,字符串属于不可变序列,通常使用单引号' ',双引号" "或者三引号""" """括起来。这位三种引号形式在语义上没有差别,只是在形式上有些差别。其中单引号和双引号的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。注意,字符串开始和结尾使用的 形式必须保持一致。
字符串拼接:python中的字符串在C语言中体现为是一个字符数组,每次创建字符串的时候需要在内存开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一块空间。
6,常用类型转换函数及其作用
(3)比较(关系)运算符
注:if语句后面一定要加冒号,不然会出错。
语句1 #表达式为真(True),则执行语句1
语句2 #表达式为真(False),则执行语句1
注:在使用else语句时,else一定不可以单独使用,它必须和保留字if一起使用。
程序中使用if...else语句时,如果出现if语句多于else语句的情况,那么该else语句将会根据缩进确定该else语句属于哪个if语句,如下例:
注: 第二行代码中的float()函数用于将用户的输入强制转换成浮点型。
注:在使用while循环语句时,一定不要忘记添加将循环条件改变为False的代码。
start:用于指定计数的起始值,可以省略,如果省略,则从0开始。
end:用于指定计数的结束值(但不包括该值,如range(7),则得到的值为0~6,不包括7),不能省略。当range()函数中只有一个参数时,即表示指定计数的结束值。
step:用于指定步长,即两个数之间的间隔,可以省略,如果省略则表示步长为1。例如,range(1,7)将得到1、2、3、4、5、6
在python3.X中,使用print()函数时,若想让print语句输出的内容在一行上显示,需要加上“,end='分隔符'”,并且该分隔符为一个空格,如果在连接输出时不需要用分隔符隔开,也可以不加分隔符。如:
for循环后边一定要加冒号,否则会出错
在while循环中套用while循环的格式如下:
在for循环中套用for循环的格式如下:
在while循环中套用for循环的格式如下:
在for循环中套用while循环的格式如下:
break语句可以终止当前的循环,包括while和for在内的所有控制语句。
continue 语句的作用没有break强大,它只能终止本次循环而提前进入到下一次循环中
pass空语句一般起到占位作用
序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称为索引或位置,通过该索引可以取出相应的值。
在python中,序列结构主要有列表、元组、集合、字典和字符串,对于这些序列结构有以下几个通用的操作。其中,集合和字典不支持索引、切片、相加和相乘操作。
切片操作是访问序列元素中的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:
sname:表示序列的名称
start:表示切片的开始位置(包括该位置),如果不指定,则默认为0。
end:表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。
step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
注:如果想要复制整个序列,可以将start和end参数都省略,但是中间的冒号需要保留。例如:names[:]就表示复制整个名称为names的序列。
在python中,支持两种相同类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用(+)运算符实现。例如,将两个列表相加,可以使用以下代码:
注:在进行序列相加时,相同类型的序列是指同为列表、元组、集合等,序列中的元素类型可以不同。不能将列表和元组相加,也不能将列表和字符串相加
(5)检查某个元素是否是序列的成员
在python中,可以使用in关键字检查某个元素是否为序列的成员,即检查某个元素是否包含在某个序列中。语法格式如下:
(6)计算序列的长度、最大值和最小值
(7)python提供的内置函数及其作用
1.使用赋值运算符直接创建列表
list(data),其中,data表示可以转换为列表的数据,其类型可以是range对象、字符串、元组或者其他可迭代类型的数据。使用list()数据不仅能通过range对象创建列表,还可以通过其他对象创建列表。
5.访问列表元素(查)
在已知列表元素的状态下:
在未知列表元素的状态下:
6.添加列表元素(增)
7.插入列表元素(增)
8.修改列表元素(改)
9.删除列表元素(删)
11.统计列表中重复的元素(查)
13.排序(特殊符号>数字>大写字母顺序>小写字母顺序)
15.现假定一个列表有多个元素,想知道c在哪个位置?-----通过输入”c”这个元素,直接找到c的位置。
16.浅复制(浅 copy:只复制第一层,复制的是内存地址)
元组(tuple)与列表类似,也是由一系列按特定顺序排列的元素组成,但是它是不可变序列。因此,元组也可以称为不可变的列表。在形式上,元组的所有元素都放在一对“()”中,两个相邻元素间使用“,”分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放入到元组中,并且在同一个元组中,元素的类型可以不同,因为它们之间没有任何关系。通常情况下,元组用于保存程序中不可修改的内容。
(1)使用赋值运算符直接创建元组
2.访问元组元素(查)
3.修改元组元素(改)
注:元组不能对单个元素进行修改,在进行元组连接时,连接的内容必须都是元组,不能将元组和字符串或者列表进行连接
(1)列表属于可变序列,它的元素可以随时修改或者删除;元组属于不可变序列,其中的元素不可以修改,除非整体替换。
(2)列表可以使用append()、extend()、insert()、remove()和pop()等方法实现添加和修改列表元素,而元组没有这几个方法,所以不能向元组中添加和修改元素。同样,元组也不能删除元素。
(3)列表可以使用切片访问和修改列表中的元素,元组也支持切片,但是它只支持通过切片访问元组中的元素,不支持修改。
(4)元组比列表的访问和处理速度要快,所以当只是需要对其中的元素进行访问,而不进行任何修改时,建议使用元组。
(5)列表不能作为字典的键,而元组可以
在python中,字典与列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键-值对”的形式存放的。使用就像字典,通过笔划、字母来查对应页的详细内容。
(1)通过键而不是通过索引来读取,字典有时也称为关联数组或者散列表(hash)。
(2)字典是任意对象的无序组合。
(3)字典是可变的,并且可以任意嵌套。
(4)字典中的键必须唯一。
(5)字典中的键必须不可变。
(1)通过映射函数创建字典
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想获取元组,可以将zip对象使用的tuple()函数转换为元组;如果想获取列表,则可以使用list()函数将其转换为列表
(2)通过给定的“键-值对”创建字典
在python中,还可以使用dict对象的fromkeys()方法创建值为空的字典。
此外,还可以通过已存在的元组和列表创建字典。
在python中,访问字典的元素可以通过下标的方式实现,与列表和元组不同,这里的下标不是索引号,而是键。
python中推荐的方法是使用字典对象的get()方法获取指定键的值。
使用字典对象的items()可以获取字典的“键-值对”列表,语法格式如下:
其中,dictionary为字典对象;返回值为可遍历的(键-值对)的元组列表。想要获取到具体的“键-值对”,可以通过for循环遍历该元组列表
判断一个字典里有没有某个元素:
将字典转换成元组(info.item)
在python中,提供了两种创建集合的方法:一种是直接使用“{}”创建,另一种是通过set()函数将列表、元组等可迭代对象转换为集合。推荐使用第二种方法。
1.直接使用“{}”创建集合
注:在创建集合时,如果输入了重复的元素,python会自动只保留一个。
7.差集(在我这里有在你那里没有)
注:差集运算符号:-(减号)