自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(36)
  • 收藏
  • 关注

转载 【Python入门】常用第三方模块之psutil(获取系统信息)

用Python来编写脚本简化日常的运维工作是Python的一个重要用途。在Linux下,有许多系统命令可以让我们时刻监控系统运行的状态,如ps,top,free等等。要获取这些系统信息,Python可以通过subprocess模块调用并获取结果。但这样做显得很麻烦,尤其是要写很多解析代码。在Python中获取系统信息的另一个好办法是使用psutil这个第三方模块。顾名思义,psutil = p...

2019-02-26 17:32:58 490

转载 【Python入门】常用第三方模块之chardet

字符串编码一直是令人非常头疼的问题,尤其是我们在处理一些不规范的第三方网页的时候。虽然Python提供了Unicode表示的str和bytes两种数据类型,并且可以通过encode()和decode()方法转换,但是,在不知道编码的情况下,对bytes做decode()不好做。对于未知编码的bytes,要把它转换成str,需要先“猜测”编码。猜测的方式是先收集各种编码的特征字符,根据特征字符判...

2019-02-26 17:26:42 250

转载 【Python入门】常用自带模块之HTMLParser

学习python的第7天Python的自带模块——HTMLParser的初步学习 HTMLParser是Python自带的模块,使用简单,能够很容易的实现HTML文件的分析。本文主要简单讲一下HTMLParser的用法。使用时需要定义一个从模块html.parser中的类HTMLParser继承的类,重定义函数:handle_starttag( tag, attrs)han...

2019-02-26 16:18:09 1279 1

转载 【Python入门】常用内建模块之contextlib

在Python中,读写文件这样的资源要特别注意,必须在使用完毕后正确关闭它们。正确关闭文件资源的一个方法是使用try...finally:try: f = open('/path/to/file', 'r') f.read()finally: if f: f.close()写try...finally非常繁琐。Python的with语句允许我们...

2019-02-26 10:53:00 199

转载 【Python入门】常用内建模块之itertools

Python的内建模块itertools提供了非常有用的用于操作迭代对象的函数。首先,我们看看itertools提供的几个“无限”迭代器:>>> import itertools>>> natuals = itertools.count(1)>>> for n in natuals:... print(n)...1...

2019-02-26 10:39:04 166

转载 【Python入门】常用内建模块之hashlib

学习python的第7天摘要算法简介Python的hashlib提供了常见的摘要算法,如MD5,SHA1等等。什么是摘要算法呢?摘要算法又称哈希算法、散列算法。它通过一个函数,把任意长度的数据转换为一个长度固定的数据串(通常用16进制的字符串表示)。举个例子,你写了一篇文章,内容是一个字符串'how to use python hashlib - by Michael',并附上这篇...

2019-02-26 09:55:17 122

转载 【Python入门】运算符

学习python的第6天Python算术运算符运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 / 除 - x除以y b / a 输...

2019-02-25 22:52:59 199

转载 【Python入门】常见模块之base64

学习python的第6天Base64是一种用64个字符来表示任意二进制数据的方法。用记事本打开exe、jpg、pdf这些文件时,我们都会看到一大堆乱码,因为二进制文件包含很多无法显示和打印的字符,所以,如果要让记事本这样的文本处理软件能处理二进制数据,就需要一个二进制到字符串的转换方法。Base64是一种最常见的二进制编码方法。Base64的原理很简单,首先,准备一个包含64个字符的数...

2019-02-25 22:49:13 143

转载 【Python入门】字符串string开头 r/b/u/f含义

学习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默认字符...

2019-02-25 22:37:33 947

转载 【Python入门】常用模块之argparse

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

2019-02-25 22:34:50 319

转载 【Python入门】常用内建模块之collections

学习python的第6天namedtuple我们知道tuple可以表示不变集合,例如,一个点的二维坐标就可以表示成:>>> p = (1, 2)但是,看到(1, 2),很难看出这个tuple是用来表示一个坐标的。定义一个class又小题大做了,这时,namedtuple就派上了用场:>>> from collections impo...

2019-02-25 17:20:22 220

转载 【Python入门】常用内建模块之datetime

学习python的第6天datetime是Python处理日期和时间的标准库。获取当前日期和时间我们先看如何获取当前日期和时间:>>> from datetime import datetime>>> now = datetime.now() # 获取当前datetime>>> print(now)2015-05-18 ...

2019-02-25 16:18:06 140

原创 【Python入门】os与os.path的操作,以及查找目录(及其子目录)下包含某关键词的文件路径

从这一篇博客开始,要记录入坑的天数了,仪式感很重要:学习python的第4天操作文件和目录操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。以下为常用的方法: os下的方法创建目录:os.mkdir('User/zeke/newdir')删除目录:os.rmdir('User/zeke/newdir')文件重命名:os.rena...

