<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[JonyQAQ的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/JonyQAQ</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; JonyQAQ]]></copyright><item><title><![CDATA[python序列化]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289785</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289785</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:54:19 +0800</pubDate><description><![CDATA[什么是序列化对象？
　　我们把对象（变量）从内存中编程可存储或传输的过程称之为序列化，在python中称为pickle，其他语言称之为serialization ,marshalling ,flatterning 等等，都是一个意思。
　　序列化之后，就可以把序列化后的内容写入磁盘，或者通过网络传输到别的机器上（因为硬盘或网络传输时只接受bytes）。
　　反过来，把变量内容从序列化的对象重新读到内存里称之为反序列化，即unpacking。
为什么要序列化？
　　举个例子，你在打游戏过程中，打累了，停下来，]]></description><category></category></item><item><title><![CDATA[三元运算]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289711</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289711</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:50:42 +0800</pubDate><description><![CDATA[三元运算又称三目运算，是对简单的条件语句的简写。
举个例子：简单条件语句      ————&gt;     三元运算
if 条件成立:
    val = 1
else:
    val = 2

val = 1 if 条件成立 else 2


python中的三元运算符不像其他语言，其他的一般都是
判定条件?为真时的结果：为假时的结果
　　如：
result = 5 &gt;3?1:0

而在python中的格式为：
为真时候的结果 if 判定条件  else 为假时的结果&lt;br&gt;resu]]></description><category></category></item><item><title><![CDATA[匿名函数]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289600</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289600</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:48:57 +0800</pubDate><description><![CDATA[匿名函数就是不需要显示式的指定函数名
首先看一行代码：
def calc(x,y):
    return x*y
print(calc(2,3))
 
# 换成匿名函数
 
calc = lambda x,y:x*y
print(calc(2,3))

你也许会说，用上这个东西没感觉有毛方便呀， 。。。。呵呵，如果是这么用，确实没毛线改进，不过匿名函数主要是和其它函数搭配使用的呢，如下
res = map(lambda x:x**2,[1,2,3,4,5])
print(list(res))
# 结果：
]]></description><category></category></item><item><title><![CDATA[系统及目录的操作]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289548</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289548</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:43:59 +0800</pubDate><description><![CDATA[各种系统操作
　　注意：虽然python中提供了各种拼接目录的函数，但是，函数并不能保证字符编码不出问题，很大可能导致程序错误。所以最好还是自己拼接。
python中对文件、文件夹（文件操作函数）的操作需要涉及到os模块和shutil模块。
得到当前工作目录，即当前Python脚本工作的目录路径: os.getcwd()
 
返回指定目录下的所有文件和目录名:os.listdir()
 
函数用来删除一个文件:os.remove()
 
删除多个目录：os.removedirs（r“c：\python”）
]]></description><category></category></item><item><title><![CDATA[文件修改]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289457</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289457</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:42:13 +0800</pubDate><description><![CDATA[硬盘的存储原理就是，当你把文件存到硬盘上，就在硬盘上划了一块空间，存数据，等你下次打开这个文件，会seek到一个位置，每改一个字，就是把原来的覆盖掉，如果要插入，是不可能的，因为后面的数据在硬盘上不会整体向后移动，所以就会出现当前这个情况，你要插入，却变成把旧内容覆盖掉。
　　所以修改文件，就不要在硬盘上修改，把内容全部读到内存里，数据在内存里可以随便增删改查，修改之后，把内容全部写回硬盘，把原来的数据全部覆盖掉。
　　当然了，如果有些文件特别大，比如5G，那么一下吃掉这么大内存，非常浪费资源，所以更好的方]]></description><category></category></item><item><title><![CDATA[重命名和删除文件]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289408</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289408</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:38:59 +0800</pubDate><description><![CDATA[Python的os模块提供了帮你执行文件处理操作的方法，比如重命名和删除文件。
要使用这个模块，你必须先导入它，然后才可以调用相关的各种功能。
rename()方法：
rename()方法需要两个参数，当前的文件名和新文件名。
语法：
os.rename(current_file_name, new_file_name)

例子：
import os
#重命名文件f.txt问哦file.txt
os.rename('f.txt','file.txt')
remove方法

你可以用remove()方法删除文]]></description><category></category></item><item><title><![CDATA[文件定位]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289383</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289383</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:37:40 +0800</pubDate><description><![CDATA[tell()方法告诉你文件内的当前位置, 换句话说，下一次的读写会发生在文件开头这么多字节之后。
seek（offset [,from]）方法改变当前文件的位置。Offset变量表示要移动的字节数。From变量指定开始移动字节的参考位置。
offset – 偏移量，也就是代表需要移动偏移的字节数,注意是按照字节算的，字符编码存每个字符所占的字节长度不一样。
如“好好学习” 用gbk存是2个字节一个字，用utf-8就是3个字节，因此以gbk打开时，seek(4) 就把光标切换到了“飞”和“学”两个字中间。
　]]></description><category></category></item><item><title><![CDATA[python逐行读取文件内容的两种方法]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289368</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289368</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:36:31 +0800</pubDate><description><![CDATA[方法一：
for line in open('f.txt'):
    print(line)

方法二：
f =open('f.txt','r')
lines =f.readlines()
for i in lines:
    print(i)


]]></description><category></category></item><item><title><![CDATA[文件读写属性]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289180</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289180</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:35:56 +0800</pubDate><description><![CDATA[file对象有自己的属性和方法。先来看看file的属性。（+和b可以和其他的字符组合成mode，例如rb以二进制只读方式打开，mode参数是可选的，如果没有默认为r）
（注意：文件打开之后，应当被及时关闭，可以查看f.closed属性以确认文件是否被关闭）
r
只读模式（默认，文件不存在，则发生异常）文件的指针将会放在文件的开头
w
只写模式（可读，文件不存在则创建，存在则删除内容，再打开文件）
a
追加模式（只能写，文件不存在则创建，存在则追加内容）
r+
可读写模式（可读，可写，可追加）,如果文件存在，]]></description><category></category></item><item><title><![CDATA[python文件操作]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289067</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/109289067</guid><author>JonyQAQ</author><pubDate>Mon, 26 Oct 2020 14:28:46 +0800</pubDate><description><![CDATA[一，打开文件
　　python中打开文件的函数为open(‘filename’,mode=‘r’,encode=‘None’)，open函数默认返回文件的句柄，我们可以根据句柄来对文件进行增,删,改,查的操作。将句柄赋给我们定义的变量,假设我们定义变量为f，则f=open(‘filename’,mode=‘r’,encode=‘utf-8’) 或者with open(‘filename’) as f。
注意点：
　　1.python解释器打开文件时，是对硬盘进行操作,需要内核态才可以操作硬盘，故此时pyth]]></description><category></category></item><item><title><![CDATA[python字符串]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760893</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760893</guid><author>JonyQAQ</author><pubDate>Wed, 23 Sep 2020 20:37:17 +0800</pubDate><description><![CDATA[字符串序列用于表示和存储文本，python中字符串是不可变对象。字符串是一个有序的字符的集合，用于存储和表示基本的文本信息，一对单，双或三引号中间包含的内容称之为字符串。其中三引号可以由多行组成，编写多行文本的快捷语法，常用文档字符串，在文件的特定地点，被当做注释。便捷的多行注释。
Python实际三类字符串：
　　1.通常意义字符串(str)
　　2.原始字符串，以大写R 或 小写r开始，r’’，不对特殊字符进行转义
　　3.Unicode字符串，u’’ basestring子类
　　python中字符串]]></description><category></category></item><item><title><![CDATA[sort与sorted函数排序的区别]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760857</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760857</guid><author>JonyQAQ</author><pubDate>Wed, 23 Sep 2020 20:25:41 +0800</pubDate><description><![CDATA[Python list内置sort() 方法用来排序，也可以使用Python内置的全局sorted() 方法对可迭代的序列排序生成新的序列。
　sort()函数
　　　首先看一个例子：
lis1 = [3,5,6,8,9]
lis1.sort()
print(lis1)

使用sort()方法对list排序会修改list本身,不会返回新list，通常此方法不如sorted()方便，但是如果你不需要保留原来的list，此方法将更有效sort()。sort()方法不能对字典dict进行排序。
　　sorted(]]></description><category></category></item><item><title><![CDATA[Python 统计列表中的重复项出现的次数的方法]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760817</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760817</guid><author>JonyQAQ</author><pubDate>Wed, 23 Sep 2020 20:24:32 +0800</pubDate><description><![CDATA[对一个列表，比如[1,2,2,2,2,3,3,3,4,4,4,4]，现在我们需要统计这个列表里的重复项，并且重复了几次也要统计出来。
方法1：
mylist = [1,2,2,2,2,3,3,3,4,4,4,4]
#myset是另外一个列表，里面的内容是mylist里面的无重复项
myset = set(mylist) 
 
for item in myset:
   res = mylist.count(item)
   print("the %d has found %d" %(item,mylist.]]></description><category></category></item><item><title><![CDATA[python列表]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760531</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760531</guid><author>JonyQAQ</author><pubDate>Wed, 23 Sep 2020 20:23:05 +0800</pubDate><description><![CDATA[列表是Python中最基本的数据结构，列表是最常用的Python数据类型，列表是一个数据的集合，集合内可以放任何数据类型，可对集合方便的增删改查操作。Python已经内置确定序列的长度以及确定最大和最小的元素的方法

一，List list()方法
　　list()方法将元组转换为列表
　　注意：元祖与列表是非常相似的，区别在于元组的元素值不能修改，元祖是放在括号中，列表是放在方括号里面的。
a_tuple = ('123','abc',123)
a_list = list(a_tuple)
print(a]]></description><category></category></item><item><title><![CDATA[OrderedDict 的使用]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760504</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760504</guid><author>JonyQAQ</author><pubDate>Wed, 23 Sep 2020 20:09:41 +0800</pubDate><description><![CDATA[在Python中，dict这个数据结构由于hash的特性，是无序的，这在有时候会给我们带来一些麻烦，幸运的时，在collections模块中为我们提供了 OrderedDict ，当你需要获取一个有序的字典对象时，试用它即可。
　　python中的字典（dict）对象可使用“键”，“值” 对的形式存取值，但默认的内置类型字典中的元素是无序的。Collections模块下的OrderedDict类实现了对字典的排序，OrderedDict是dict的一个子类，实现了对字典排序的功能，下面看一下两者数据类型的对]]></description><category></category></item><item><title><![CDATA[python字典]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760395</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108760395</guid><author>JonyQAQ</author><pubDate>Wed, 23 Sep 2020 20:08:34 +0800</pubDate><description><![CDATA[字典是一种通过名字或者关键字引用的得数据结构，key 类型需要时被哈希，其键可以是数字、字符串、元组，这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型。
　　注意，浮点数比较很不精确，因此千万不要用浮点数作为key！
　　python字典包含了11个内置方法，具体如下：
　　
1，字典的键不能是list类型：
list = [1,2,3,4]
info2 = {list:'number'}
 
结果：
Traceback (most recent call last):
  File "]]></description><category></category></item><item><title><![CDATA[python集合操作方法]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651712</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651712</guid><author>JonyQAQ</author><pubDate>Thu, 17 Sep 2020 20:04:16 +0800</pubDate><description><![CDATA[说集合之前，我们先说一个小例子，假设某公司有五个人喜欢打篮球，五个人喜欢打游戏，问即打游戏有打篮球的人都有哪些？
 play_basketball = ['a','b','c','d','e']
play_game = ['a','b','c','f','g']
both_play=[]
for name in play_basketball:
    if name in play_game:
        both_play.append(name)
print(both_play)
结果：
['a']]></description><category></category></item><item><title><![CDATA[print语句和print函数的区别]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651619</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651619</guid><author>JonyQAQ</author><pubDate>Thu, 17 Sep 2020 19:53:20 +0800</pubDate><description><![CDATA[print语句
在python2.x中，print语句最简单的使用形式是
print hello world!

这相当于执行了
sys.stdout.write(‘’。join(map(str,[hello world!]))+'\n')

如果以逗号为分隔符，传递额外的参数，这些参数会被传递到str()函数，最终打印的时候，每个参数之间会空一行。
从2.0版本开始，python引入了print&gt;&gt;的语法。作用是重定向print语句最终输出的字符串的文件
例如：

print&gt;&gt;o]]></description><category></category></item><item><title><![CDATA[python3.x的编码]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651561</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651561</guid><author>JonyQAQ</author><pubDate>Thu, 17 Sep 2020 19:50:44 +0800</pubDate><description><![CDATA[python3.x也有两种数据类型，str和bytes；str类型存unicode数据，bytes类型存bytes数据，
　　python3.x将utf-8或者gbk等编码的字节数据转化为python3.x的str类型，utf-8编码的bytes&lt;–&gt;str
　　python2.x将utf-8或者gbk等编码的字节数据转化为python2.x的unicode类型，utf-8编码的str&lt;–&gt;unicode
　　python3.x的编码思想就是它清晰的将文本和二进制区分开了，不会对by]]></description><category></category></item><item><title><![CDATA[python字符编码问题]]></title><link>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651469</link><guid>https://blog.youkuaiyun.com/JonyQAQ/article/details/108651469</guid><author>JonyQAQ</author><pubDate>Thu, 17 Sep 2020 19:47:21 +0800</pubDate><description><![CDATA[一：什么是编码
　　将明文转换为计算机可以识别的编码文本称为“编码”。反之从计算机可识别的编码文本转回为明文为“解码”。
　　那么什么是明文呢，首先我们从一段信息说起，消息以人们可以理解，易懂的表示存在，我们把这个表示为明文（plain text）。对于说英文的人，纸张上打印的或者屏幕上显示的英文都算是明文。
二：都有什么编码格式？
1：ASCII（占一个字符，只支持英文）
计算机上的数据都是以二进制的形式存储的，1个字节（8比特）可以表示256种状态，英文只有26个字符，再加上一些特殊的字符，使用128个]]></description><category></category></item></channel></rss>