1.python基础
\n和\t都是转义字符,用于表示特殊的控制字符。
1.\n - 换行符:\n用于表示换行符,当它出现在字符串中时,会将光标移动到下一行的开头位置。例如:
print("Hello\nWorld")
输出结果:
Hello
World
2.\t - 制表符:\t用于表示制表符,当它出现在字符串中时,会在当前位置插入一个水平制表符(Tab键的效果)。例如:
print("Name:\tJohn")
输出结果:
Name: John
常用值类型:
任何类型都可以转成字符串
字符串内必须有数字才可以转换成数字
浮点数转换成整数会丢失小数部分
算数运算:
字符串格式化:
%表示:占位
s表示: 将变量变成字符串放入占位的地方
数据类型占位符:
格式符号 | 转化 |
%s | 将内容转换成字符串,放入占位位置 |
%d | 将内容转换成整数,放入占位位置 |
%f | 将内容转换成浮点型,放入占位位置 |
example:
字符串格式化-数字精度控制
- m,控制宽度,要求是数字(很少使用),设置宽度小于数字自身,不生效
n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例
- %5d:表示将宽度控制为5,如数字11,被设置为5d,就会变成:[空格][空格][空格]11,用三个空格补足宽度
- %5.2f:表示将宽度控制为5,将小数点精度设置为2
小数点和小数部分也算入宽度计算。 如,对11.345设置了%7.2f后,结果是:[空格][空格][空格]11.35。2个空格补足宽度
,小数部分限制2位精度后,四舍五入为.35 - %2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35
函数:
列表修改功能(方法)
- 插入元素:
语法:列表.insert(下标, 元素),在指定的下标位置,插入指定的元素
- 追加元素:
语法:列表.append(元素),将指定元素,追加到列表的尾部
- 追加元素方式2:
语法:列表.extend(其它数据容器),将其它数据容器的内容取出,依次追加到列表尾部
- 删除元素:
语法1: del 列表[下标]
语法2:列表.pop(下标)
- 清空列表内容:
语法:列表.clear()
- 统计某元素在列表内的数量
语法:列表.count(元素) 或 len(列表)
元组相关操作:
元组特点:
- 可以容纳多个数据
- 可以容纳多种不同类型的数据
- 数据是有序存储的
- 允许数据重复
- 不可以修改
- 支持for循环
字符串常用操作
- 字符串替换
语法:字符串.replace(字符串1,字符串2)
功能:将字符串内的全部:字符串1,替换为字符串2
注意:不是修改字符串本身,而是得到了一个新字符串
- 字符串的分割
语法:字符串.split(分隔符字符串)
功能:按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中
注意:字符串本身不变,而是得到了一个列表对象
- 字符串的规整操作(去前后空格)
语法:字符串.strip()
- 字符串的规整操作(去前后指定字符串)
语法:字符串.strip(字符串)
- 统计字符串中某字符串出现的次数
语法:字符串.count(字符串)
- 统计字符串的长度
语法:len(字符串)
字符串的特点:
- 只可以存储字符串
- 长度任意(取决于内存大小)
- 支持下标索引
- 允许重复字符串存在
- 不可以修改(增加或删除元素等)
- 支持for循环
1. 什么是序列?
内容连续、有序,支持下标索引的一类数据容器
2. 哪些数据容器可以视为序列?
列表、元组、字符串
3. 序列如何做切片
- 序列[起始:结束:步长]
- 起始可以省略,省略从头开始
- 结束可以省略,省略到尾结束
- 步长可以省略,省略步长为1(可以为负数,表示倒序执行)
集合常用的操作
- 添加新元素
语法:集合.add(元素)。将指定元素,添加到集合内
结果:集合本身被修改,添加了新元素
- 移除元素
语法:集合.remove(元素)。将指定元素,从集合内删除
结果:集合本身被修改,移除了元素
- 从集合中随机取出元素
语法:集合.pop(),从集合中随机取出一个元素
结果:会得到新集合,元素被移除
- 清空集合
语法: 集合.clear(),清空集合
结果: 集合被清空
- 取出2个集合的差集
语法:集合1.difference(集合2),功能:取出集合1和集合2 的差集
结果:得到一个新集合,集合1和集合2不变
- 2个集合合并
语法:集合1.union(集合2),功能:将集合1和集合2组成一个新集合
结果:得到新的集合,集合1和集合2不变
- 查看集合的元素数量
语法:len(集合)
结果:得到一个整数结果
字典常用操作
- 新增元素
语法:字典[key] = Value
- 更新元素
语法:字典[key] = Value
注意字典的key不可以重复
- 删除字典
语法:字典.pop(key)
结果:获得指定key的value,同时字典被修改,指定key的数据被修改
- 清空字典
语法:字典.clear()
结果:字典被修改,元素被清空
- 计算字典内的全部元素数量
语法:len(字典)
字典特点:
- 可以容纳多个数据
- 可以容纳不同类型的数据
- 每一份数据是KeyValue键值对
- 可以通过Key获取到Value,Key不可重复(重复会覆盖)
- 不支持下标索引
- 可以修改(增加或删除更新元素等)
- 支持for循环,不支持while循环
数据容器特点对比
容器通用功能
2.python进阶
如果一个函数要有多个返回值,该如何写
支持不同类型的数据return
函数参数种类
常用参数使用方式:
- 位置参数
- 关键字参数
- 缺省参数
- 不定长参数
位置参数:调用函数时根据函数定义的参数位置来传递参数
注意:传递的参数和定义的参数的顺序及个数必须一致
关键字参数:
调用函数时通过”键=值“形式传递参数
作用:可以让函数更加清晰、容易使用,同时也清除了参数的顺序需求
缺省参数:
缺省参数也叫默认参数,用于定义函数,为参数提供默认值,调用函数时可不传该默认参数的值
作用:当调用函数时没有传递参数,就会使用默认是用缺省参数对应的值
注意:函数调用时,如果为缺省参数传值则修改默认参数值,否则使用默认值
不定长参数
不定长参数也叫可变参数,用于不确定调用时候会传递多少个参数
作用:当调用参数不确定时,可以使用不定长参数
不定长参数的类型:
位置传递
关键字传递
位置传递:
注意:传进去的所有参数都会args变量收集,它会根据传进去的参数位置合并为一个元组,args是元组类型
关键字传参:
匿名函数
lambda 传入参数: 函数体(一行代码)
文件读写操作
read()方法:
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么表示要读取文件中的所有数据
readlines()方法
readlines把整个文件中的内容进行一次性读取
readline()方法,进行一次读取一行内容
with open语法
🞐 直接调用write,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区
🞐 当调用flush的时候,内容会真正写入文件
🞐 这样做是避免频繁的操作硬盘,导致效率下降(攒一堆,一次性写磁盘)
- 文件如果不存在,使用”w”模式,会创建新文件
- 文件如果存在,使用”w”模式,会将原有内容清空
追加写入操作
注意:
🞐 a模式,文件不存在会创建文件
🞐 a模式,文件存在会在最后,追加写入文件
异常捕获
基本语法:
注:finally表示的是无论是否异常都要执行的代码,例如关闭文件
类的定义及使用
面向对象编程:设计类,基于类创建对象,由对象做具体工作
构造方法
封装
类型注解
多态
多态指的是:多种状态,即完成某个行为时,使用不同的对象会得到不同的状态
进程、线程
现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统。
进程: 就是一个程序,运行在系统之上,那么便称之这个程序为一个运行进程,并分配进程ID方便系统管理。
线程:线程是归属于进程的,一个进程可以开启多个线程,执行不同的工作,是进程的实际工作最小单位。
进程就好比一家公司,是操作系统对程序进行运行管理的单位
线程就好比公司的员工,进程可以有多个线程(员工),是进程实际的工作者
操作系统中可以运行多个进程,即多任务运行
一个进程内可以运行多个线程,即多线程运行
并行执行
并行执行的意思指的是同一时间做不同的工作。
进程之间就是并行执行的,操作系统可以同时运行好多程序,这些程序都是在并行执行。
除了进程外,线程其实也是可以并行执行的。
也就是比如一个Python程序,其实是完全可以做到:
- 一个线程在输出:你好
- 一个线程在输出:Hello
像这样一个程序在同一时间做两件乃至多件不同的事情, 我们就称之为:多线程并行执行
多线程编程
Socket
正则表达式
正则表达式,又称规则表达式(Regular Expression),是使用单个字符串来描述、匹配某个句法规则的字符串,常被用来检索、替换那些符合某个模式(规则)的文本。
Python正则表达式,使用re模块,并基于re模块中三个基础方法来做正则匹配。
分别是:match、search、findall 三个基础方法
- re.match(匹配规则, 被匹配字符串)
从被匹配字符串开头进行匹配, 匹配成功返回匹配对象(包含匹配的信息),匹配不成功返回空。
- search(匹配规则, 被匹配字符串)
搜索整个字符串,找出匹配的。从前向后,找到第一个后,就停止,不会继续向后
- findall(匹配规则, 被匹配字符串)
匹配整个字符串,找出全部匹配项
递归