2019-02-23 21:58:18 1011

原创 【Pyhton入门】IO基础操作,read()/read(size)/readline()/readlines()/with open() as f

读取方法一 f=open()由于文件读写时都有可能产生IOError,一旦出错,后面的f.close()就不会调用。所以,为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现:try: f = open('/path/to/file', 'r') print(f.read())finally: if f: f....

2019-02-23 15:27:29 1648

原创 【Pyhton入门】__getattr__用于链式调用

现在很多网站都搞REST API,比如新浪微博、豆瓣啥的,调用API的URL类似:http://api.server/user/friends http://api.server/user/timeline/list如果要写SDK,给每个URL对应的API都写一个方法,那得累死,而且,API一旦改动,SDK也要改。利用完全动态的__getattr__,我们可以写出一个链式调用:c...

2019-02-23 10:20:34 346

转载 python的返回函数

高阶函数除了可以接收函数作为参数之外,还可以把函数作为结果值返回。实现一个可变参数的求和:def sum(*args):    ax=0    for n in args:        ax=ax+n    return ax  但是,若不是需要立即求和,而是在后面的代码中,根据需要再计算应该怎么办?可以不返回求和结果,而是返回求和的函数: d...

2019-02-23 09:32:06 109

转载 【Python入门】定制类:__str__/__repr__/__iter__/__getitem__/__getattr__/__call__

看到类似__slots__这种形如__xxx__的变量或者函数名就要注意,这些在Python中是有特殊用途的。__slots__我们已经知道怎么用了(限制类的属性种数),__len__()方法我们也知道是为了能让class作用于len()函数。除此之外,Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类。 __str__和__repr__我们先定义一个S...

2019-02-22 23:08:16 183

转载 【Python入门】使用@property

使用@property有没有既能够检查参数,又可以用类似属性这样简单的方式来访问类的变量呢?有!对于类的方法,装饰器一样起作用!Python内置的@property装饰器就是负责把一个方法变成属性调用的:还记得装饰器(decorator)可以给函数动态加上功能吗?对于类的方法,装饰器一样起作用。Python内置的@property装饰器就是负责把一个方法变成属性调用的:cla...

2019-02-22 22:23:17 101

转载 【Python入门】给实例/class绑定新方法及__slots__的使用

给实例绑定方法正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性。先定义class:class Student(object): pass尝试给实例绑定一个方法:>>> def set_age(self, age): # 定义一个函数作为实例方法... self.a...

2019-02-22 16:59:36 187

转载 面向对象编程的三板斧:数据封装、继承和多态

数据封装以一个类Student来举例进行说明,可以直接在Student类的内部定义访问数据的函数,这样,就把“数据”给封装起来了。这些封装数据的函数是和Student类本身是关联起来的,我们称之为类的方法:class Student(object): def __init__(self, name, score): self.name = name ...

2019-02-22 16:11:46 262

原创 廖雪峰老师的decorator教程练习:同一decorator @log,既可以使用@log().又可以使用@log(参数),没搞懂

练习一请编写一个decorator,能在函数调用的前后打印出'begin call'和'end call'的日志。这部分并不难,在wrapper中将函数的运行值赋值给一个变量,再返回该变量即可,如下:import functoolsdef log(fn):    @fuctools.wraps(fn)    def wrapper(*args,**kw):        pr...

2019-02-22 11:55:34 872

转载 python中的装饰器decorator

由于函数也是一个对象,而且函数对象可以被赋值给变量,所以,通过变量也能调用该函数。>>> def now():... print('2015-3-25')...>>> f = now>>> f()2015-3-25 现在,假设我们要增强now()函数的功能,比如,在函数调用前后自动打印日志,但又不希望修改now()函...

2019-02-22 11:43:12 125

转载 检测回文的好方法及python中的[::-1],sorted函数

def is_plindrome(s):    return s==s[::-1][::-1]即为将字符串颠倒次序,如下:>>> s='qwertt'>>> s[::-1]'ttrewq'  因为CSDN的每天十篇博客数限制,所以把一些并不相关的内容整合到了一起 orz 排序问题sorted()函数是一个高阶函数,还可以接受...

2019-02-21 15:02:39 511

原创 一个切片小程序的插曲

利用切片操作,实现一个trim()函数,去除字符串首尾的空格,注意不要调用str的strip()方法:一开始没什么头绪,想着要怎么能确定两头空格的个数呢?python中的for循环又不计数,不好弄啊。好吧还是看了别人的解法:既然不好确定两头空格的个数,就一个空格一个空格的从两边消除!!!然后写的程序如下def trim(s):    while s[0]==' ':     ...

2019-02-21 10:02:02 130

转载 python中的关键字参数及参数的注意事项

关键字参数可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict。请看示例:def person(name, age, **kw): print('name:', name, 'age:', age, 'other:', kw)函数person除了...

