Python
文章平均质量分 50
Ian ma
这个作者很懒,什么都没留下…
展开
-
Python学习笔记(2)
计算一个班级同学的总平均成绩,并判断这个成绩是A,B,C还是D或者Flloyd = { "name": "Lloyd", "homework": [90.0, 97.0, 75.0, 92.0], "quizzes": [88.0, 40.0, 94.0], "tests": [75.0, 90.0]}alice = { "name": "Alice原创 2015-11-07 20:19:24 · 356 阅读 · 0 评论 -
python爬虫实践(一):准备工作
urllib和urllib2 库 urllib 和 urllib2 库是学习Python爬虫最基本的库,利用这个库我们可以得到网页的内容,并对内容用正则表达式提取分析,得到我们想要的结果。urllib和urllib2模块都做与请求URL相关的操作,但他们提供不同的功能。 urllib2.urlopen可以接受一个Request对象或者url,(在接受Request对象时候,并以此可以来设置一个U原创 2016-06-19 22:19:07 · 1158 阅读 · 0 评论 -
Python爬虫实践(四):一些不常用设置
代理设置urllib2默认会使用环境变量 http_proxy 来设置 ==HTTP Proxy==。假如一个网站它会检测某一段时间某个IP 的访问次数,如果访问次数过多,它会禁止你的访问。所以你可以设置一些代理服务器来帮助你做工作,每隔一段时间换一个代理,以防被禁止。设置方法:import urllib2enable_proxy = Trueproxy_handler = urllib2.Pr原创 2016-06-20 15:31:52 · 731 阅读 · 0 评论 -
Python爬虫实践(五):Cookie
Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了。1. 什么是Opener当你获取一个URL,你使用一个opener ( urllib2.OpenerDirecto原创 2016-06-20 19:21:32 · 714 阅读 · 0 评论 -
Python爬虫实践(六):正则表达式(1)
正则表达式,就是将杂乱无章的下载网页解析成我们想要的信息的一种逻辑方法正则表达式是对字符串操作的一种==逻辑公式==,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。正则表达式的大致匹配过程是:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;一旦有匹配不成功的字符则匹配失败。3. 如果表达式中转载 2016-06-20 23:55:22 · 570 阅读 · 0 评论 -
python函数学习笔记
以关键词def开头,可带参数,也可不带。通常使用""" comment """"来注释函数的作用和参数含义函数之间可以互相调用使用数学函数的时候,如sqrt函数,需要通过import math引入数学模块,此情况下,使用时需要写出math.sqrt(25); 如果只需要用到某个特定函数(如sqrt)也可以只使用from math import sqrt,此时只需要写sqrt(25); 如果想使用原创 2016-06-13 22:29:04 · 397 阅读 · 0 评论 -
Python爬虫实践(七):正则表达式(2) re模块的使用
前面说到re模块,可用于正则表达式,匹配字符主要用到的函数有以下几种:#以下为匹配所用函数re.match(pattern, string[, flags])re.search(pattern, string[, flags])re.split(pattern, string[, maxsplit])re.findall(pattern, string[, flags])re.findit原创 2016-06-21 13:06:51 · 735 阅读 · 0 评论 -
Python爬虫实践(八):正则表达式re模块(2)
前面的例子我们打印出了result.group(),其实每个匹配方法还有其他的属性/方法re.match(pattern, string[, flags])re.search(pattern, string[, flags])re.split(pattern, string[, maxsplit])re.findall(pattern, string[, flags])re.finditer转载 2016-06-21 14:44:41 · 810 阅读 · 0 评论 -
Python给定一个句子倒序输出单词以及字母
#!/usr/bin/python# -*- coding: utf-8 -*-def rever(sentence): newwords = [] words = sentence.split() words.reverse() space = ' '#单词之间一个间隔 for word in words: newword = []原创 2016-07-07 13:08:10 · 8304 阅读 · 0 评论 -
Python和opencv打开摄像头
import cv2import numpy as npcap = cv2.VideoCapture(0)while True: ret,frame = cap.read() cv2.imshow('frame',frame) if cv2.waitKey(1) &0xFF == ord('q'):#如果按下的这颗健为q则结束 breakcap.releas原创 2016-07-06 16:44:03 · 9639 阅读 · 0 评论 -
Python爬虫实践(九):第一个爬虫实例(简书首页)
做一个简单的爬虫,简单的不能再简单这里选取简书首页,爬取各个文章标题,由于不需要登录,所以无需Cookie,简书的网页源代码下载也无需设置headers在简书的首页按 F12,查看页面元素Element,可以看到我们所需要爬取的内容夹在了 ..XXXXX 之间所以,pattern我们可以这么写:pattern= re.compile('(.*?)', re.S)原创 2016-06-22 12:40:52 · 1499 阅读 · 0 评论 -
Python爬虫实践(10):实例2教务系统登录
打开登录首页,表面上,我们的url应该是:http://grdms.bit.edu.cn/yjs/login.jsp按F12,查看页面元素如下图:看到提交方式为post,action后边接的应该是我们提交用户名密码的网站,猜测是:http://grdms.bit.edu.cn/yjs/login.do为了验证猜想,登录之后F12查看network:原创 2016-06-23 10:22:29 · 1000 阅读 · 0 评论 -
桶排序,冒泡排序,快速排序算法Python实现
桶排序案例:学生分数为0~10,要按照从小到大排序: 1. 首先我们需要申请一个大小为10的数组(python为列表),然后遍历学生成绩,每遍历一个成绩就在序号=成绩的位置+1. 2. 生成完列表之后,按照序号从小到大遍历,打印出每个序号,每个序号打印次数是序号下的数值def bucket_sort(lst): pre_lst = [0]*10#预先设定的列表,全部置零 resu原创 2016-07-20 23:11:10 · 3115 阅读 · 0 评论 -
图像通道的拆分/合并处理
OpenCV里边彩色顺序是BGR,想要变成RGB顺序,有两种方法:方法一:比较常用的解决办法是拆分了三通道,再逆序合并回去:import cv2img = cv2.imread('img/image.png')b,g,r = cv2.split(img)img = cv2.merge([r,g,b])方法二:不必拆分合并,直接利用Numpy操作,img2 = img[:,:,::原创 2016-07-16 23:16:51 · 3909 阅读 · 0 评论 -
Python爬虫实践(三)设置Headers
例子:以登录知乎为例import urllib2import urllibvalues={"username":"XXXX@qq.com","password":"XXXX"}data=urllib.urlencode(values)url= "https://www.zhihu.com/#signin"request=urllib2.Request(url,data)response=u原创 2016-06-20 14:44:43 · 40513 阅读 · 0 评论 -
Python爬虫实践(二):Urllib库的简单使用
扒网页,其实就是根据URL来获取它的网页信息。例子:import urllib2response = urllib2.urlopen("http://www.baidu.com")print response.read()保存为.py之后运行,即可得到百度首页的源码 首先我们调用的是urllib2库里面的urlopen方法,urlopen一般接受三个参数,参数如下:urlopen(url, da原创 2016-06-19 23:05:17 · 1070 阅读 · 0 评论 -
Python学习笔记(1)
在codecademy自学python,每学一课都停下来好几天,很容易忘记。沾一些代码备份一下来着课时“student become teacher ”lloyd = { "name": "Lloyd", "homework": [90.0, 97.0, 75.0, 92.0], "quizzes": [88.0, 40.0, 94.0], "tests原创 2015-11-07 19:25:56 · 488 阅读 · 0 评论 -
Python学习笔记(3)range的用法
The Python range() function is just a shortcut for generating a list, so you can use ranges in all the same places you can use lists.rang()函数用于方便地产生一个表,用例:range(6) # => [0,1,2,3,4,5]range(1,6) #原创 2015-11-08 10:55:33 · 2059 阅读 · 0 评论 -
Python学习笔记(4),字符串没有append用法
要将一个list的字符串连接起来显示,要求如下:Create a function that concatenates strings.Define a function called join_strings accepts an argument calledwords. It will be a list.Inside the function, create a var原创 2015-11-08 16:19:58 · 30811 阅读 · 1 评论 -
Python学习笔记(5),Battleship 游戏
1.建立“海洋”:一个5*5的网格,每个格子里面的元素均为‘O’,可以使用list来产生5个O,board=[]for item in range(5): board.append(['O']*5)print board但是这样显示的结果是一行,并非我们想要的 5*5:[['O', 'O', 'O', 'O', 'O'], ['O', 'O', 'O', 'O', 'O'], ['原创 2015-11-08 19:16:36 · 2990 阅读 · 0 评论 -
Python输入函数:raw_input() 与 input() 的区别
转载自 http://www.cnblogs.com/way_testlife/archive/2011/03/29/1999283.html这两个均是 python 的内建函数,通过读取控制台的输入与用户实现交互。但他们的功能不尽相同。举两个小例子。>>> raw_input_A = raw_input("raw_input: ")raw_input: abc >>>转载 2015-11-08 20:34:00 · 705 阅读 · 0 评论 -
Python学习笔记(6),实践
1,定义一个函数 is_int(x),判断输入的数据是否为整数这里的整数不仅指的是int类型的数,输入2.0也要判断为整数:def is_int(x): if x==int(x) and x==float(x): return True else: return False2,定义一个函数 digit_sum(n),实现n的各个位相加,如原创 2015-11-10 23:37:33 · 841 阅读 · 0 评论 -
Python爬虫实践(十一):selenium+phantomjs+正则表达式爬取文章并保存
爬取的是三联生活周刊的这篇文章:英国"脱欧":蝴蝶的翅膀动了(url:点击打开链接)一、环境准备:系统:UbuntuIDE:wingide安装以及破解wingide可参考这篇文章:点击打开链接,需要注意的是,经过验证,这个破解的py脚本对最新的wingide 5.1破解失败,在官网下载wingide的时候,点击older version,安装5.0.X的版本,我安装的是原创 2016-06-26 22:27:34 · 4012 阅读 · 0 评论 -
python字符串string笔记
写出某些字符串时需要\,如'what\'s wrong'通过fifth_letter="python[4]"可取出第五个字符o字符串操作方法有:len(string)、string.lower()、string.upper()、str(2),分别实现:计算长度,小写转换,大写转换,非字符串类型转字符串’2’打印字符串可以直接加引号print,也可以将字符串赋予变量,然后print变量即可字符原创 2016-06-13 21:12:34 · 396 阅读 · 0 评论 -
python的datetime库笔记
使用datetime库 from datetime import datetime例子:打印现在时刻的时间from datetime import datetimenow=datetime.now()print now.yearprint now.monthprint now.day通过string的学习我们知道可以按照特定格式输出时间:print '%s-%s-%s' % (now.yea原创 2016-06-13 22:29:54 · 464 阅读 · 0 评论 -
python位操作学习笔记
bit进制转换 | bin()能够将整型输入转换为二进制数,同理,八进制和十六进制转换分别为:oct(),hex().print bin(2) #=> 0b10print oct(7) #=> 07print hex(15) #=> 0xf非整型转换为整型 | int()函数可以将非整型数据转换为整型数据,如int("42") #=>42,int()其实包含了两个参数。int('110原创 2016-06-14 18:03:13 · 2231 阅读 · 0 评论 -
二分查找算法的C++和Python实现
二分查找算法是在有序数组中用到的较为频繁的一种算法,在未接触二分查找算法时,最通用的一种做法是,对数组进行遍历,跟每个元素进行比较,其时间为O(n).但二分查找算法则更优,因为其查找时间为O(lgn),譬如数组{1, 2, 3, 4, 5, 6, 7, 8, 9},查找元素6,用二分查找的算法执行的话,其顺序为:1. 第一步查找中间元素,即5,由于5<6,则6必然在5之后的数组元素中,那么就在{6,原创 2016-07-23 21:49:16 · 915 阅读 · 0 评论 -
python的list列表学习笔记
list对元素操作 | 取出第i个数就使用list_name[i]添加元素 | 通过list_name.append()来向list的最后一个元素后面加入新元素删除元素 | 有两种方法,通过索引删除元素和直接删除元素。list_name.pop(index),通过索引删除,索引从0开始计算list_name.remove(item),直接删除元素,需要知道list中的元素 快捷生成 | ra原创 2016-06-14 15:54:01 · 814 阅读 · 0 评论 -
python类class学习笔记
class Class_name(object) | 类名通常大写开头(约定俗成,不强制),object表示该类继承的类名,如果没有继承类,就写object,因为object类是所有类最终都会继承的类。def __init__(self,x,y,z...) | 通过定义一个特殊的__init__方法,在创建实例的时候,就把类属性初始化。 第一个参数永远是self,表示创建的实例本身因为__ini原创 2016-06-19 00:19:32 · 842 阅读 · 0 评论 -
Python十进制转二、八、十六进制
从十进制转其他进制是非常简单的,无非是分为两步:将这个数对要转换的进制数相除,取余数,如num%8,继续拿着除之后的整数部分对进制数取余数,直到整数部分为0为止将余数倒序输出,即可得到结果num = input('input an int number: ')t = input('input type(2,8,16): ')def trans(num): m = 0 lst原创 2016-07-21 14:59:49 · 1834 阅读 · 0 评论