python(三)语法结构,流程控制,序列的应用

一,语法结构
1,代码缩进
Python 不像其他程序设计语言,(如Java或者C语言)采用大括号“{}”分隔代码块,而是采用代码缩进和冒号“:”区分代码之间的层次。
缩进可以使用空格或者键实现。 其中,使用空格时,通常情况下采用4个空格作为一个所尽量,而使用Tab键时,则采用用一个Tab键作为一个缩进量。通常情况下建议采用空格进行缩进。
在python中,对于类定义、函数定义、流程控制语句、异常处理语句等,行尾的冒号和下一行的缩进表示一个代码块的开始,而缩进结束,则表示一个代码块的结束。
python对代码的缩进要求非常严格,同一个级别的代码块缩进量必须相同。如果不采用合理的代码缩进,将抛出SyntaxError异常。例如,代码中有的缩进量是4个空格,还有的是3个空格,就会出现SyntaxError错误。
同一级别的代码只需要保持对齐就可,对于不同级别的代码进行缩进,这样就能区分开代码执行的逻辑。
python的语法其实总结一下就两条:
第一,一条代码作为一行:比如一个赋值、一个运算、一个请求、一条打印等。
第二,对齐和缩进:同一级别的代码只需要保持对齐就可,对于不同级别的代码进行缩进,这样就能区分开代码执行的逻辑。
2,保留字
保留字是python语言中一些已经被赋予特定意义的单词。开发程序时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。

注:python中所有保留字是区分字母大小写的。例如,if是保留字,但IF就不属于保留字。
3,变量
(1)变量的定义:在python中,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。但是变量的命名并不是任意的,应遵循以下几条规则:
1)变量名只能是字母、数字或下划线的任意组合
2)变量名的第一个字符不能是数字
3)变量名不能使用上述保留字
4)变量名必须是一个有效的标识符
5)慎用小写字母i和大写字母O
6)选择有意义的单词作为变量名
(2)name = "Crystal"(name:变量名;Crystal:变量值)
(3) 变量的调用:
print("my name is ",name)
注:print说明可以同时打印多个数据,打印的不同数据之间要用逗号区分开,逗号前后代表两个参数
(4)变量的赋值:
name = "Crystal"
name2 = name #赋值
print("my name is ",name,name2)
name = "suki"
print(name,name2)
注:在python语言中,使用内置函数type()可以返回变量类型。
在python语言中,使用内置函数id()可以返回变量所指的内存地址。
4,数据类型
(1)数字类型
1)int(整型)
在32位机器上,整数的位数为32位,在64位系统上,整数的位数为64位。
整数:整数类型包括十进制、八进制、十六进制和二进制。
(1)二进制:0 1
(2)八进制:01234567
(3)十进制:0123456789
(4)十六进制:0123456789ABCDEF
二进制:
8 4 2 1(15)
1 1 1 1
1 0 0 1 1 0 0 1 (153)
#每个位置上“1”代表的阿拉伯数字是2
(n-1)次方,n表示位置所在位数。
2)long(长整型)
跟c语言不同,python的长整数没有指定位宽,即:python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。
注意,自从Python2.2 起,如果长数发生溢出,python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果
3)float(浮点型)
浮点数用来处理实数,即带有小数的数字。类似于c语言中的double类型,占8个字节(64位),其中52位表示底,11为表示指数,剩下的一位表示符号。
注:浮点的表示形式是小数,但小数不止包括浮点。
4)complex(复数)--3.x已经取消了,用处不多
复数由实数部分和叙数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。
注:python中存在小数字池:-5~257
(2)布尔类型
该类型主要用来表示真值或假值。真值返回结果为:True或者1,假值返回结果为:False或者0
在python中,所有的对象都可以进行真值测试。其中,只有下面列出的几种情况得到的值为假:
1)False或者None
2)数值中的零,包括0、0.0、虚数0
3)空序列,包括字符串、空元组、空列表、空字典
4)自定义对象的实例,该对象的_bool_方法返回False或者_len_方法返回0
(3)字符串类型
字符串就是连续的字符序列,可以是计算机所能表示的一切字符集合。在python中,字符串属于不可变序列,通常使用单引号' ',双引号" "或者三引号""" """括起来。这位三种引号形式在语义上没有差别,只是在形式上有些差别。其中单引号和双引号的字符序列必须在一行上,而三引号内的字符序列可以分布在连续的多行上。注意,字符串开始和结尾使用的 形式必须保持一致。
字符串拼接:python中的字符串在C语言中体现为是一个字符数组,每次创建字符串的时候需要在内存开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一块空间。
5,常用转义字符说明


6,常用类型转换函数及其作用

7,运算符
(1)算术运算符

(2)赋值运算符

(3)比较(关系)运算符

