自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 pyd文件要和python版本相对应

为了在win10下使用pybind,就要用cmake对要使用的example.cpp文件build,生成example.pyd文件。pyd 文件是由非 Python,其它编程语言编写 (或直接把 .py 文件转换成 .c 中间文件) 编译生成的 Python 扩展模块,是类似 .so .dll 动态链接库的一种 Python 文件。pyd文件仅能在win平台下使用。我在测试中所生成的example.pyd文件全名为example.cp37-win_amd64.pyd(中间字段的意思详见https://b

2020-08-09 15:13:24 2930 1

原创 Linux下Python导入package出错:ModuleNotFoundError: No module named ‘xxx‘

首先搞清楚,在使用import语句时发生了什么。每一个包都是一个带有 __init__.py 的目录,该文件定义了包的属性和方法,然后是一些模块文件和子目录,假如子目录中也有__init__.py 文件,那么它就是这个包的子包。方法一:修改环境变量。在命令行环境下使用以下命令即可查看当前Python环境下的环境变量:import syssys.path然后使用命令sys.path.append('XXXXXXXXXXXXXXXXX')把包的位置加入到环境变量中即可。方法二:添加搜索路径。在使用

2020-08-08 03:04:44 1851

原创 python闭包到底有什么作用

本文转载于https://blog.csdn.net/qq_27825451/article/details/79964128,并对代码格式做了修正。1、global关键字的作用如果在函数中需要修改全局变量,则需要使用该关键字,具体参见下面例子variable=100def function(): print(variable) #在函数内不对全局变量修改,直接访问是没问题的,不会报错function() #输出100variable=100def function(): res

2020-07-04 09:48:59 1268

原创 Carla仿真脚本问题一:Python回调函数的认识

我希望仿真的传感器切换功能是这样的:保留manual_control.py的切换传感器功能,但是切换后不销毁上一个传感器,切换仅是把当前传感器的数据以图像的方式展示在屏幕上,其他的传感器依旧接受数据。所以,传感器在创建后就不会被销毁(除了退出时),始终调用listen函数监听从服务端发送的数据。因此我写了一个函数,用于创建传感器并监听数据:def set_all_sensor(self): for i in range(len(self.sensors)): se

2020-06-12 04:53:55 312

原创 Artificial Intelligence for Robotics Lesson 2: Kalman Filters

# Write a function 'kalman_filter' that implements a multi-# dimensional Kalman Filter for the example givenfrom math import *class matrix: # implements basic operations of a matrix class...

2019-08-07 02:19:39 140

原创 Artificial Intelligence for Robotics Lesson 1: Localization

# The function localize takes the following arguments:## colors:# 2D list, each entry either 'R' (for red cell) or 'G' (for green cell)## measurements:# list of measurements taken ...

2019-07-29 04:14:05 281

转载 取模与取余

一、定义对于整型数a,b来说,取模运算或者求余运算的方法都是:1.求整数商: c = a/b;2.计算模或者余数: r = a - c*b.求模运算和求余运算在第一步求整数商时不同:取余运算在计算c的值时,向0方向舍入(fix()函数);取模运算在计算c的值时,向无穷小方向舍入(floor()函数)。例如:计算-7 Mod 4那么:a = -7;b = 4;第一步:求整数商c,如...

2019-07-26 17:12:01 405

原创 Linux下一些文件的作用

/usr :包含了命令库文件和在通常操作中不会修改的文件。这个目录位类似Windows上面的”Program Files”目录(安装程序的时候,默认就是安装在此文件内部某个子文件夹内。输入命令后系统默认执行/usr/bin下的程序)当然,前提是这个目录的路径已经被添加到了系统的环境变量中。此目录通常也会挂载一个独立的磁盘分区,它应保存共享只读类文件,这样它可以被运行Linux的不同主机挂载。/...

2019-07-06 21:51:53 156

原创 python调用cv2.findContours时报错:ValueError: not enough values to unpack (expected 3, got 2)

作者:醉雨轩Y来源:CSDN原文:https://blog.csdn.net/miao0967020148/article/details/88623631试图跑项目时,总是报错:刚开始以为是pycharm环境没搭好或是第三方库版本太低,在尝试过许多次卸载重装和更换解释器后,终于百度到了答案。原来是opencv版本更新后函数的返回值个数有变。OpenCV旧版,4.0以下的版本,返回三...

2019-04-03 12:13:05 2624 2

原创 与python -m命令有关的问题

一、与直接执行的区别命令行执行.py文件时有两种加载方式:python xxx.py与python -m xxx。这是两种加载py文件的方式:前者叫做直接运行,此时脚本的__name__为'main';后者把模块当作脚本来启动,相当于import,此时脚本的__name__为'xxx'。这种启动方式时最好不要带后缀.py。不同的加载py文件的方式,主要是影响sys.path这个属性。s...

2019-04-02 21:12:22 9864 3

原创 模块(module)与包(package)

1.模块:一个.py文件使用模块最大的好处是大大提高了代码的可维护性。其次,编写代码不必从零开始。当一个模块编写完毕,就可以被其他地方引用。我们在编写程序的时候,也经常引用其他模块,包括Python内置的模块和来自第三方的模块。使用模块还可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要...

2019-04-02 14:52:12 412

原创 项目所需Python第三方库

NumPy:(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。包含:一个强大的N维数组对象 ndarray;广播功能函数;整合 C/C++/Fortran 代码的工具;线性代数、傅里叶变换、随机数生成等功能。Pandas :基于 NumPy 的一个开源 Python 库,它被广泛用于快速分析数据,以...

2019-04-01 19:53:32 1571

原创 git使用

Git的名词解释:工作区:就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区;版本库:工作区有一个隐藏目录.git,是Git的版本库。版本库里存了很多东西,其中最重要的就是称为stage(或者叫index)的暂存区,还有Git为我们自动创建的第一个分支master,以及指向master的一个指针叫HEAD。初始化Git仓库:使用git init命令。添加文件到Git仓...

2019-03-29 16:31:28 92

原创 Linux下线程池的实现

之前用epoll和进程池实现的简单的文件传输功能有一个缺点,就是没有排队功能。当进程池中所有进程都在工作,后到来的请求可能因为timing合适,正好有进程空闲,反而比先到的请求更早得到相应。为了实现“先请求客户端,优先服务”的功能,本文用进程池和任务队列实现了排队功能,让客户端遵从先到先得的顺序进行任务传输。一、概念分析线程池的实现类似于生产者消费者模型。关键在于建立一个任务队列,当有客户端发...

2019-03-20 20:16:37 273

原创 Linux 文件描述符 文件表项 i节点结构

Linux的VFS(虚拟文件系统)学习起来很痛苦,看源码不太明智,看完分析完就忘且太浪费时间,懂了后也无法应用在实际场合中。所以这里只是讨论下文件描述符,文件表项(file结构体)和inode,理清实现的思路。一、概念首先区分文件描述符和打开的文件。内核维护了三个数据结构,分别是:进程级的文件描述符表(即每个进程一个);系统级的打开文件表(即该表在整个内核中只有一个),表项为struct ...

2019-03-19 00:24:07 1129

原创 使用epoll和进程池实现具有简单的数据传输功能的FTP文件服务器

一、大致思路如图所示,为线程池的基本框架首先定义服务器端的数据类型struct data{ pid_t pid; //进程pid int fd; //管道id short busy; //进程是否忙碌 0非忙碌 1忙碌}父进程流程初始化管道,创建子进程,每个子进程等待父进程发送任务初始化socket,bind端口,listen初...

2019-03-18 14:54:55 925

原创 pthread_cond_wait

int pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex)int pthread_cond_timedwait(pthread_cond_t *cond, pthread_mutex_t *mutex, const struct timespec *abstime)等待条件有两种方式:条件等待pthread_con...

2019-03-13 22:38:24 178

原创 同步、异步、阻塞、非阻塞与5种I/O模型

一、概念1.同步与异步同步(synchronous )和异步(asynchronous)关注的是消息通信机制 ,主体是内核。同步:在发出一个调用后,没得到结果之前,该调用就不返回。但是一旦调用返回,就得到返回值了。换句话说,就是由调用者主动等待这个调用的结果。异步:调用在发出之后,这个调用就直接返回了,所以没有返回结果。换句话说,当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用...

2019-03-12 22:56:39 266

原创 [LeetCode-CN]只出现一次的数字

给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4思路:方法一:设置两个指针,一前一后。当两者不等时,后指针后移。当两者相等,则在两个指针位上标记flag,下次不...

2019-03-12 14:45:29 135

原创 使用select实现进程间的即时聊天

首先使用mkfifo命令新建两个管道文件1.fifo和2.fifo。首先画图分析:如图所示,1.fifo的读端是进程1,写端是进程2;2.fifo的读端是进程2,写端是进程1。且进程1与2均从标准输入流读取数据。所以要注意,进程1的读操作描述符字为0与1.fifo;进程2的读操作描述符字为0与2.fifo.1号和2号的命令行参数均为1.fifo 2.fifo1号的代码为:#includ...

2019-02-26 22:04:15 309

原创 Linux下关闭标准输出并直接输出到文件中,再重新打开标准输出

代码如下: int fd=open("test.txt",O_RDWR|O_CREAT); printf("\n"); //回车不可少。只有按下回车后,数据才被送往键盘缓冲区,形成输入流 int stdout_cp=100; //先用dup2(...)函数复制stdout文件描述符1,然后复制回去 dup2(1,stdout_cp); close(1); ...

2019-02-22 16:42:38 2942

原创 Clion 中无法用相对路径读入文件

代码中有这一句:int fd1=open("./a.txt",O_RDONLY);printf("fd1=%d\n",fd1);在clion中运行,输出的是fd1=-1。而在vim中运行同一段代码,fd1=3。在将代码的相对路径改为绝对路径后,即由./a.txt改为/home/djw931017/dup/a.txt后,在clion中输出又与vim相同。在搜索后,才发现原因:使用CLion...

2019-02-20 23:26:45 4693 4

原创 st_atime、st_mtime和st_ctime

struct stat 定义:struct stat { dev_t st_dev; /* ID of device containing file -文件所在设备的ID*/ ino_t st_ino; /* inode number -inode节点号*/ mode_t st_mode; /* 文件的类...

2019-02-20 14:55:12 10450 1

原创 struct passwd与struct group

一、struct passwd#include <sys/types.h>#include <pwd.h>struct passwd{ char *pw_name; /* 用户登录名 */ char *pw_passwd; /* 密码(加密后) */ __uid_t p

2019-02-13 23:51:45 1975

原创 st_mode分析

在Linux中,可以利用stat()函数来获取一个文件的状态。#include <sys/stat.h>#include <unistd.h> int stat(const char *file_name, struct stat *buf);这个函数执行成功返回0,失败返回-1。取得的文件状态存放在b

2019-02-11 22:29:31 3148 1

原创 warning: deprecated conversion from string constant to ‘char*’

环境:linux下使用g++编译报错:warning: deprecated conversion from string constant to ‘char*’意思:不接受字符串(string)转换为字符串常量(char*)报错代码:#include <iostream>using namespace std;void print(char *s){ cout<&...

2018-02-25 16:53:09 1950

原创 对于指针、引用的一些新认识

函数的形参有两种写法:int swap ( int& x, int& y, int& z); //三个参数均为引用类型int swap ( int* x, int* y, int* z); //三个参数均为指针类型引用类型和指针类型,两者有所不同。 引用是给变量取个别名,其作用就如同typedef一样。用引用作形参时在调用函数里就像操作实参一样,不需要考虑实参的地址问题,不做任何处理直接使用。

2017-03-25 15:30:35 247

原创 07-图5 Saving James Bond - Hard Version (30分)

This time let us consider the situation in the movie “Live and Let Die” in which James Bond, the world’s most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land

2017-03-12 21:33:51 516 2

原创 07-图4 哈利·波特的考试 (25分)

哈利·波特要考试了,他需要你的帮助。这门课学的是用魔咒将一种动物变成另一种动物的本事。例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等。反方向变化的魔咒就是简单地将原来的魔咒倒过来念,例如ahah可以将老鼠变成猫。另外,如果想把猫变成鱼,可以通过念一个直接魔咒lalala,也可以将猫变老鼠、老鼠变鱼的魔咒连起来念:hahahehe。现在哈利·波特的手里有一本教材,里面列出

2017-03-05 22:17:30 652

原创 06-图3 六度空间 (30分)

“六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。图1 六度空间示意图“六度空间”理论虽然得到广泛的认同,并且正在得到越来越多的应用。但是数十年来,试图验证这个理论始终是许多社会学家努力追求的目标

2017-02-24 22:56:22 460

原创 06-图2 Saving James Bond - Easy Version (25分)

This time let us consider the situation in the movie "Live and Let Die" in which James Bond, the world's most famous spy, was captured by a group of drug dealers. He was sent to a small piece of land

2017-02-23 20:45:59 927 1

原创 06-图1 列出连通集 (25分)

给定一个有NN个顶点和EE条边的无向图,请用DFS和BFS分别列出其所有的连通集。假设顶点从0到N-1N−1编号。进行搜索时,假设我们总是从编号最小的顶点出发,按编号递增的顺序访问邻接点。输入格式:输入第1行给出2个整数NN(0<N\le 100N≤10)和EE,分别是图的顶点数和边数。随后EE行,每行给出一条边的两个端点。每行中的数字之间用1空格分隔。输出格式:

2017-02-18 19:46:21 425

原创 05-树10 Huffman Codes (30分)

In 1953, David A. Huffman published his paper "A Method for the Construction of Minimum-Redundancy Codes", and hence printed his name in the history of computer science. As a professor who gives the f

2017-02-08 21:46:33 347

原创 05-树9 File Transfer (25分)

We have a network of computers and a list of bi-directional connections. Each of these connections allows a file transfer from one computer to another. Is it possible to send a file from any computer

2017-01-26 15:22:50 364

原创 05-树8 堆中的路径 (25分)

将一系列给定数字插入一个初始为空的小顶堆H[]。随后对任意给定的下标i,打印从H[i]到根结点的路径。输入格式:每组测试第1行包含2个正整数NN和MM(\le 1000≤1000),分别是插入元素的个数、以及需要打印的路径条数。下一行给出区间[-10000, 10000]内的NN个要被插入一个初始为空的小顶堆的整数。最后一行给出MM个下标。输出格式:对输入中

2017-01-21 12:20:24 441

原创 04-树7 二叉搜索树的操作集 (30分)

本题要求实现给定二叉搜索树的5种常用操作。函数接口定义:BinTree Insert( BinTree BST, ElementType X );BinTree Delete( BinTree BST, ElementType X );Position Find( BinTree BST, ElementType X );Position FindMin( BinTree

2017-01-09 01:04:53 329

原创 04-树6 Complete Binary Search Tree (30分)

A Binary Search Tree (BST) is recursively defined as a binary tree which has the following properties:二叉搜索树(BST)被递归地定义为具有以下属性的二叉树:The left subtree of a node contains only nodes with keys

2017-01-02 21:47:04 695

原创 04-树5 Root of AVL Tree (25分)

An AVL tree is a self-balancing binary search tree. In an AVL tree, the heights of the two child subtrees of any node differ by at most one; if at any time they differ by more than one, rebalancing is

2016-12-30 20:57:00 462

原创 04-树4 是否同一棵二叉搜索树 (25分)

给定一个插入序列就可以唯一确定一棵二叉搜索树。然而,一棵给定的二叉搜索树却可以由多种不同的插入序列得到。例如分别按照序列{2, 1, 3}和{2, 3, 1}插入初始为空的二叉搜索树,都得到一样的结果。于是对于输入的各种插入序列,你需要判断它们是否能生成一样的二叉搜索树。输入格式:输入包含若干组测试数据。每组数据的第1行给出两个正整数NN (\le 10≤10)和LL,分别是每

2016-12-20 20:09:06 323

原创 03-树3 Tree Traversals Again (25分)

An inorder binary tree traversal can be implemented in a non-recursive way with a stack. For example, suppose that when a 6-node binary tree (with the keys numbered from 1 to 6) is traversed, the stac

2016-12-14 19:22:05 387

空空如也

空空如也

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

TA关注的人

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