2019-02-21 10:01:27 860 1

转载 python中的可变参数

在Python函数中,还可以定义可变参数。顾名思义,可变参数就是传入的参数个数是可变的,可以是1个、2个到任意个,还可以是0个。我们以数学题为例子,给定一组数字a,b,c……,请计算a2 + b2 + c2 + ……。要定义出这个函数,我们必须确定输入的参数。由于参数个数不确定,我们首先想到可以把a,b,c……作为一个list或tuple传进来,这样,函数可以定义如下:def cal...

2019-02-21 10:01:07 254

原创 python解一元二次方程

解一元二次方程ax^2+bx+c=0刚开始碰到这个问题,习惯性地想要用迭代的方式来做,居然忘记了解方程的公式...思路:公式法解方程即可,先计算delta=b^2-4ac若delta<0,则判断方程无解(为方便起见,忽略复数解)若delta>=0,则      代码:import mathdef quadratic(a,b,c):    delta...

2019-02-20 16:40:57 8290

转载 python空函数和多个返回值

函数名其实就是指向一个函数对象的引用,完全可以把函数名赋给一个变量,相当于给这个函数起了一个“别名”:>>> a = abs # 变量a指向abs函数>>> a(-1) # 所以也可以通过a调用abs函数1空函数如果想定义一个什么事也不做的空函数,可以用pass语句:def nop(): passpass语句什么都不做,那有...

2019-02-20 16:10:34 1133

转载 再议python中的不可变对象

再议不可变对象上面我们讲了,str是不变对象,而list是可变对象。对于可变对象,比如list,对list进行操作,list内部的内容是会变化的,比如:>>> a = ['c', 'b', 'a']>>> a.sort()>>> a['a', 'b', 'c']而对于不可变对象,比如str,对str进行操作呢:&...

2019-02-20 15:32:14 70

转载 python中的dict和set

dict如果用dict实现,只需要一个“名字”-“成绩”的对照表,直接根据名字查找成绩,无论这个表有多大,查找速度都不会变慢。用Python写一个dict如下:>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85}>>> d['Michael']95请务必注意,dict内部存放的顺序和key放入的顺序是没...

2019-02-20 15:31:41 77

转载 python中的list和tuple

listlist是一个可变的有序表,所以可以往list中追加元素到末尾(利用append):>>> classmates.append('Adam')>>> classmates['Michael', 'Bob', 'Tracy', 'Adam']也可以把元素插入到指定的位置,比如索引号为1的位置(利用insert):>>&...

2019-02-20 14:45:20 175

转载 python中的字符串和编码

编码  UTF-8编码有一个额外的好处,就是ASCII编码实际上可以被看成是UTF-8编码的一部分,所以,大量只支持ASCII编码的历史遗留软件可以在UTF-8编码下继续工作。搞清楚了ASCII、Unicode和UTF-8的关系,我们就可以总结一下现在计算机系统通用的字符编码工作方式:在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8...

2019-02-20 14:33:04 93

转载 python中的常量和除法

常量在python中通常用全部大写的变量名表示常量:PI=3.14159265359 但事实上PI仍然是一个变量,python没有机制保障PI不会被改变,用全部大写的变量名表示常量只是一个习惯用法,如果你一定要改变变量PI的值,也没人能拦住你。 除法 在python中,有两种除法,一种除法是 / : >>> 10/33.33333333333...

2019-02-20 11:15:05 263

转载 python中的转义字符\

字符串是以单引号 ' 或双引号 " 括起来的任意文本,比如'abc',"xyz"等。如果字符串内部既包含 ' 又包含 " 怎么办,可以用转义字符 \ 来标识,比如:'I\'m \"OK\"!'表示的字符串内容是:I'm "OK"!转义字符\ 可以转义很多字符: \n 表示换行    \t  表示制表符      \\  表示的就是\  如果转义字符串里有很多字符都需要转...

2019-02-20 10:49:54 3629

转载 直接运行py文件

有同学问,能不能像.exe文件那样直接运行.py文件呢?在Windows上是不行的,但是,在Mac和Linux上是可以的,方法是在.py文件的第一行加上一个特殊的注释:#!/usr/bin/env python3print('hello, world')然后,通过命令给hello.py以执行权限:$ chmod a+x hello.py ...

2019-02-20 10:27:03 1763

转载 NameError: name 'lizhe' is not defined问题解决

是廖雪峰老师网站上一个非常简单的程序,功能为接收使用者输入的姓名,并打印出来,程序如下:但是运行的时候报错 NameError: name 'lizhe' is not defined,如下:后来发现其实很简单,因为默认为python2.7,所以在遇到input时会报该错(2.7中常用raw_input)解决:设置默认为python3.6即可 ...

2019-02-20 10:12:57 1312

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除