(4)逻辑运算符

6,基本的输入和输出
(1)使用input()函数输入
(2)使用print()函数输出
二,流程控制
1,知识框架

2,选择语句
(1)最简单的if
if (表达式):
语句1
else:
语句2

注:if语句后面一定要加冒号,不然会出错。
(2)if...else语句
if (表达式):
语句1 #表达式为真(True),则执行语句1
else:
语句2 #表达式为真(False),则执行语句1

注:在使用else语句时,else一定不可以单独使用,它必须和保留字if一起使用。
程序中使用if...else语句时,如果出现if语句多于else语句的情况,那么该else语句将会根据缩进确定该else语句属于哪个if语句,如下例:

(3)if...elif...else语句
if 表达式1:
语句块1
elif 表达式2:
语句块2
elif 表达式3:
语句块3
...
else:
语句块n

注: 第二行代码中的float()函数用于将用户的输入强制转换成浮点型。
3,条件表达式

4,循环语句
(1)while

注:在使用while循环语句时,一定不要忘记添加将循环条件改变为False的代码。


(2) for
for 迭代变量 in 对象:
循环体
1)进行数值循环

注:1)range()函数是python的内置函数,用于生成一系列连续的整数,其语法格式为:range(start,end,step)
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循环后边一定要加冒号,否则会出错
2)遍历字符串

3)循环嵌套
在while循环中套用while循环的格式如下:

在for循环中套用for循环的格式如下:

在while循环中套用for循环的格式如下:

在for循环中套用while循环的格式如下:

5,跳转语句
(1)break语句
break语句可以终止当前的循环,包括while和for在内的所有控制语句。
while 条件表达式1:
执行代码
if条件表达式2:
break
-------------------
for 迭代变量 in 对象:
if 条件表达式:
break
(2)continue 语句
continue 语句的作用没有break强大,它只能终止本次循环而提前进入到下一次循环中
while 条件表达式1:
执行代码
if条件表达式2:
continue
-------------------
for 迭代变量 in 对象:
if 条件表达式:
continue
(3)pass 空语句
pass空语句一般起到占位作用

三,序列
1,知识体系

2,序列的概述
序列是一块用于存放多个值的连续内存空间,并且按一定顺序排列,每一个值(称为元素)都分配一个数字,称为索引或位置,通过该索引可以取出相应的值。
在python中,序列结构主要有列表、元组、集合、字典和字符串,对于这些序列结构有以下几个通用的操作。其中,集合和字典不支持索引、切片、相加和相乘操作。
(1)索引


(2)切片
切片操作是访问序列元素中的另一种方法,它可以访问一定范围内的元素。通过切片操作可以生成一个新的序列。实现切片操作的语法格式如下:
sname[start🔚step]
注:参数说明
sname:表示序列的名称
start:表示切片的开始位置(包括该位置),如果不指定,则默认为0。
end:表示切片的截止位置(不包括该位置),如果不指定,则默认为序列的长度。
step:表示切片的步长,如果省略,则默认为1,当省略该步长时,最后一个冒号也可以省略。
注:如果想要复制整个序列,可以将start和end参数都省略,但是中间的冒号需要保留。例如:names[:]就表示复制整个名称为names的序列。
(3)序列相加
在python中,支持两种相同类型的序列相加操作,即将两个序列进行连接,不会去除重复的元素,使用(+)运算符实现。例如,将两个列表相加,可以使用以下代码:

注:在进行序列相加时,相同类型的序列是指同为列表、元组、集合等,序列中的元素类型可以不同。不能将列表和元组相加,也不能将列表和字符串相加
(4)乘法

(5)检查某个元素是否是序列的成员
在python中,可以使用in关键字检查某个元素是否为序列的成员,即检查某个元素是否包含在某个序列中。语法格式如下:
value in sequence # value表示要检查的元素,sequence表示指定的序列。显示结果为Ture或者False。

(6)计算序列的长度、最大值和最小值
序列的长度:

最大值:

最小值:

(7)python提供的内置函数及其作用

四,列表的使用
1.使用赋值运算符直接创建列表
listname = [element 1,element 2,element 3,...,element n]
2.创建空列表
emptylist = []
3.创建数值列表
list(data),其中,data表示可以转换为列表的数据,其类型可以是range对象、字符串、元组或者其他可迭代类型的数据。使用list()数据不仅能通过range对象创建列表,还可以通过其他对象创建列表。
4.删除列表
del listname
5.访问列表元素(查)
在已知列表元素的状态下:

在未知列表元素的状态下:

6.添加列表元素(增)

7.插入列表元素(增)

8.修改列表元素(改)

9.删除列表元素(删)



10.清空列表(删)

11.统计列表中重复的元素(查)

12.列表扩展

