<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Zeke_Leeeee的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Zeke_Leeeee</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Zeke_Leeeee]]></copyright><item><title><![CDATA[【Python入门】常用第三方模块之psutil（获取系统信息）]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87939441</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87939441</guid><author>Zeke_Leeeee</author><pubDate>Tue, 26 Feb 2019 17:32:58 +0800</pubDate><description><![CDATA[用Python来编写脚本简化日常的运维工作是Python的一个重要用途。在Linux下，有许多系统命令可以让我们时刻监控系统运行的状态，如ps，top，free等等。要获取这些系统信息，Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦，尤其是要写很多解析代码。

在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。顾名思义，psutil = p...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用第三方模块之chardet]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87939281</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87939281</guid><author>Zeke_Leeeee</author><pubDate>Tue, 26 Feb 2019 17:26:42 +0800</pubDate><description><![CDATA[字符串编码一直是令人非常头疼的问题，尤其是我们在处理一些不规范的第三方网页的时候。虽然Python提供了Unicode表示的str和bytes两种数据类型，并且可以通过encode()和decode()方法转换，但是，在不知道编码的情况下，对bytes做decode()不好做。

对于未知编码的bytes，要把它转换成str，需要先“猜测”编码。猜测的方式是先收集各种编码的特征字符，根据特征字符判...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用自带模块之HTMLParser]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87935458</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87935458</guid><author>Zeke_Leeeee</author><pubDate>Tue, 26 Feb 2019 16:18:09 +0800</pubDate><description><![CDATA[学习python的第7天

Python的自带模块——HTMLParser的初步学习
 

HTMLParser是Python自带的模块，使用简单，能够很容易的实现HTML文件的分析。
本文主要简单讲一下HTMLParser的用法。

使用时需要定义一个从模块html.parser中的类HTMLParser继承的类，重定义函数：


handle_starttag( tag, attrs)
han...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用内建模块之contextlib]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87930819</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87930819</guid><author>Zeke_Leeeee</author><pubDate>Tue, 26 Feb 2019 10:53:00 +0800</pubDate><description><![CDATA[在Python中，读写文件这样的资源要特别注意，必须在使用完毕后正确关闭它们。正确关闭文件资源的一个方法是使用try...finally：


try:
    f = open('/path/to/file', 'r')
    f.read()
finally:
    if f:
        f.close()


写try...finally非常繁琐。Python的with语句允许我们...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用内建模块之itertools]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87930467</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87930467</guid><author>Zeke_Leeeee</author><pubDate>Tue, 26 Feb 2019 10:39:04 +0800</pubDate><description><![CDATA[Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。

首先，我们看看itertools提供的几个“无限”迭代器：


&amp;gt;&amp;gt;&amp;gt; import itertools
&amp;gt;&amp;gt;&amp;gt; natuals = itertools.count(1)
&amp;gt;&amp;gt;&amp;gt; for n in natuals:
...     print(n)
...
1
...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用内建模块之hashlib]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87929027</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87929027</guid><author>Zeke_Leeeee</author><pubDate>Tue, 26 Feb 2019 09:55:17 +0800</pubDate><description><![CDATA[学习python的第7天

摘要算法简介

Python的hashlib提供了常见的摘要算法，如MD5，SHA1等等。

什么是摘要算法呢？摘要算法又称哈希算法、散列算法。它通过一个函数，把任意长度的数据转换为一个长度固定的数据串（通常用16进制的字符串表示）。

举个例子，你写了一篇文章，内容是一个字符串'how to use python hashlib - by Michael'，并附上这篇...]]></description><category></category></item><item><title><![CDATA[【Python入门】运算符]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87926760</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87926760</guid><author>Zeke_Leeeee</author><pubDate>Mon, 25 Feb 2019 22:52:59 +0800</pubDate><description><![CDATA[学习python的第6天

Python算术运算符

运算符
			描述
			实例
		+
			加 - 两个对象相加
			a + b 输出结果 30
		-
			减 - 得到负数或是一个数减去另一个数
			a - b 输出结果 -10
		*
			乘 - 两个数相乘或是返回一个被重复若干次的字符串
			a * b 输出结果 200
		/
			除 - x除以y
			b / a 输...]]></description><category></category></item><item><title><![CDATA[【Python入门】常见模块之base64]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87926729</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87926729</guid><author>Zeke_Leeeee</author><pubDate>Mon, 25 Feb 2019 22:49:13 +0800</pubDate><description><![CDATA[学习python的第6天

Base64是一种用64个字符来表示任意二进制数据的方法。

用记事本打开exe、jpg、pdf这些文件时，我们都会看到一大堆乱码，因为二进制文件包含很多无法显示和打印的字符，所以，如果要让记事本这样的文本处理软件能处理二进制数据，就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。

Base64的原理很简单，首先，准备一个包含64个字符的数...]]></description><category></category></item><item><title><![CDATA[【Python入门】字符串string开头 r/b/u/f含义]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87926526</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87926526</guid><author>Zeke_Leeeee</author><pubDate>Mon, 25 Feb 2019 22:37:33 +0800</pubDate><description><![CDATA[学习python的第6天

 

字符串开头r b u f各含义：


b'input\n' # bytes字节符，打印以b开头。
输出：
b'input\n'

 


r'input\n' # 非转义原生字符，经处理'\n'变成了'\\'和'n'。也就是\n表示的是两个字符，而不是换行。
输出：
'input\\n'


u'input\n' # unicode编码字符，python3默认字符...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用模块之argparse]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87925097</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87925097</guid><author>Zeke_Leeeee</author><pubDate>Mon, 25 Feb 2019 22:34:50 +0800</pubDate><description><![CDATA[学习python的第6天

argparse

argparse 是 Python 内置的一个用于命令项选项与参数解析的模块，通过在程序中定义好我们需要的参数，argparse 将会从 sys.argv 中解析出这些参数，并自动生成帮助和使用信息。当然，Python 也有第三方的库可用于命令行解析，而且功能也更加强大，比如 docopt，Click。

argparse 使用

简单示例

我们先...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用内建模块之collections]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87919196</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87919196</guid><author>Zeke_Leeeee</author><pubDate>Mon, 25 Feb 2019 17:20:22 +0800</pubDate><description><![CDATA[学习python的第6天

namedtuple

我们知道tuple可以表示不变集合，例如，一个点的二维坐标就可以表示成：


&amp;gt;&amp;gt;&amp;gt; p = (1, 2)


但是，看到(1, 2)，很难看出这个tuple是用来表示一个坐标的。

定义一个class又小题大做了，这时，namedtuple就派上了用场：


&amp;gt;&amp;gt;&amp;gt; from collections impo...]]></description><category></category></item><item><title><![CDATA[【Python入门】常用内建模块之datetime]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87913477</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87913477</guid><author>Zeke_Leeeee</author><pubDate>Mon, 25 Feb 2019 16:18:06 +0800</pubDate><description><![CDATA[学习python的第6天

datetime是Python处理日期和时间的标准库。

获取当前日期和时间

我们先看如何获取当前日期和时间：


&amp;gt;&amp;gt;&amp;gt; from datetime import datetime
&amp;gt;&amp;gt;&amp;gt; now = datetime.now() # 获取当前datetime
&amp;gt;&amp;gt;&amp;gt; print(now)
2015-05-18 ...]]></description><category></category></item><item><title><![CDATA[【Python入门】os与os.path的操作，以及查找目录（及其子目录）下包含某关键词的文件路径]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87897593</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87897593</guid><author>Zeke_Leeeee</author><pubDate>Sat, 23 Feb 2019 21:58:18 +0800</pubDate><description><![CDATA[从这一篇博客开始，要记录入坑的天数了，仪式感很重要：学习python的第4天

操作文件和目录

操作文件和目录的函数一部分放在os模块中，一部分放在os.path模块中，这一点要注意一下。以下为常用的方法：

 

os下的方法

创建目录：os.mkdir('User/zeke/newdir')

删除目录：os.rmdir('User/zeke/newdir')

文件重命名：os.rena...]]></description><category></category></item><item><title><![CDATA[【Pyhton入门】IO基础操作，read()/read(size)/readline()/readlines()/with open() as f]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87892554</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87892554</guid><author>Zeke_Leeeee</author><pubDate>Sat, 23 Feb 2019 15:27:29 +0800</pubDate><description><![CDATA[读取方法一 f=open()

由于文件读写时都有可能产生IOError，一旦出错，后面的f.close()就不会调用。所以，为了保证无论是否出错都能正确地关闭文件，我们可以使用try ... finally来实现：


try:
    f = open('/path/to/file', 'r')
    print(f.read())
finally:
    if f:
        f....]]></description><category></category></item><item><title><![CDATA[【Pyhton入门】__getattr__用于链式调用]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87888976</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87888976</guid><author>Zeke_Leeeee</author><pubDate>Sat, 23 Feb 2019 10:20:34 +0800</pubDate><description><![CDATA[现在很多网站都搞REST API，比如新浪微博、豆瓣啥的，调用API的URL类似：

http://api.server/user/friends
	http://api.server/user/timeline/list
如果要写SDK，给每个URL对应的API都写一个方法，那得累死，而且，API一旦改动，SDK也要改。

利用完全动态的__getattr__，我们可以写出一个链式调用：


c...]]></description><category></category></item><item><title><![CDATA[python的返回函数]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87861348</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87861348</guid><author>Zeke_Leeeee</author><pubDate>Sat, 23 Feb 2019 09:32:06 +0800</pubDate><description><![CDATA[高阶函数除了可以接收函数作为参数之外，还可以把函数作为结果值返回。

实现一个可变参数的求和：


def sum(*args):

    ax=0

    for n in args:

        ax=ax+n

    return ax


 


 但是，若不是需要立即求和，而是在后面的代码中，根据需要再计算应该怎么办？可以不返回求和结果，而是返回求和的函数：


 



d...]]></description><category></category></item><item><title><![CDATA[【Python入门】定制类:__str__/__repr__/__iter__/__getitem__/__getattr__/__call__]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87886712</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87886712</guid><author>Zeke_Leeeee</author><pubDate>Fri, 22 Feb 2019 23:08:16 +0800</pubDate><description><![CDATA[看到类似__slots__这种形如__xxx__的变量或者函数名就要注意，这些在Python中是有特殊用途的。

__slots__我们已经知道怎么用了（限制类的属性种数），__len__()方法我们也知道是为了能让class作用于len()函数。

除此之外，Python的class中还有许多这样有特殊用途的函数，可以帮助我们定制类。

 

__str__和__repr__

我们先定义一个S...]]></description><category></category></item><item><title><![CDATA[【Python入门】使用@property]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87886552</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87886552</guid><author>Zeke_Leeeee</author><pubDate>Fri, 22 Feb 2019 22:23:17 +0800</pubDate><description><![CDATA[使用@property

有没有既能够检查参数，又可以用类似属性这样简单的方式来访问类的变量呢？

有!

对于类的方法，装饰器一样起作用！Python内置的@property装饰器就是负责把一个方法变成属性调用的：

还记得装饰器（decorator）可以给函数动态加上功能吗？对于类的方法，装饰器一样起作用。Python内置的@property装饰器就是负责把一个方法变成属性调用的：


cla...]]></description><category></category></item><item><title><![CDATA[【Python入门】给实例/class绑定新方法及__slots__的使用]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87881691</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87881691</guid><author>Zeke_Leeeee</author><pubDate>Fri, 22 Feb 2019 16:59:36 +0800</pubDate><description><![CDATA[给实例绑定方法

正常情况下，当我们定义了一个class，创建了一个class的实例后，我们可以给该实例绑定任何属性和方法，这就是动态语言的灵活性。先定义class：


class Student(object):
    pass

尝试给实例绑定一个方法：


&amp;gt;&amp;gt;&amp;gt; def set_age(self, age): # 定义一个函数作为实例方法
...     self.a...]]></description><category></category></item><item><title><![CDATA[面向对象编程的三板斧：数据封装、继承和多态]]></title><link>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87880283</link><guid>https://blog.youkuaiyun.com/Zeke_Leeeee/article/details/87880283</guid><author>Zeke_Leeeee</author><pubDate>Fri, 22 Feb 2019 16:11:46 +0800</pubDate><description><![CDATA[数据封装

以一个类Student来举例进行说明，可以直接在Student类的内部定义访问数据的函数，这样，就把“数据”给封装起来了。这些封装数据的函数是和Student类本身是关联起来的，我们称之为类的方法：


class Student(object):

    def __init__(self, name, score):
        self.name = name
      ...]]></description><category></category></item></channel></rss>