Python教程

python随笔

本文主要是介绍python随笔,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Python 是一种面向对象解释型计算机程序设计语言

什么是Python的运行环境

  • Python需要Python解释器(软件)
  • PHP需要PHP超文本预编译器(软件)
  • Java需要JVM虚拟机

输入&输出

#接收输入信息
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:判断变量的地址是否相同

简单数据类型值相同,变量地址就相同,如整型,字符型

复杂数据类型值相同,变量地址不相同,如列表

==:判断值是否相同

六大数据类型

数字、字符串、列表、字典、元组、集合

python file write之后无法read的原因和处理办法

方法一:

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_]。

 

这篇关于python随笔的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!