基础
1、定义变量不用标注类型
2、末尾无分号
3、使用type(变量)查看变量类型
4、使用“数据类型(变量名)”转换数据类型
5、“//”取商,“%”取余,“**”求次方
6、定义字符串型变量值用双引号、单引号、三引号都行
7、转义字符“\”可以取消引号效用
8、字符串类型拼接使用“+”,其他类型不能使用“+”
9、字符串格式化:%s、%d、%f
10、快速格式化:f"内容{变量}"(快捷、不能进行精度控制)
11、键盘输入语句input(提示信息),获取到的数据永远是字符串类型
12、在输出时使用“\t”是对齐的作用,“,end=‘’”是不换行的作用
13、变量定义时若不想赋初值,则将None赋值给变量
判断语句(if)
布尔类型、比较运算符
1、布尔类型为True、False,布尔值既可以由定义获得,也可以由比较运算获得
2、比较运算符(>、<、==、!=、>=、<=)
判断语句
1、if语句进行逻辑判断,需要有冒号、没有括号,判断体需要有4个空格缩进
if 2!=1:
print('2和1不相等')
2、if、else配合使用,else也需要使用冒号,里面的语句也需要与else相距4个空格缩进
3、使用if elif else进行多条件判断,三者同级
4、嵌套判断语句:同时满足多个条件才能执行
5、层级间空格缩进是否正确一定要检查好
循环语句
while循环
1、只要满足循环条件就执行循环体,循环条件后有冒号
2、判断的条件仍为布尔类型,直接定义布尔类型或者由比较运算获得
3、确保要有终止条件,避免死循环
4、也可进行循环嵌套,嵌套时,各层有各层的条件设置
5、注意层级(空格)缩进
6、九九乘法表:
for循环
1、一种“轮询”机制,对一批内容进行逐个处理
2、无法自定义循环条件
3、是从被处理的数据集中,依次取出内容进行处理,无法构成死循环
4、语法格式:
for 临时变量 in 待处理数据集(序列)
循环满足条件时执行的代码
5、循环内的语句,同样需要空格缩进
6、待处理数据类型是序列类型
7、range语句(常配合for循环使用):
(1)、range(num1):表示从0开始,到num结束的数字序列,不包含num本身;
(2)、range(num1,num2):表示从num1开始,到num2结束的数字序列,不包含
num2本身;
(3)、range(num1,num2,step):表示从num1开始,到num2结束的数字序列,
不包含 num2本身,以step为步进。
8、九九乘法表:
continue:
跳过本次循环,执行下次循环,只作用于本层循环,不作用于其它层循环。
break:
结束本个循环,执行下一语句,只作用于本层循环,不作用于其它层循环。
for与while的比较
循环控制方面:
1、while可以自定循环条件,并自行控制
2、for不可以自定循环条件,只可以一个个从容器内取出数据
无限循环方面:
1、while可以通过条件控制做到无限循环
2、for理论上不可以无限循环,因为被遍历的容器容量不是无限的
使用场景方面:
1、while适用于任何想要循环的场景
2、for适用于遍历数据容器的场景或简单的固定次数循环场景
函数
基础
1、函数的定义:
def(关键字) 函数名 (形参):
函数体
return 返回值
2、函数的特性:
(1)、已组织好的;
(2)、可重复使用的;
(3)、针对特定功能的。
3、函数使用步骤:先定义,后使用
4、函数参数与返回值不需要用可省略
传参
1、定义函数时在括号内定义形参(可多个)【带参数的函数定义】
2、函数定义时定义多少形参,则在调用函数时需要传递的实参个数应与形参个数相同
返回值
1、(关键字)return 返回值
2、函数的返回值可以通过变量去接收,也可以通过输出语句直接输出
3、函数只要一遇见return语句就预示着函数运行到此就结束了,即写在return语句后的语句就没用了
4、函数不使用返回语句,该函数仍有返回值(即特殊字面量None),类型是<class 'NoneType'>
5、在if判断中,None等同于False
函数说明文档
使用多行注释,对函数进行整体解释
函数的嵌套调用
与函数的调用方法相同,是在一个函数中去调用另外一个函数
变量作用域
1、局部变量:在函数体内定义的变量,只能在函数内使用
2、全局变量:在函数体外定义的变量,在函数内外均可使用
3、全局变量与函数内的局部变量相同时,相当于在函数内定义了一个新的、与全局变量同名的局部变量,与全局变量无关,即在函数内不能不加说明的修改全局变量的值,否则会变成一个与全局变量无关的局部变量
4、若要在局部变量中修改全局变量的值,需要先使用关键字global声明其为全局变量,然后才能进行值的修改;含义是将函数内定义的变量声明为全局变量
数据容器
1、定义:数据容器是一种可以容纳多份数据的数据类型,容纳的每一个数据称之为一个元素。每一个元素,可以是任意的数据,如字符串、数字、布尔等。
2、数据容器分为5类:列表(list)、元组(tuple)、字符串(str)、集合(set)、字典(dict)
列表
基本语法
#字面量:
[元素1,元素2,元素3,……]
#定义变量:
变量名称 = [元素1,元素2,元素3,……]
#定义空列表:
变量名称 = []
变量名称 = list() #关键字:list
注意:列表内的每一个数据称之为元素,以“[]”作为标识,列表内每一个元素用逗号隔开。
列表可进行嵌套列表,即一个列表中的元素可以是另一个列表
列表的下标索引
1、(可正向、可反向)下标索引从0开始到元素数-1结束,与C跟C++的数组下标类似。下标索引可为负值,-1表示倒数第一个、-2表示倒数第二个、……以此类推。
从前向后:编号从0开始递增;从后向前:编号从-1开始递减。
2、对于嵌套列表,利用列表下标索引取内层列表中的一个元素,如取上图的2:my[0][1]
3、利用下标索引取元素时,下标索引数值不要超出列表范围
列表提供的方法
1、查找元素所对应的列表下标索引值:列表.index(元素):![](https://i-blog.csdnimg.cn/blog_migrate/0d08ad7289d3e6b289ab59ebca4c11a0.png)
2、修改特定位置(已知列表下标索引号)的元素值:列表[下标] = 值:![](https://i-blog.csdnimg.cn/blog_migrate/fe2f12370cde9750e644065cbc2a723d.png)
3、在已有列表中插入一个元素:列表.insert(下标,元素),即可在指定的位置插入指定的元素:![](https://i-blog.csdnimg.cn/blog_migrate/95bd58826cca93d27d9dc9507ffc1dd9.png)
4、在已有列表的尾部追加一个元素:列表.append(元素),即可将该元素追加在列表尾部(只能在尾部):![](https://i-blog.csdnimg.cn/blog_migrate/f8fdfc7294af748df6c01518fe9eae02.png)
追加元素方法二:将其它数据容器的内容取出,依次追加到列表尾部。列表.extend(其它数据容量):
5、将列表中的某元素删除:
方法一:使用关键字del然后指定列表下标进行删除,del列表[下标]:
方法二:使用pop的方法传入下表进行删除,列表.pop(下标):
方法三:删除某元素在列表中的第一个匹配项,列表.removve(元素):
6、清空列表的内容,列表.clear():![](https://i-blog.csdnimg.cn/blog_migrate/04a43cf6893df3755502a14f0f9975fd.png)
7、统计某元素在列表里的数量,列表.count(元素):![](https://i-blog.csdnimg.cn/blog_migrate/a24d82503ef16ff5dbfd102f74016c90.png)
8、统计列表内有多少元素,len(列表):![](https://i-blog.csdnimg.cn/blog_migrate/135cbbde1d329b1ce5ef4303543d98fe.png)
列表的遍历
将容器内的元素依次取出、并处理,称之为遍历操作。利用循环的方法。
while循环的遍历:
for循环的遍历:
在遍历中,for循环更简单,while循环更灵活
元组
元组与列表基本相同,唯一不同之处在于元组内的元素不可修改
基本语法
#字面量:
(元素1,元素2,元素3,……)
#定义变量:
变量名称 = (元素1,元素2,元素3,……)
#定义空列表:
变量名称 = ()
变量名称 = tuple() 关键字:tuple
注意
1、元组一经定义就无法修改,以“()”作为标识,元组只有单个元素时,后面要有单独的逗号。元组也可以嵌套,也可以通过下标索引取出猿族内的元素(与列表类似)
2、元组内的嵌套了一个列表时,可以修改列表里面的值,但不能修改整个列表,即定义好的元组不能修改其内的元素
元组提供的方法
1、查找元素所对应的元组下标索引值:元组.index(元素):![](https://i-blog.csdnimg.cn/blog_migrate/b17a6204f6c32b7bda927d77b328040d.png)
2、统计某元素在元组里的数量,元组.count(元素):![](https://i-blog.csdnimg.cn/blog_migrate/b2cf9edd3915b47e5328aadf9bcaf4bb.png)
3、统计元组内有多少元素,len(元组):![](https://i-blog.csdnimg.cn/blog_migrate/f417c2b4b18099d0c13f60b8b227804c.png)
元组的遍历
while循环的遍历:
for循环的遍历:
字符串
基础
字符串是字符的容器,一个字符串可以存放任意数量的字符,字符串也支持下标索引(正、反向)
字符串是一个无法修改的数据容器,如果必须要修改字符串,则只能将其赋值为新的字符串。
注意
字符串作为数据容器只能存储字符串,字符串长度任意,取决于内存大小,支持下标索引,允许重复字符串出现,不可以修改内容,(修改成一个新的字符串变量)
字符串提供的方法
1、查找特定字符串的下标索引值:字符串.index(字符串):
要查找的字符可以加上后面相邻的多个字符以提高查找该字符索引号的准确性
2、字符串的替换:字符串.replace(字符串1,字符串2):![](https://i-blog.csdnimg.cn/blog_migrate/ce375a450023db39ae40817442476e30.png)
是将字符串内的全部字符串1替换为字符串2;原本的字符串内容并没有改变,所以不是修改字符串本身,而是得到一个新的字符串。
3、字符串的分割:字符串.split(分隔符字符串):![](https://i-blog.csdnimg.cn/blog_migrate/db0d973efe9fd7240e7f98742d4ae9d0.png)
![](https://i-blog.csdnimg.cn/blog_migrate/de2fda698bb3a44173f0a30ef4086310.png)
是按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中,字符串本身不变,而是得到了一个列表对象。
4、字符串的规整操作(去前后空格):字符串.strip():![](https://i-blog.csdnimg.cn/blog_migrate/1caac2de0876232fa8ad1884f4c2d772.png)
![](https://i-blog.csdnimg.cn/blog_migrate/4dc8c1fc1a879e75e7b3e847d834087f.png)
附加:(去前后指定字符串)字符串.strip(字符串):
5、统计字符串中某字符串的数量,字符串.count(某字符串):![](https://i-blog.csdnimg.cn/blog_migrate/3181ce7c9cc7906ab130930cfa402f98.png)
6、统计字符串的长度:len(字符串):![](https://i-blog.csdnimg.cn/blog_migrate/3210ac400b2049d901b8289d73d84a52.png)
字符串的遍历
while循环的遍历:
for循环的遍历:
序列
基础
序列指的是内容连续、有序、可使用下标索引的一类数据容器
列表、元组、字符串,均可视为序列
序列的切片:序列[起始下标:结束下标:步长]:![](https://i-blog.csdnimg.cn/blog_migrate/1801f64c078d390f12e14323bcd97b87.png)
切片是从一个序列中取出一个子序列,步长为负则反向取;切片操作不影响序列本身,而是会得到一个新的序列,起始下标、结束下标、步长均可省略,省略后表示从头到尾步长为1。
集合
基本语法
#字面量:
{元素1,元素2,元素3,……}
#定义变量:
变量名称 = {元素1,元素2,元素3,……}
#定义空集合:
变量名称 = set() 关键字:set
注意
集合的特点:
1、可以容纳多个(不同类型的)数据
2、集合内的元素不允许重复
3、元素是无序存储,不支持while循环
4、不支持下标索引
5、允许修改
6、支持for循环
集合提供的方法
1、添加新元素,将指定元素,添加到集合内:集合.add(元素):![](https://i-blog.csdnimg.cn/blog_migrate/8e3e1a2b29b4d7d33485a61232be22ee.png)
2、移除元素,将指定元素从集合内移除:集合.remove(元素):![](https://i-blog.csdnimg.cn/blog_migrate/6362d529056a202b500ad7dfae5cc187.png)
3、取出元素,从集合内随机取出一个元素:集合.pop():![](https://i-blog.csdnimg.cn/blog_migrate/e5dfb8d57a447b2d94401975e256a30d.png)
![](https://i-blog.csdnimg.cn/blog_migrate/505ca0a7f88df14c15d97c3096f7dbaa.png)
一个元素被取出是有返回值的,即需要一个变量去承载;元素被取出后集合内就没有该元素了
4、清空集合,将集合内的元素全部清空:集合.clear():![](https://i-blog.csdnimg.cn/blog_migrate/fbed4fcbc4386db295c8028871855319.png)
5、取出两个集合的差集,取出集合1有而集合2没有的:集合1.difference(集合2):![](https://i-blog.csdnimg.cn/blog_migrate/0aaebe581e97a90228bb7d952373edf5.png)
得到的是一个新集合,集合1跟集合2都没变
6、消除两个集合内的相同元素,在集合1内删除和集合2相同的元素:集合1.difference_update(集合2):![](https://i-blog.csdnimg.cn/blog_migrate/bbfbe06f3e3d8cfaee69000478d9dd4b.png)
![](https://i-blog.csdnimg.cn/blog_migrate/b8dc07973d6cab1f56d62301b638ee02.png)
导致了集合1被修改,集合2不变
7、将两个集合合并为一个新集合:集合1.union(集合2):![](https://i-blog.csdnimg.cn/blog_migrate/2c006c0eec14af2cd8b12245ecade89a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9c2ba4db689804d7de622e72f44d47d8.png)
得到一个新集合,集合1与集合2保持不变
8、统计集合内的元素数量:len(集合):![](https://i-blog.csdnimg.cn/blog_migrate/e980bcf0a66637bebc8a39e644b95344.png)
![](https://i-blog.csdnimg.cn/blog_migrate/f44f1b7dad922534b7c83c69de587ce5.png)
集合的遍历
集合不支持下标索引,所以不能用while循环进行遍历,但能用for循环进行遍历
字典
基本语法
#字面量:
{key: value,key: value,……,key: value}
#定义变量:
变量名称 = {key: value,key: value,……,key: value}
#定义空字典:
变量名称 = {}
变量名称 = dict() 关键字:dict
注意
1、元素内容是一个组合体key与value
2、字典里面元素的key值不能重复
3、用在基于key查找value的使用场景
从字典中利用key值获得value:字典[key]:![](https://i-blog.csdnimg.cn/blog_migrate/a8f7fc64826c7e4fc0e5cdd465f55e34.png)
字典的嵌套
字典的value仍可为一个字典,但key不能是字典
字典提供的方法
1、新增,更新字典的元素:字典[key] = value:![](https://i-blog.csdnimg.cn/blog_migrate/dbf40aa628b3e0c7d675f8d4f4b8df99.png)
字典被修改了,新增了元素;如果key值在字典中存在,则是将key值对应的value进行改变
2、删除字典中的某元素:字典.pop(key):![](https://i-blog.csdnimg.cn/blog_migrate/099e9b1f6b9ac83d8fc7299c219d30de.png)
![](https://i-blog.csdnimg.cn/blog_migrate/9b0d5524b56631614132c093f5098603.png)
3、清空字典:字典.clear():![](https://i-blog.csdnimg.cn/blog_migrate/0889a1531935598f86bd5f17e61d60d4.png)
![](https://i-blog.csdnimg.cn/blog_migrate/bccefd98dd0437f90b71ec9b0121d58a.png)
4、获取字典中全部的key:字典.keys():![](https://i-blog.csdnimg.cn/blog_migrate/f249928aa43e60b269a037363de88ec2.png)
![](https://i-blog.csdnimg.cn/blog_migrate/76229321cdfaaf85e02851f7d7a408c0.png)
5、统计字典内的元素数量:len(字典):![](https://i-blog.csdnimg.cn/blog_migrate/789bd8ddef0ec9847ee53b04f435ad1a.png)
![](https://i-blog.csdnimg.cn/blog_migrate/81f474d5453226a00730a6f971db09f2.png)
元素数量=key值数量=value值数量
字典的遍历
利用·for循环进行key值的遍历:
对字典的全部key或直接对字典进行循环遍历