Python学习笔记
Python 学习
- 环境: Anaconda + VSC
- # 单行注释, '''code'''多行注释
1. 数据类型
- 字符串
- 字符串中,正向序号从0开始递增,逆向序号从最后一个为-1开始向前递减
- 索引:str[M]返回单个字符
- 切片:str[M:N]返回子串
- 集合:{ , },set()
- 操作符
- |并,-差,&交,^补,<=,<,>=,>(子集与包含)
- 集合处理方法
- S.add(x):如果x不在集合S中,将x增加到S
- S.discard(x):移除S中元素x,如果x不在集合S中,不报错
- S.remove(x):移除S中元素x,如果x不在集合S中,产生KeyError异常
- S.clear():移除S中所有元素
- S.pop():随机返回S中的一个元素,更新S,若S为空产生KeyError异常
- S.copy():返回集合S的一个副本
- len(S):返回集合S的元素个数
- x in S:判断S中元素x,x在集合S中,返回True,否则返回False
- x not in S:判断S中元素x,x不在集合S中,返回True,否则返回False
- set(x):将其他类型变量x转变为集合类型
- for in遍历集合元素时顺序可能不同
- 操作符
- 序列类型(字符串,元组,列表)
- 存在正向递增序号和反向递减序号
- 通用操作符
- x in s
- x not in s
- s + t:连接两序列s和t
- s*n或n*s:将s序列复制n次
- s[i]:索引
- s[i:j]或s[i:j:k]
- 通用函数
- len(s):反回序列s的长度
- min(s):返回序列s的最小元素,s中元素需要可比较
- max(s):返回序列的最大元素,s中元素需要可比较
- s.index(x)或s.index(x, i, j):返回序列s从开始到位置中第一次出现元素x的位置
- s.count(x):返回序列s中出现x的总次数
- 元组:( , ),tuple()
- 创建后不可修改
- 列表:[ , ],list()
- 创建后可以修改
- 两个列表用=进行复制后两个指向同一个内存
- 使用保留字in判断是否在列表中
str[-1] in ['C','c'],返回True或False - Is[i] =x:替换列表1s第i元素为x
- Is[i:j:k] =lt:用列表lt替换s切片后所对应元素子列表
- del Is[i]:删除列表Is中第i元素
- del Is[i:j:k]:删除列表ls中第i到第j以k为步长的元素
- Is += It:更新列表Is,将列表lt元素增加到列表ls中
- Is *= n:更新列表Is ,其元素重复n次
- Is.append(x):在列表1s最后增加一个元素x
- Is.clear():删除列表ls中所有元素
- Is.copy():生成一个新列表,赋值ls中所有元素
- Is.insert(i,x):在列表ls的第i位置增加元素x
- Is.pop(i):将列表ls中第位置元素取出并删除该元素
- Is.remove(x):将列表ls中出现的第一个元素x删除
- ls.reverse():将列表中的元素反转
- sorted()排序
- 字典:{ : , : },dict()
- 空字典类型:{}
- del d[k]:删除字典d中键k对应的数据值
- k in d:判断键k是否在字典d中,如果在返回True,否则False
- d.keys():返回字典d中所有的键信息
- d.values():返回字典d中所有的值信息
- d.items():返回字典d中所有的键值对信息
- d.get(k,
):键存在,则返回相应值,不在则返回 值 - d.pop(k,
):键k存在,则取出相应值,不在则返回 值 - d.popitem():随机从字典d中取出一个键值对,以元组形式返回
- d.clear():删除所有的键值对
- len(d):返回元素个数
2. 语句与函数
-
分支语句:if,elif,else,以:结尾
if 条件 :-
代码样例
if 判断条件 : 执行 elif 判断条件 : 执行 else : 执行同一个程序段(层次)内缩进要一样,且必须有缩进,最好tab,冒号不能丢.
-
二分支结构紧凑形式:<表达式1> if <条件> else <表达式2>(类似于C语言的双目运算符,但顺序不一样)
-
条件判断的操作符(<,<=,>=,>,==,!=,and,or,not)
-
-
循环语句:for,while
-
for i in range(5):>>>循环0到4- range():
- range(N):产生0到N-1的整数序列
- range(M,N):M到N-1
- range():
-
while <条件> : 执行 -
break,continue
-
for和while的else语句(和break有关)
-
-
异常处理:
-
#case1 try: <语句块1> except: <语句块2> #如果语句块1中出现异常就执行语句块2,否则不执行。 #case2 try: <语句块1> except <异常类型>: <语句块2> #如果语句块1中出现指定类型异常就执行语句块2,否则不执行。 #case3 try: <语句块1> except: <语句块2> else: #else对应语句块3在不发生异常时执行 <语句块3> finally: <语句块4> #finally对应语句块4一定执行
-
-
函数
-
#形式 def <函数名>(<参数(0个或多个)>,<可选参数>(如m=1,没给就默认为1)): <函数体> return <返回值> #可变参数(数量不定)例子 def fact(n, *b) : s =1 for i in range(1, n+1): s *=i for item in b: s *= item return s fact(10, 3) >>> 10886400 fact(10, 3, 5, 8) >>> 435456000 -
return可以返回0个或多个返回值
-
lambda函数
-
3. Python程序的输入输出
-
输出
- Python print summary
- 输出语句中的 “ 和 ‘
-
输入
- a=int(input("输入")) 没有强制类型转化的话输入123是字符串类型
-
评估函数eval():将字符串最外层引号去掉(并执行)
eval("1")>> 1eval("1+2")>>3eval("'1+2'")>>'1+2'eval('print("hello")')>>输出hello
4. import用法
- import <库名>
- 调用:<库名>.<函数名>
- from <库名> import <函数名>(from <库名> impert *)
- 调用:<函数名>,但是和自定义函数名重名时麻烦。
- import <库名> as <别名>
- 调用:<别名>.<函数名>
5. 数字类型及操作
- 整数类型
- 十进制
- 二进制:0b或0B开头
- 八进制:0o或0O开头
- 十六进制:0x或0X开头
- 浮点数
- 存在不确定尾数(同C语言):0.1+0.2==0.3返回False,用round()
- 复数
- 操作符:+,-,,/(产生浮点数结果,不同于C语言),//(整除),-y(y的负值),%,**(幂运算,x**2==\(x^2\),x**0.5==\(\sqrt{x}\)),+=,-=,=,/=,//=,%=,**=
- 数值运算函数:
- abs(x),x的绝对值
- divmod(x,y):得到(x//y,x%y)
- pow(x,y[,z]):得到(x**y)%z,[...]表示参数z可省略
- max和min可以有很多个参数
- int(),float(),complex()(变复数)
6. 字符串及其操作
- 三单引号多行字符串
- 索引和切片(上文有提及)
- 字符串切片高级用法使用[M: N: K]根据步长对字符串切片
- <字符串>[M: N],M缺失表示至开头,N缺失表示至结尾"〇一二三四五六七八九十"[:3]结果是"〇一二"
- <字符串>[M: N: K],根据步长K对字符串切片“〇一二三四五六七八九十”[1:8:2]结果是"一三五七","〇一二三四五六七八九十"[::-1]结果是"十九八七六五四三二一〇"
- 字符串切片高级用法使用[M: N: K]根据步长对字符串切片
- 转义符(反斜杠)
- 操作符
- x+y:连接
- n*x或x*n:复制n次x
- x in s:判断x是否为s的子串
- 字符串处理函数
- len(x):x长度
- str(x):转换为字符串(与eval()相反)
- hex(x)与oct(x):整数x的十六进制或八进制小写形式字符串,hex(425)结果为"0x1a9",oct(425)结果为"00651"
- chr(u)与ord(x):u为Unicode编码,返回其对应的字符;x为字符,返回其对应的Unicode编码
- 字符串处理方法
- str.lower()或str.upper():返回字符串的副本,全部字符小写/大写,"AbCdEfGh".lower()结果为"abcdefgh"
- str.split(sep=None):返回一个列表,由str根据sep被分隔的部分组成,"A,B.C".split(",")结果为['A','B','c']
- str.count(sub):返回子串sub在str中出现的次数,"an apple a day",count("a")结果为4
- str.replace(old, new):返回字符串str副本,所有old子串被替换为new,"python".replace("n","n123.10")结果为"python123.io"
- str.center(width[,fillchar]):字符串str根据宽度width居中, fillchar可选,"python".center (20,"=")结果为''=======python=======''
- str.strip(chars):从str中去掉在其左侧和右侧chars中列出的字符,"= python= ".strip(" =np")结果为"ytho"
- strjoin(iter):在iter变量除最后元素外每个元素后增加一个str,",".join("12345")结果为"1,2,3,4,5",主要用于字符串分隔等
- 字符串格式化 .format()
- 槽及其参数
7. 文件
-
打开
-
<变量名> = open(<文件名> , <打开模式>)
-
打开模式
模式 描述 r 只读模式,默认值,如果文件不存在,返回FileNotFoundError w 覆盖写模式,文件不存在则创建,存在则完全覆盖 x 创建写模式,文件不存在则创建,存在则返回FileExistsError a 追加写模式,文件不存在则创建,存在则在文件最后追加内容 b 二进制文件模式 t 文本文件模式,默认值 + 与r/w/x/a-同使用,在原功能基础上增加同时违写功能
-
-
读文件
- a.read(size):读入全部内容,如果给了参数,读入size长度的信息
- a.readline(size):读入一行,如果给出参数,读入该行前size长度
- a.readlines(hint):读入文件所有行,以每行为元素(字符串)形成列表如果给出参数,读入前hint行
-
写文件
- a.write(s):向文件写入一个字符串或字节流
- a.writelines(lines):将一个元素全部为字符串的列表写入文件(直接拼接,没换行)
- a.seek(offset):改变当前文件操作指针的位置,offset含义如下:0-文件开头;1-当前位置;2-文件结尾,
f.seek(0) #回到文件开头
-
csv格式:二维数据存储
-
文件关闭
- <变量名>.close()

浙公网安备 33010602011771号