自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huizhang0110

积土成山,积水成渊!

  • 博客(103)
  • 收藏
  • 关注

原创 安装autojump

使用源码安装autojumpgit clone git://github.com/joelthelion/autojump.git./install.py将[[ -s /home/zhui/.autojump/etc/profile.d/autojump.sh ]] && source /home/zhui/.autojump/etc/profile.d/autojump...

2018-12-25 18:37:25 561

原创 re.match匹配多行数据失败

出错代码与现象: 正则表达式提取网站源码中的_xsrf的值 使用单行数据测试正则表达式,能够正确提取,但是换成网页全文数据的时候,出现错误。import requeststry: import cookielibexcept: import http.cookiejar as cookielibimport resession = requests.session()h

2017-11-09 15:45:18 1841

原创 数串

1. 题目描述 设有n个正整数,将他们连接成一排,组成一个最大的多位整数。 如:n=3时,3个整数13,312,343,连成的最大整数为34331213。 如:n=4时,4个整数7,13,4,246连接成的最大整数为7424613。 2. 输入描述 有多组测试样例,每组测试样例包含两行,第一行为一个整数N(N<=100),第二行包含N个数(每个数不超过1000,空格分开)。 3. 输出描

2017-10-31 18:08:22 427

原创 c++11 lambda函数

C++11添加了lambda函数的新功能,在使用过程中将匿名函数作为函数参数传递将会变得非常的简洁。在之前一般使用函数指针和函数符将函数作为参数传递给另外一个参数。 /** 匿名函数 * 1. lambda匿名函数离使用的位置最近,进行修改非常方便 * 2. 使用auto mod3 = [](int x) { return x % 3 == 0; }; 可以像常规函数一样使用匿名

2017-10-31 16:39:46 318

原创 python3 使用静态属性节约对象实例的内存开销

# 如何减少大量实例占用内存的开销import sysclass Player: def __init__(self, uid, name, status=0, level=1): self.uid = uid self.name = name self.stat = status self.level = levelcl

2017-10-24 23:21:31 570

原创 python3 对迭代器进行切片

使用itertools.islice方法# 使用itertools.islice, 返回一个迭代对象切片的生成器from itertools import islicef = open('/var/log/dpkg.log')for line in islice(f, 100, 300, 1): #迭代[100, 300)行,步长1 print(line, end='')f.clos

2017-10-24 22:39:39 349

原创 python3 迭代器与生成器

迭代器使用迭代器可以很方便地获取对象中的数据 实现__iter__()、__next__()方法,用于返回迭代的对象和元素。iter()可以将可迭代对象转换为迭代器生成器带有yield的函数被认为是生成器函数,将会被解释成可迭代器对象。程序执行到yield的时候将会被暂停,再次被迭代的时候,将会从上次执行的位置继续class Container: def __init__(self,

2017-10-23 23:24:21 344

原创 在一个二维平面上找到离固定点最近的k个点位置

问题描述/* * 给定一些 points 和一个 origin, 从points中找出k个离origin最近的点,按照距离从小到大返回 * 如果有两个点有相同距离,按照x值进行排序,如果x值相等,按照y值进行排序 * * 如果是静态数据,数据量不是特别多的话,直接做个排序就可以了 * 如果是动态数据的话,维护一个最小堆 */代码#include <iostream>#inc

2017-10-23 18:19:07 6736

原创 python 同时迭代多个对象

python中可以将多个可迭代对象组成一个可迭代对象,在一个for循环中完成迭代。 zip函数可以将多个可迭代对象封装成多元素的元组的列表,从而方便并行操作数据 itertools.chain函数可以将多个可迭代对象的元素按照顺序存入同一个列表中,从而方便顺序操作数据示例代码# 如何在一个for循环中同时迭代多个对象from random import randintfrom itertoo

2017-10-23 14:50:14 6202

原创 python 使用正则表达式捕获文本内容并调整

读取Log文件内容,使用正则表达式读取日期数据,并调整格式# 输出正则表达式的描述import ref = open("/var/log/dpkg.log")log = f.read()t = re.sub("(?P<year>\d{4})-(?P<month>\d{2})-(?P<day>\d{2})", r"\g<month>/\g<day>/\g<year>", log)print(

2017-10-22 21:55:00 2665

