文件操作
with
with open("文件名",mode=打开模式,encoding = "utf-8") as f:
打开模式
r rb r+
w wb w+
w
以写的方式打开,如果文件不存在则创建,如果存在那么先覆盖再写
a ab a+
a
以附加的方式打开,如果文件则报错,如果存在那么再文件末尾进行附加
命令
seek
指定光标移动到指定位置
seek(0,n)
seek(0,0) 移动到文件头部
seek(0,2) 将光标移动到文件尾部
read
read()将文件从头到尾读下来,返回字符串
readlines
以列表的形式,将每一行作为列表的一个元素,返回列表
深浅拷贝
赋值
用=等于号给一个变量赋值,会得到一个新的变量,<br>但是将一个复杂类型(比如列表)的变量赋值给另一个变量,那么修改其中一个变量,另一个变量也会变
注意: a = [1,2,3]<br> b = a<br> a = "hello"<br> b还是[1,2,3]
浅拷贝
如果是可变数据类型,只会复制一层,如果是更深层,那么一个修改深层元素,另一个也会改,他们公用一个深层地址
注意: a = [1,2,["a"]]<br> b = a<br> a[-1] = "hello"<br> b还是[1,2,["a"]]
深拷贝
将复制的者全部开辟一块新的空间,然后把被复制的内容放进来,这样无论改几层元素,另一方不会受到影响
基础数据类型
整型
定义: 仅仅由数字组成且不带单引号,双引号等。用0-9任意组合的数字表示
关键字: int
用法: 可以使用算术运算符进行运算
类型转换
转成字符串:a = 1 a = str(a)
注意: 0不表示空,可以表示假,其他非0的数字表示为真,负数也是整型<br> 整型是<b><i>不可变,可hash,不可切片,不可迭代</i></b>的数据类型
布尔型
定义: 判断一个逻辑的对错的结果就是布尔类型中的真和假,其中True表示真,False表示假
关键字: bool
用法: 往往通过bool值来控制循环的流程
注意: 比较两个数字的大小结果也为bool类型<br> None也可以表示假<br> 波尔类型是<b><i>不可变,可hash,不可切片,不可迭代</i></b>的数据类型
比如空字符,空列表,空字典等<br>都能在if语句中表示假<br>非空字典则表示真<br>Eg: if "a": <br> if []:
字符串
定义: 用单引号引起来的总是表示为字符串
关键字: str
用法: 字符串可以进行加法运算,表示字符串的拼接<br> 字符串和数字相乘表示字符串的就是字符串重复叠加在拼接
方法: <font color="#ffffff"> </font>,<b><i><font color="#662c90">swapcase</font>,</i></b>replace,capitalize,upper,lower,strip,split,title,count,find,index,startwith,isdigit等<br>
转换类型
转成数值
a = '1234' a = int(a)
转成列表:
a = 'abc' a = list(a)
['a', 'b', 'c']
<p><b><i><font color="#662c90">a = 'abc' a= a.split()</font></i></b></p>
['abc']
转成集合: a = "abc" a = set(a)
转成元祖: a = "abc" a = tuple(a)
注意: 字符串是最常见的数据类型<br> 字符串可以通过下标和切片来取值<br> 字符串<b style="font-style: italic;">是不可变,可hash,支持切片,可迭代</b>的数据类型
列表
定义: 用[中括号]把内容包裹起来的数据类型称为列表,通常用在存放单维类型的值,比如姓名名单,成绩单
关键字: list
用法: 列表支持同类型加法,支持和数字的乘法
方法: <i><b><font color="#662c90">append,extend,clear,sort,reverse,copy</font>,</b></i>count,pop,index,remove
转换类型
转成字符串: a = ["a","b"] a = "".join(a)
转成集合: a = ["a","b"] a = set(a)<br>
转成元祖: a = ["a","b"] a = tuple(a)
注意: 列表<b><i>可变,不可hash,支持切片,可迭代</i></b>的数据类型
元组
定义: 用(圆括号)把要存的内容包裹起来的数据类型成为元组,通常存放不经常变动的内容
关键字: tuple
用法: 元祖支持同类型加法,支持和数字的乘法
方法: <b><i>index,count</i></b>
转换类型
转成字符串: a = ("a","b") a= "".join(a)
转成集合: a = ("a","b") a = set(a)<br>
转成列表: a = ("abc") a = list(a)
注意: 元祖<b><i>不可变,可hash,支持切片,可迭代</i></b>的数据类型<br> (1)表示数字1 ,("a")表示字符串<br><b><i> (1,) 、("a",) 、 ()、 (,) 这四个都可以表示元祖</i></b>
集合
定义: 用{大括号}把要存的内容包裹起来的数据类型成为集组,通常想要获取不重复的值,可以使用集合
关键字: set
用法: 集合不支持加法和乘法,天然去重,<b><i>并且无序</i></b>
方法: add ,pop,remove,updae
运算
并集: |
交集: &
差集: -
对称差集: ^
注意: {}无法表示集合,这表示一个空字典<br> 想要初始化一个空集合a = set()
字典
定义: 用{大括号}要要存放的<i style="font-weight: bold;">键值对 </i>依次放入字典中,通常用来存放多维类型的值.通过字典的键去找值提升了访问速度
关键字: dict
方法: copy,pop,popitem,item,values,keys,<i><b>get,setdefault,update,fromkeys</b></i>
注意: 字典可以转成列表(得到的列表只是字典的键),通过list工厂函数,但是其他类型不可以转成字典
NoneType
定义: 用None关键字表示
变量
命名规范
变量只能由数字字母下划线表示<br>变量开头字符不能是数字<br>变量大小写敏感<br>变量要具体可描述性<br>变量不要使用关键字命名<br>变量推荐写法:下划线表示
运算符
赋值运算符
=, +=,-=,*=,/=,**=,%=
比较运算符
> ,< , >= ,<= , != , ==
内置函数
len
len()可以求得可变数据类型的总成员个数
isinstance
isinstance(变量,类型) 可以判断对象是否是相关类型
print
print(内容) 可以将内容打印到屏幕上
format
a = "zhangsan"
print(f"name:{a}")
print("name:{}".format(a))
print("name:%s"%(a))
iter
iter(可迭代对象) 可以将可迭代对象变成迭代器
locals/globals
查看局部/全局的变量内容
逻辑结构
for
for 条件
当满足for条件时,程序进入循环体,当在循环过程中无法满足for条件,那么正常退出
for<br>else
当程序没有进入for循环,或者进入for循环并且没有通过break方式退出循环体的情况下,进入else中
while
while 条件
当while条件为真,那么会进入循环体,当循环过程中不再满足while条件,则正常退出while
while <br>else
当程序没有进入for循环,或者进入for循环并且没有通过break方式退出循环体的情况下,进入else中
continue
在循环体中遇到continue,那么终止当前循环,跳到下一次循环
break
在循环体中遇到break,那么终止循环,跳出循环体
if
if 条件<br>elif 条件
if和elif只能执行一个
if 嵌套<br>if 条件<br> if 条件<br>
if 条件<br>else
else表示上述所有条件均不满足,则会进入else当中
字符集
ASCII
总共能256个元素,包含键盘上128个字符和128无法通过键盘表示的字符,所以中文无法显示
python2的默认编码集
unicode
收录了全世界所有国家的语言,每个字符都统一用一致的2个或者4个字节来存储
utf-8
为了提高Unicode存储和传输性能,产生了UTF-8,它是Unicode的一种实现形式,英文:1个字节, 汉字:3个字节
gbk
兼容gb2312,包含了所有中文,存储一个汉字只需要2个字节