13.排序(特殊符号>数字>大写字母顺序>小写字母顺序)

14.元素翻转

15.现假定一个列表有多个元素,想知道c在哪个位置?-----通过输入”c”这个元素,直接找到c的位置。

16.浅复制(浅 copy:只复制第一层,复制的是内存地址)

17.深复制(深 copy:导入copy模块)

五,元组
元组(tuple)与列表类似,也是由一系列按特定顺序排列的元素组成,但是它是不可变序列。因此,元组也可以称为不可变的列表。在形式上,元组的所有元素都放在一对“()”中,两个相邻元素间使用“,”分隔。在内容上,可以将整数、实数、字符串、列表、元组等任何类型的内容放入到元组中,并且在同一个元组中,元素的类型可以不同,因为它们之间没有任何关系。通常情况下,元组用于保存程序中不可修改的内容。
1.元组的创建和删除
(1)使用赋值运算符直接创建元组
语法格式:tuplename = (element 1,element 2,element 3,...,element n)
(2) 创建空元组
emptytuple = ()
(3)创建数值元组
tuple(data)
(4)删除元组
del tuplename
2.访问元组元素(查)


3.修改元组元素(改)

注:元组不能对单个元素进行修改,在进行元组连接时,连接的内容必须都是元组,不能将元组和字符串或者列表进行连接
4.元组与列表的区别
(1)列表属于可变序列,它的元素可以随时修改或者删除;元组属于不可变序列,其中的元素不可以修改,除非整体替换。
(2)列表可以使用append()、extend()、insert()、remove()和pop()等方法实现添加和修改列表元素,而元组没有这几个方法,所以不能向元组中添加和修改元素。同样,元组也不能删除元素。
(3)列表可以使用切片访问和修改列表中的元素,元组也支持切片,但是它只支持通过切片访问元组中的元素,不支持修改。
(4)元组比列表的访问和处理速度要快,所以当只是需要对其中的元素进行访问,而不进行任何修改时,建议使用元组。
(5)列表不能作为字典的键,而元组可以
六,字典
在python中,字典与列表类似,也是可变序列,不过与列表不同,它是无序的可变序列,保存的内容是以“键-值对”的形式存放的。使用就像字典,通过笔划、字母来查对应页的详细内容。
字典的特征如下:
(1)通过键而不是通过索引来读取,字典有时也称为关联数组或者散列表(hash)。
(2)字典是任意对象的无序组合。
(3)字典是可变的,并且可以任意嵌套。
(4)字典中的键必须唯一。
(5)字典中的键必须不可变。
1.字典的创建和删除
(1)通过映射函数创建字典
dictionary = dict(zip(list1,list2))
dictionary:字典名称
zip()函数:用于将多个列表或元组对应位置的元素组合为元组,并返回包含这些内容的zip对象。如果想获取元组,可以将zip对象使用的tuple()函数转换为元组;如果想获取列表,则可以使用list()函数将其转换为列表

(2)通过给定的“键-值对”创建字典
dictionary=dict(key1=value1,key1=value1,...,keyn=valuen)

在python中,还可以使用dict对象的fromkeys()方法创建值为空的字典。
dictionary=dict.fromkeys(list1)

此外,还可以通过已存在的元组和列表创建字典。

在python中,访问字典的元素可以通过下标的方式实现,与列表和元组不同,这里的下标不是索引号,而是键。

python中推荐的方法是使用字典对象的get()方法获取指定键的值。
dictionary.get(key[,default])

(3)遍历字典
使用字典对象的items()可以获取字典的“键-值对”列表,语法格式如下:
dictionary.items()
其中,dictionary为字典对象;返回值为可遍历的(键-值对)的元组列表。想要获取到具体的“键-值对”,可以通过for循环遍历该元组列表

添加字典元素(增):

修改字典元素(改):

删除字典元素(删):



查找字典元素(查):

判断一个字典里有没有某个元素:

合并字典:

将字典转换成元组(info.item)

七,集合
在python中,提供了两种创建集合的方法:一种是直接使用“{}”创建,另一种是通过set()函数将列表、元组等可迭代对象转换为集合。推荐使用第二种方法。
1.直接使用“{}”创建集合
语法格式如下:
setname = {element1,element2,...,elementn}

注:在创建集合时,如果输入了重复的元素,python会自动只保留一个。
2.使用set()函数创建

3.集合的添加
语法格式:setname.add(element)

4.从集合中删除元素

5.交集


注:交集的符号:&
6.并集


7.差集(在我这里有在你那里没有)


注:差集运算符号:-(减号)
8.子集

9.父集

10.对称差集

11.判断是否无交集

posted @ 2021-10-26 12:22  老僧观天下  阅读(406)  评论(0编辑  收藏  举报