原创 python 如何工整的打印字符串

# 如何工整的打印字符串 [对字符串进行左中右对齐的操作]from collections import OrderedDictmy_dict = OrderedDict()my_dict["name"] = "Hui Zhang"my_dict["age"] = "21"my_dict["gender"] = "M"my_dict["email"] = "huizhang0110@fox

2017-10-22 16:22:06 897

原创 python 如何进行多个字符串的拼接

# 如何将多个字符串进行连接s_list = ["<123>", "<klj>", "<2381293>", 123, 456]print(s_list)# 使用重载的字符串加法运算,直接拼接字符串(将会出现大量的临时字符串,列表元素比较多的时候不建议使用)s1 = ""for s in s_list: s1 += str(s) print(s1) # 每次都会出现临时字符串

2017-10-22 15:46:33 11019 1

原创 python 判断字符串中的的起始、终止子字符串

实例: 找出文件系统中以py、sh结尾的文件并赋予相应的可执行权限# -*- coding=utf-8 -*-# 如何判断字符串开头和结尾字符# 某文件系统中有一系列文件,编写程序给其中的sh文件和py文件加上用户权限import osimport stat # 和文件状态相关if __name__ == "__main__": # 对py sh脚本加上可执行权限 root

2017-10-22 12:22:40 3566

原创 python 按照字典的值进行排序

# 对字典数据的值进行排序from random import randintd = {k: randint(60, 100) for k in "xyzabc"}print(d)# 直接使用sort()只能将键进行排序print(list(iter(d)))sorted_1 = sorted(d) # 排序的只是可字典的迭代对象-键print(sorted_1)# 按照值进行排序# 1

2017-10-21 00:35:47 997

原创 python 使用Counter统计列表中元素的频度

from collections import Counterimport re# 统计列表中次数出现最高的单词的频次a = [12, 5, 6, 4, 6, 5, 5, 7]print(Counter(a).most_common())# 拥挤英文文章中单词的频度with open("LICENSE") as f: contend = f.read()# 将文本转换为单词列表

2017-10-20 23:35:38 1141

原创 为tuple中的元素命名,提高程序的可读性

定义类似于枚举常量的数据充当索引值使用collection.nametuple代替传统的内置tuple示例代码# 使用索引进行访问,大大降低了程序的可读性stu = ("Jim", 16, "male", "huizhang0110@foxmail.com")print("name = {}, age = {}, gender = {}, email = {}".format(stu[0],

2017-10-20 23:14:34 302

原创 python collections模块

python collections提供了一些数据类型的扩展,使用起来非常方便Counter类Counter类是一个计数器类,继承于字典类,表示对象和相应的计数 常见的一个应用就是词频的统计from collection import Counterimport reif __name__ == "__main__": path = "/usr/lib/python3.5/LICENS

2017-10-19 23:48:45 241

原创 k近邻算法实现手写数字的识别和图片的分类

最近邻分类器近邻算法的目的是使用一系列的已知类别的训练集合tr_set来推测未知类别的测试数据te_data的类别,方法是计算te_data和训练集合tr_set中的所有数据的距离,找到训练数据中与测试数据最近的一个数据,由于训练数据的类别已经知道了,我们可以大胆推测测试数据类别就是这个距离最近的训练数据的类别。但是推测并不一定准确,近邻算法基于统计学,有一定的错误概率。最近邻分类器的改进版-k近邻

2017-10-19 21:05:56 1048

原创 python numpy模块

python中numpy模块可以进行精确的数值计算,在编程中经常使用其进行矩阵运算。博主使用这篇文章积累起自己使用numpy的经验,欢迎交流。import numpy as npnp.array()np.argmin() np.argmin(a, axis=None, out=None) 返回矩阵向量沿axis方向的最小值 a: 输入的array axis: 缺省的时候表示所有

2017-10-19 16:15:15 1161

原创 python os 模块

查找目录下存在的文件os.listdir(dirpath)返回一个list容器,包含目录下文件名称(包括目录文件)判断一个文件是目录目录还是普通文件os.path.isfile(filepath)os.path.isdir(filepath)返回布尔值

2017-10-19 12:56:22 197

原创 Ubuntu上安装Eclipse

