一、Python初识
1.Python 程序的 文件扩展名 通常都是 .py
2.常见的bug
2.1 NameError:名称错误
2.2 SyntaxError: invalid syntax
语法错误:语法无效
2.3 IndentationError:unexpected indent
缩进错误:不期望出现的缩进
3.执行 Python 程序的三种方式
3.1. 文本模式
• Python代码 保存在文件 中,解释器对文件逐行解释执行
• 在终端中输入解释器名,再输入要执行的文件名。就是编辑好文件后用终端来执行
2. 交互模式
• 直接在终端中运行解释器,而不输入要执行的文件名(文本模式需要加代码文件名)
• 适合于学习/验证 Python 语法或者局部代码
• 代码不能保存,不适合运行太大的程序
• 退出直接输入 exit(),windows还可以按热键 ctrl + z,linux按ctrl + c 退出
3. IDE(集成开发环境)模式—pycharm
•IDE有以下工具:
• 图形用户界面
• 代码编辑器(支持 代码补全/自动缩进)
• 编译器/解释器
• 调试器(断点/单步执行)
• ……
PyCharm适合开发大型项目
一个项目通常会包含 很多源文件
每个 源文件 各司其职,共同完成复杂的业务功能
4.代码注释:
4.1.注释的作用
使用用自己熟悉的语言,在程序中对某些代码进行标注说明,增强程序的可读性
4.2. 单行注释(行注释)
使用’#’,pycharm中使用ctrl + /
4.3.多行注释(块注释)
使用一对 连续的 三个 引号
二、python 基础知识:
1.算数运算符
1.1 常用数学运算符:
加(+)、减(-)、乘( * )、除(/),取整数(//),取余数(%)、幂( ** )
1.2 执行顺序:
和数学中的运算符的优先级一致
先乘除后加减、同级运算从左至右、使用()调整顺序
2.变量
2.1 在 Python 中,每个变量 在使用前都必须赋值,变量 赋值以后 该变量 才会被创建
等号(=)用来给变量赋值
变量 = 值
3.变量的类型:
3.1 数据类型可以分为 数字型 和 非数字型
3.2 数字型变量:
a.整型(int)
b.浮点型(float)
c.布尔型(bool),True时数学运算为1,False时数学运算为0
d.复数型,基本不用,主要用于科学计算
3.3 非数字型变量:
a.字符串,b.列表,c.元组,d.字典
使用 type 函数可以查看一个变量的类型
4. 变量的计算:
4.1 数字型变量 之间可以直接计算
4.2 字符串变量 之间使用 + 拼接字符串
4.3 字符串变量 可以和 整数 使用 * 重复拼接相同的字符串
4.4 数字型变量 和 字符串 之间 不能进行其他计算
5.变量的命名:
5.1 标识符(变量名/函数名):
• 标示符可以由 字母、下划线 和 数字 组成
• 不能以数字开头
• 不能与关键字重名
5.2 关键词:
• 关键字 就是在 Python 内部已经使用的标识符
• 关键字 具有特殊的功能和含义
• 开发者 不允许定义和关键字相同的名字的标示符
5.3 变量的命名规则:
在定义变量时,为了保证代码格式,=的左右应该各保留一个空格
在Python中,如果变量名需要由二个或多个单词组成时,可以按照以下方式命名
每个单词都使用小写字母
单词与单词之间使用 _下划线 连接
驼峰命名法
小驼峰式命名法:第一个单词以小写字母开始,后续单词的首字母大写
大驼峰式命名法:第一个单词以及后面每一个单词的首字母都采用大写字母
6 输入和输出:
6.1 输入:就是 用代码 获取 用户通过 键盘 输入的信息
使用input + print
Input输入的是一个字符串,直接用来计算会报错,要用类型转换函数
6.2 类型转换函数:
Int(x) 将x转换为一个整数,float(x)将转换为一个浮点数
6.3 格式化输出:
语法格式如下,格式化字符串里面有 % 的地方就是对后面的变量进行占位
print("格式化字符串" % 变量1)
如name='data frog'
print("我的名字叫 %s,请多多关照!" % name)
6.4 常用的格式化字符:
%s:字符串
%d:有符号十进制整数,%06d 表示输出的整数显示位数,不足的地方使用 0 补全
%f: 浮点数,%.2f 表示小数点后只显示两位
%%:输出 %
三、条件语句与逻辑语句:
1 条件语句:
1.1 基本语法:
If 要判断的条件:
条件成立时,要做的事;
Else:
条件不成立时,要做的事;
1.2 逻辑运算:
And(和)、or(或者)、not(不是)
2 循环语句:
2.1 程序的三大流程:
顺序 —— 从上向下,顺序执行代码
分支 —— 根据条件判断,决定执行代码的 分支
循环 —— 让 特定代码 重复 执行
2.2 while 循环基本使用:while 循环最常用的应用场景就是 让执行的代码 按照 指定的次数 重复 执行
2.2.1 while语句的基本语法:
定义变量
while 条件(判断 变量是否满足条件):
条件满足时,做的事情1
条件满足时,做的事情2
修改变量(注意,不修改变量会进入死循环)
2.2.2 赋值运算符:
2.2.3 python 中的技术方法:使用程序计数法,即从 0 开始
2.2.4 循环计算:使用 while 语句可以实现循环计算
3 break和continue:循环中使用的关键字
break 某一条件满足时,不再执行循环体中后续重复的代码,并退出循环
continue 某一条件满足时,不再执行本次循环体中后续重复的代码,但进入下一次循环判断
4 转义字符:
四、高级变量类型:
1 列表:
1.1 列表的定义:
List(列表) 是 Python 中使用 最频繁 的数据类型,在其他语言中通常叫做 数组
• 列表专门用于存储 一串 信息
• 列表用 [] 定义,数据 之间使用 , 分隔
• 列表的索引从0开始(索引 就是数据在 列表 中的位置编号,索引 又可以被称为 下标)
2 列表的定义与取值:
2.1 定义:list = [数据1,数据2,数据3]
2.2 取值:使用索引,如print(list[0])—取列表中第一个数,如果超出索引(index)范围,会报错
2.3 列表的常用操作(增删查改)
2.3.1 增加元素
a.列表名.insert(索引,数据):在指定位置插入一个值
b.列表名.append(数据):在末尾追加一个值
c.列表名.extend(列表):将另外一个列表的全部内容追加到末尾
注意使用 append 追加的是将后面的列表作为一个整体追加到最后了,而使用 extend 追加的是将里面的元素依次追加到最后。
2.3.2 删除元素:
a.del 列表名[索引]:删除指定的索引元素,删除后不可恢复,一般使用remove或者pop
b.列表名.remove(数据):直接删除列表里面的值,不需要知道位置,只删除第一个
c.列表名.pop():可指定索引删除,不指定会删除最后一个
2.3.3 修改元素:直接指定索引赋值,就是修改元素内容
列表名[索引] = ‘新元素’
2.3.4 查询元素:
1)列表名[索引]:根据索引获取(查询)值
2)列表名.index(数据):查询给定值的索引,如果查询元素有多个相同值只会返回第一个值出现的记录
3)列表名.count(数据):查询值出现的次数
4)len(列表名):查询列表有多少个元素
5)if 数据 in 列表名:判断元素是否在列表中,用作条件语句中
2.3.5 元素排序:
a.列表名.sort() :
注意数字和字符串不能一起排序,会报错默认是升序排列,降序排序则为list.sort(key = int,reverse = ture),其中key为排序的规则,reverse = ture为降序
五、键字、函数、方法
1. 关键字 是 Python 内置的、具有特殊意义的标识符
import keyword
print(keyword.kwlist)
print(len(keyword.kwlist))
2. 函数 封装了独立功能,可以直接调用
函数名(参数)
3. 方法 和函数类似,同样是封装了独立的功能
方法 需要通过 对象 来调用,表示针对这个 对象 要做的操作,
对象.方法名(参数)
4. 循环遍历
遍历 就是 从头到尾 依次 从 列表 中取出 每一个元素,并执行相同的操作
Python中实现遍历的方式很多,比如while循环、for循环、迭代器等
Python为了提高列表的遍历效率,专门提供 for循环 实现遍历,for 循环其实就是专门用来对高级变量进行循环遍历的(如后面的元组、字典)
六、元祖
1.元组的定义(Tuple)
元组与列表类似一个用( )一个用[ ]定义,不同之处在于元组的元素不能修改
元组 表示多个元素组成的序列
元组 在 Python 开发中,有特定的应用场景
用于存储 一串 信息,数据 之间使用 , 分隔
元组用 () 定义
元组的索引从0开始
索引 就是数据在 元组 中的位置编号
1.1 因为元组具有的不可修改的特性,所以没有 增加、删除、修改 的方法,只有查询功能,但是,如果元组中的元素如果为列表/字典时,则可以修改列表/字典中的元素的值
1.2 元组中 只包含一个元素 时,需要 在元素后面添加逗号,不加就不是元组了
2 元组常用操作:元组的操作和列表一样,只不过只有查询
3 循环遍历
3.1 取值:就是从 元组 中获取存储在指定位置的数据
3.2 遍历:就是 从头到尾 依次 从 元组 中获取数据
4 应用场景
4.1 作为 函数的 参数 和 返回值。 一个函数可以接收 任意多个参数,或者 一次返回多个数据
4.2 格式字符串,格式化字符串后面的 () 本质上就是一个元组
info = ("zhangsan", 18)
info_str="%s 的年龄是 %d" % info
注意从这里可以发现,格式化字符串不依赖于 print 函数,它就是一个带格式化符号的字符串而已
print(info_str)
4.3 让列表不可以被修改,以保护数据安全。
4.4 自动组包的默认类型:组包后是一个元组,可以用来快速交换两个变量的值
5.元组和列表之间的转换
5.1 使用 list 函数可以把元组转换成列表,list(元组)
5.2 使用 tuple 函数可以把列表转换成元组,tuple(列表)
七、字典:
1.字典用 {key:value,...} 定义:
(1)key是索引,vlaue是值,使用‘:’分隔,
(2)键必须是唯一的:如果有多个,后者会覆盖前者,
(3)值 可以取任何数据类型,但 键 只能使用 字符串、数字或 元组
2.字典的常用操作:
2.1 增加元素:字典名[ key ] = value,如果key不存在就是新增,存在就是修改。
2.2删除元素:
2.2.1 del dict [ key ]:如果删除的键不存在,会报错
2.2.2 dict.pop( key ):如果删除的键不存在,会报错
2.2.3 dict.clear()
2.3 修改元素:
2.3.1 dict[key] = value 键值对不存在就是新增,如果存在就是修改
2.3.2 dict.setdefault (key,value) 键不存在,就添加 name1:20,如果存在就不做处理
2.3.3 dict.updat(dict2) 里面写字典,如果键值对存在就修改,不存在就增加
2.4 查询元素:
2.4.1 dict [ key ]:注意不能用值来查询键,键不在会报错。
2.4.2 字典.get ( key , (默认值)): 键不存在会返回后面设置的 默认值,可以根据返回的值来判断有没有获取成功
2.4.3 字典的遍历:字典.keys(),获得所有键;字典.values(),获得所有值;字典.items(),获得所有(键、值)
八、字符串:
1.字符串:在 Python 中可以使用一对双引号"或者一对单引号'定义一个字符串,可以使用 索引 获取一个字符串中 指定位置的字符,索引计数从 0 开始,也可以使用 for 循环遍历 字符串中每一个字符
2.字符串的常用操作:
2.1 判断
2.2 查找和替换
2.3 拆分和连接
2.4 大小写转换
2.5文本对齐
2.6 去除空白字符
九、函数基础:
1.函数的基本使用:
1.1 所谓函数,就是把 具有独立功能的代码块 组织为一个整体,在需要的时候 调用
函数的使用包含两个步骤:
定义函数 —— 在函数中编写代码,实现功能
调用函数 —— 执行编写的代码
1.2 函数的定义:
def 函数名(参数):
函数代码
1.3 函数调用:函数名(参数)
2.函数的返回值:
使用return 关键字可以返回函数的结果
3.局部、全局变量
3.1 局部变量,就是在 函数内部定义的变量。不同的函数,可以定义相同的名字的局部变量,但是各用个的不会产生影响。局部变量的作用域只在函数内部。局部变量的目的是 存储需要临时保存的数据
3.2 全局变量
在函数外边定义的变量叫做 全局变量。全局变量能够在所有的函数中进行访问
3.3 函数内修改全局变量:在函数内部使用'global 变量',即可将变量修改为全局变量
4.函数的参数:
4.1 默认参数:不输入参数时使用默认参数,注意默认参数只能放在最后
4.2 关键字参数:调用函数时,实参可以指定对应的形参,称为 关键字参数
4.3 可变参数:*args
十、模块:
1.模块的基本使用:
• 模块 就好比是 工具包,要想使用这个工具包中的工具,就需要 导入 import 这个模块
• 每一个以扩展名 py 结尾的 Python 源代码文件都是一个 模块
• 在模块中定义的 全局变量 、 函数 都是模块能够提供给外界直接使用的工具
2.模块名也是一个标识符:
• 标示符可以由 字母、下划线 和 数字 组成
• 不能以数字开头
• 不能与关键字重名
十一、类别推导式
- 基本的方式:
A = [x for x in rang(4) ]
B=[(x,y) for x in range(1,4) for y in range(3,5)]
十二、匿名函数:
- 基本语法:lambda [arg1,….]:expression
- Lambda函数能接收任何数量的参数但只能返回一个表达式的值
- 匿名函数不能直接调用print,因为lambda需要一个表达式
十三、文件:
-
文件的打开和关闭:
1.1 使用open打开文件,如:f = open('test.txt', 'w')
1.2 使用close( )关闭文件,如f.close
2.文件的读写:
2.1 写数据:使用write()可以完成向文件写入数据。
2.2 读数据(read)
使用read(num)可以从文件中读取数据,num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
2.3 读数据(readlines):就像read没有参数时一样,readlines可以按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
3.文件和文件的操作:使用os模块
3.1 文件重命令:(os.remane(修改的文件名,新的文件名))
3.2 删除文件:os.remove(待删除的文件名)
3.3 创建文件夹:os.mkdir(文件名)
3.4 获取当前目录:os.getcwd()
3.5 更改目录:os.chidr(‘test’) 跳转到当前路径的test子目录中
3.6 获取目录列表:os.listdir()
3.7 删除文件夹:or.rmdir(文件名)