Python 是一种面向对象的解释型计算机程序设计语言
什么是Python的运行环境
输入&输出
#接收输入信息 username = input("请输入用户名") password = input(“请输入密码”) #打印 print(username) print(password) #print特殊用法 1.一次性可以打印多个数据print("xiaosan","美丽","想要") 2.每次print结束自动换行 3.如果想让print()不换行,应该print(数据,end="")
变量
type(变量):获取变量的数据类型
id(变量):获取变量的地址值
身份运算符
is 概念:判断变量的地址是否相同(如果地址相同内容肯定相同)
语法:a,b两个变量,判断地址是否相同,返回bool值(True,False)
is: a is b == True,地址值一样
is not: a is not b == True,地址值不一样
is:判断变量的地址是否相同
简单数据类型值相同,变量地址就相同,如整型,字符型
复杂数据类型值相同,变量地址不相同,如列表
==:判断值是否相同
六大数据类型
数字、字符串、列表、字典、元组、集合
方法一:
with open('lei.txt','a+') as file_obj:
file_obj.write("234")
with open('lei.txt', 'r') as file_obj1:
content = file_obj1.read()
print(content)
方法二:
with open('lei.txt','a+') as file_obj:
file_obj.write("234")
file_obj.seek(0)
content = file_obj.read()
print(content)
'r'->只读
'w'->只写,文件已存在则清空,不存在则创建。
'a'->追加,写到文件末尾
'b'->二进制模式,比如打开图像、音频、word文件。
'+'->更新(可读可写)
一些人可能会有迷惑,既然带'+'号是可读可写,那'w+'跟'r+'有什么不同。
那就是,
'w+'会清空,会创建 (文件已存在则清空,不存在则创建。)
'r+'不清空,不创建
"a+": 追加读写。与"a"模式类似,但可以读。
pickle模块/json模块
https://www.cnblogs.com/yyds/p/6563608.html
将对象转换为可通过网络传输或可以存储到本地磁盘的数据格式(如:XML、JSON或特定格式的字节串)的过程称为序列化;反之,则称为反序列化。
dumps就是序列化:将Python对象转换成json字符串/
dump就是序列化并保存到一个文件:将Python对象转换成json字符串并存储到文件中
loads就是反序列化:将json字符串转换成Python对象
load就是从一个文件中取出来反序列化:读取指定文件中的json字符串并转换成Python对象
使用pickle很简单,只需导入所需的模块,然后使用dump()保存数据,以后某个时间使用load()恢复数据。处理腌制数据的唯一要求是,必须以二进制访问模式打开这些文件:
import pickle with open("mydata.pickle","wb") as mysavedata: pickle.dump([1,2,"three"],mysavedata) ... with open("mydata.pickle","rb") as myrestoredata: a_list=pickle.load(myrestoredata) print(a_list) import pickle data={'k1':123,'k2':’Hello’} #pickle.dumps 将数据通过特殊的形式转换为只有python语言认识的字符串 p_str=pickle.dumps(data) print(p_str) #pickle.dump将数据通过特殊的形式转换为只有python语言认识的字符串,并写入文件 with open('D:/result.pk','w') as fp: pickle.dump(data,fp)
Json模块也提供了四个功能:dumps、dump、loads、load,用法跟pickle一致
JSON:
优点:跨语言(不同语言间的数据传递可用json交接)、体积小
缺点:只能支持int\str\list\tuple\dict
Pickle:
优点:专为python设计,支持python所有的数据类型
缺点:只能在python中使用,存储数据占空间大
类的继承概念
“__init__”这个构造函数,具有初始化的作用,也就是当该类被实例化的时候就会执行该函数。那么我们就可以把要先初始化的属性放到这个函数里面。
“__del__”就是一个析构函数了,当使用del 删除对象时,会调用他本身的析构函数,另外当对象在某个作用域中调用完毕,在跳出其作用域的同时析构函数也会被调用一次,这样可以用来释放内存空间。
python对数据排序有两种方式
原地排序 sort()
复制排序 sorted()
>>>data=[6,3,1,2,4,5]
>>>data.sort()
>>>data
[1,2,3,4,5,6]
>>>data=[6,3,1,2,4,5]
>>>data2=sorted(data)
>>>data
[6,3,1,2,4,5]
>>>data2
[1,2,3,4,5,6]
默认地,sort()方法和sorted()BIF都会按升序对数据排序。要以降序对数据排序,需要向sort()或者sorted()传入参数
reverse=True,python会负责具体处理。
正则表达式的元字符有. ^ $ * ? { [ ] | ( )
.表示任意字符
[]用来匹配一个指定的字符类别,所谓的字符类别就是你想匹配的一个字符集,对于字符集中的字符可以理解成或的关系。
^ 如果放在字符串的开头,则表示取非的意思。[^5]表示除了5之外的其他字符。而如果^不在字符串的开头,则表示它本身。
具有重复功能的元字符:
* 对于前一个字符重复0到无穷次
+对于前一个字符重复1到无穷次
?对于前一个字符重复0到1次
{m,n} 对于前一个字符重复次数在为m到n次,其中,{0,} = *,{1,} = + , {0,1} = ?
{m} 对于前一个字符重复m次
\d 匹配任何十进制数;它相当于类 [0-9]。
\D 匹配任何非数字字符;它相当于类 [^0-9]。
\s 匹配任何空白字符;它相当于类 [ fv]。
\S 匹配任何非空白字符;它相当于类 [^ fv]。
\w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
\W 匹配任何非字母数字字符;它相当于类 [^a-zA-Z0-9_]。