下载安装包解压到安装目录sudo tar zxvf eclipse-cpp-oxygen-1a-linux-gtk.tar.gz -C /opt/由于是绿色安装包,运行Eclipse就可以了(需要系统已经安装jre)cd /opt/eclipse./eclipse创建桌面快捷方式在/usr/share/applications目录下添加添加eclipse.desktop文件,内容为:[

2017-10-15 21:00:19 262

原创 Ubuntu下OpenCV编程[3]-滑动条的使用

OpenCV中提供了滑动条、按键等交互工具用来调节程序中某些参数。相比与QT这些专业的GUI类库,OpenCV中GUI非常逊色,但是在调试、展示算法过程中,这些简陋的工具完全够用。在以下的一个示例程序中,我使用滑动条提供的值,来控制灰度图片和彩色图片混合比例。创建滑动条的函数:CV_EXPORTS int createTrackbar(const String& trackbarname, co

2017-10-15 14:53:27 292

原创 Ubuntu下OpenCV编程[2]-cv::Mat类

cv::Mat类介绍遍历cv::Mat图像矩阵使用at函数进行遍历使用迭代器进行遍历使用指针进行遍历由于像素点的数据类型不同,将这几种方式遍历的测试函数,封装成模板函数,如下所示:namespace Hui { // 1. 使用 for循环 + at函数 遍历图像矩阵 template <typename T> void travelMatByAt(cv::Mat &

2017-10-14 22:24:26 345

原创 int *和int[]共同点和区别

如 int *a 和 int b[]相同点a和b的值都表示一片内存区域的地址,都是使用int型进行管理作为函数的形式参数没有任何区别区别a是一个变量,需要分配内存空间进行存储,而b是程序中的一个标号,给编译器提供地址信息,不需要进行保存。因此可以在程序中改变a,但是无法在程序中改变b。可以使用int b[]定义数组,如 int b[] = {1, 2, 3, 4}, 但是无法使用int *a

2017-10-14 14:22:45 5116

原创 Ubuntu下OpenCV编程[1]-下载并安装测试OpenCV库

下载并解压,配置CMake并生成Makefile文件wget https://github.com/opencv/opencv/archive/3.3.0.tar.gztar -zxvf 3.3.0.tar.gzcd opencv-3.3.0/mkdir buildcd buildcmake .. -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_P

2017-10-13 16:23:33 1741 1

原创 使用C++类模板,出现链接错误

在定义一个模板类的时候,将类模板成员函数放在独立的cpp实现文件中,将模板类声明放在一个h文件中。在一个文件中需要使用到这个类,直接include头文件发现出现链接错误。由于模板不是函数,只是一些C++编译器指令,说明了如何生成类和成员函数定义,无法单独编译成obj文件,因此不能将模板成员函数放在独立的实现文件中。模板必须与特定的模板实例化请求一起使用,最简单的方法是将所有的模板信息放在一个头文件中

2017-10-12 10:38:14 4470

原创 python 列表、字典、集合解析

列表解析可以很方便地生成一个有规律的列表,区别于常规的列表定义,其内部可以嵌入一个或者多个for或if子句。根据for、if的计算结果返回一个列表。示例代码:In [1]: a = [i * i for i in range(1, 10, 2)]In [2]: aOut[2]: [1, 9, 25, 49, 81]In [3]: points = [(x, y) for x in [1, 2, 3

2017-10-11 15:15:09 635

原创 Python中获取两数相除的商和余数

方法一:可以使用//求取两数相除的商、%求取两数相除的余数。[/在Python中获取的是相除的结果,一般为浮点数]方法二:使用divmod()函数,获取商和余数组成的元祖实例代码:#!/usr/bin/python3# -*- coding: utf-8 -*- a = int(input(u"输入被除数: "))b = int(input(u"输入除数:"))div = a // b

2017-10-10 23:06:43 83927 6

原创 Python字符串格式化输出

在Python可以使用字符串的format函数替换掉字符串中的{}格式化描述符号从而达到C中的printf效果示例代码:#!/usr/bin/python3amount = float(input("Enter amount: "))inrate = float(input("Enter Interest rate: "))period = float(input("Enter period:

2017-10-10 22:53:07 571

原创 Linux常用命令与快捷键

常用快捷键 快捷键 作用 Ctrl + a 光标移动到行首 Ctrl + e 光标移动到行末 Ctrl + u 删除光标前面的内容 Ctrl + d 删除光标所在位置内容常用命令 命令 意义

2017-10-10 20:44:04 303

原创 活用宏定义

今天在看x86虚拟机源代码的时候,看到一个非常有意思的宏定义,记录下来说不定以后可以参考一下: 作者使用枚举类型定义各个按键的码,但不是常规的做法,而是在其中使用了宏。 在软件开发的过程中,宏因为理解不易,所以是大忌,但是因为其字符替换是在编译前期,活用宏还是可以达到一些意想不到的效果,比如用来写一些模板函数。#include <iostream>#define _KEYS(_) \ _(E

2017-10-09 13:30:21 229

原创 C/C++中的逻辑右移、算数右移、循环左移、循环右移

C/C++语言中逻辑右移和算数右移共享同一个运算符>>,编译器决定使用逻辑右移还是算数右移,根据的是运算数的类型。如果是unsigned则采用逻辑右移,如果是signed则采用算数右移。对于signed类型的数据,如果需要使用算数右移,或者unsigned类型的数据需要使用逻辑右移,都需要进行类型转换。实例代码如下:#include <iostream> int main(){ int a =

2017-10-08 21:39:19 23450 1

原创 vim使用技巧

gg 移动到文件的头部 G 移动到文件的尾部 V 选择模式ggVG 选择文件全部内容,再按下d删除全文

2017-10-02 22:58:28 242

原创 使用pickle将对象存储到文件中时出现 TypeError: write() argument must be str, not bytes

pickle默认操作二进制文件,使用文件函数的时候需要注意,否则出现 TypeError如下,open函数参数更改为 wb 可以正常运行#!/usr/bin/python3# -*- coding: utf-8 -*-# 实现用户的历史记录功能# 使用容量为 n 的队列结构from collections import dequefrom random import randintimpor

2017-10-02 22:33:48 6352

原创 ubuntu安装Jre运行Java程序

直接使用apt安装sudo apt-get install openjdk-8-jre

2017-09-25 16:25:42 621

原创 Python使用'input'读取输入文本出现NameError错误

在Python2中内置函数input()会将输入数据当成指令,从键盘中输入数据应该使用raw_input() 在Python3中input()函数用于从键盘中读取数据 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 4 # 使用 input 会出现NameError 5 message = input("Tell me somet

2017-09-24 02:27:15 7186

原创 使用宏定义进行拼接

今天在翻看别人用C语言写的框架代码的时候注意到了大量的使用宏拼接,以此进行C风格的模板设计。一直没有想到原来C的宏可以这么使用,记录下来张点见识!#include <stdio.h>#define concat(x, y) x ## yint main(){ printf("%d\n", concat(1, 2)); return 0;}

2017-09-22 21:25:33 3441

原创 Python编码错误

SyntaxError: Non-ASCII character ‘\xe4’ in file ./ss.py on line 2, but no encoding declared; see http://python.org/dev/peps/pep-0263/ for detailspython解释器默认以ASCII编码读取源文件,但是在文件中使用了非ASCII字符(检测到\xe4),因此读取

2017-09-21 08:51:45 526

原创 使用DFS进行拓扑排序,如果可以完成的话,输出路径

进行深度优先搜索的时候,如果当前访问的点是已经被访问过的节点的话,说明出现了逆边。因此有环,无法完成拓扑排序。如果可以完成拓扑排序,检测点序列就是一个合法的拓扑排序!#include <iostream>#include <vector>using namespace std;class Solution { vector<vector<int> > graph; vector<

2017-09-16 17:34:17 811

原创 深度优先遍历找出一个无向图中的环

进行深度优先遍历的时候,当考察的点的下一个邻接点是已经被遍历的点,并且不是自己之前的父亲节点的时候,我们就找到了一条逆向边,因此可以判断该无向图中存在环路。visited数组记录了节点的访问状态,visited[i] = 0表示节点i尚未被访问过; visited[i] = 1表示节点i被访问了,但是尚未被检测完毕; visited[i] = 2表示节点i已经被检测完毕了,对于检测完毕了的节点,其所

2017-09-16 17:05:46 9994 2

空空如也

空空如也

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

TA关注的人

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