小编wap*_*p26的帖子

为什么切片和范围上限是独占的?

免责声明:我不是问是否在上限stop的争论slice()以及range()为异或如何使用这些功能.

对函数rangeslice函数的调用以及切片表示法[start:stop]都是指整数集.

range([start], stop[, step])
slice([start], stop[, step])
Run Code Online (Sandbox Code Playgroud)

在所有这些中,stop排除整数.

我想知道为什么语言是这样设计的.

是它使stop当等于在表示整数集合元素的数量start等于0或省略?

它有:

for i in range(start, stop):
Run Code Online (Sandbox Code Playgroud)

看起来像下面的C代码?

for (i = start ; i < stop; i++) {
Run Code Online (Sandbox Code Playgroud)

python language-design slice

33
推荐指数
5
解决办法
1万
查看次数

C:错误嵌套的开关/外壳块令人惊讶地工作

我刚刚在我维护的一些代码中发现了以下部分:

switch (m) {
    case 62: { // opening
        // some declarations
        // do some stuff
        break;
    case 63:
        // do some other stuff
        break;
        }      // closing
    default:
        // default stuff
        break;
 }   
Run Code Online (Sandbox Code Playgroud)

块打开是为了声明一些局部变量,但是右括号被错误地放置并且发生在后面case 63.

我几个月都没有注意到这一点,因为它在Visual Studio 2010中编译得很好.我已经尝试过调试它,两种情况都可以正常工作.

怎么会这样 ?这是正确的C语法吗?

c visual-studio-2010

11
推荐指数
2
解决办法
295
查看次数

Emacs:用per-match提示替换regexp

据说Emacs 23.3允许通过\?语法在每次匹配时提示替换字符串的一部分.

应该在迷你缓冲区中提示字符串.

此功能在此处描述:http: //www.gnu.org/software/emacs/manual/html_node/emacs/Regexp-Replace.html

(query-replace-regexp "^" "\\?")在Windows上尝试使用Emacs 23.3进行简单替换,但是我得到了"替换文本中无效使用`\"错误.

我对如何使用此功能有任何想法?

注意:我可以使用,\,(read-from-minibuffer "? ")但这样做会在突出显示匹配之前提示输入字符串.

我认为这不重要,但我的Emacs版本如下:GNU Emacs 23.3.1(i386-mingw-nt6.1.7601).

regex emacs

6
推荐指数
1
解决办法
570
查看次数

检查无符号是否小于零

玩一些来源发现这样的代码:

void foo(unsigned int i)
{
 if(i<0)
     printf("Less then zero\n");
 else
     printf("greater or equ\n");
}

int main()
{
    int bar = -2;
    foo(bar);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我认为没有任何意义,但可能有一些案例(安全性?)使这个检查变得敏感?

c

6
推荐指数
1
解决办法
7133
查看次数

如何在VHDL中将整数数组指定为泛型?

我正在尝试为基于SPI的IO扩展器创建通用驱动程序.我们的想法是在实例化中传递初始化值,该初始化值与请求的IO设置相匹配.

我目前的尝试看起来像这样:

entity max7301_simple is
   generic ( 
        IO_cfg : array (1 to 7) OF integer range 0 to 255 := (16#55#, 16#55#, 16#55#, 16#55#, 16#55#, 16#55#, 16#55#)
           );
     port  (
        -- Application interface :
        clk_i       :   in std_logic;        -- input clock, xx MHz.
        rst_i       :   in std_logic;        -- sync reset.
        en_i        :   in std_logic;        -- enable, forces re-init of pins on MAX7301.
        output_i    :   in std_logic_vector(27 downto 0);   --data to write to output pins on MAX7301
        irq_o       :   out std_logic; …
Run Code Online (Sandbox Code Playgroud)

generics instantiation vhdl

6
推荐指数
2
解决办法
2万
查看次数

VHDL递归组件/实体

我希望这是可能的.我希望能够像这样编写递归代码:

entity myEntity
    generic (
      size : natural  -- a power of 2
    )
    port (
       -- whatever
    );
end;

architecture structural of myEntity is
begin
    smallerEntity : entity component.myEntity(structural)
        generic map (
            size => size/2
        );
        port map ( 
            ... 
        );
end;
Run Code Online (Sandbox Code Playgroud)

因此,每个体系结构都会实例化一个较小的版本.在通用"大小"的某个值,我希望有一个不同的实现.

这可以通过配置来完成吗?如果是这样,怎么样?

至于为什么我希望能够这样做 - 所以我可以构建可重复使用的代码来计算FFT/DCT和类似的变换.

recursion configuration vhdl

6
推荐指数
1
解决办法
3055
查看次数

有关从C迁移到C++的指南吗?

我想知道您是否有一些链接指向从C迁移到C++的指南.

我主要感兴趣的是检查C代码中可能存在编译器无法检测到的问题的结构?什么是变通方法?

注意:请不要回答编译器能够检测到的事情.

c c++ migration

5
推荐指数
1
解决办法
2797
查看次数

Python:快速且简约的方式来压缩和配对两个列表中的匹配元素

我有:

>>> As = [1, 2, 5, 6]
>>> Bs = [2, 3, 4, 5]
Run Code Online (Sandbox Code Playgroud)

我想要zip_fn以下内容:

>>> Rs = zip_fn(As, Bs, cmp)
>>> Rs
[(1, None), (2, 2), (None, 3), (None, 4), (5, 5), (6, None)]
Run Code Online (Sandbox Code Playgroud)

换句话说,给定两个任意序列AsBs,我想生成一个元组列表,Rs以便将满足cmp(a, b) == 0条件的选择配对到它们自己的元组中(a, b),但是将匹配的对象AsBs不匹配的对象分别作为(a, None)和输出(None, b)

一些要点:

  • 我不担心重复As或不会重复的事情Bs
  • Rs 可以是产生相同序列的迭代器。
  • 的顺序Rs不重要。

我已经使用简单直接的预排序循环实现了满足功能要求的内容,但大约需要30行。我正在寻找可以更好地利用内置itertools函数或esque库的功能,以缩短代码长度并加快运行速度(C本机)。

编辑:

我应该更清楚地说明这一点。为了简洁起见,尽管在上面的示例中使用了纯数字列表,但是我实际使用的元素是元组,并且cmp …

python

5
推荐指数
1
解决办法
1812
查看次数

VHDL中的通用包

是否可以拥有通用包装?这意味着当我实例化实体时,我提供了一些泛型,而包将取决于它.

我有一个块,我想多次使用,每次都有不同的包(即不同的参数)

我必须使用包,因为我想使用数组数组,我只能用包来做.

vhdl

5
推荐指数
1
解决办法
6533
查看次数

"模板"VHDL实体

这让我有一段时间的烦恼,但是有可能用VHDL描述类似于模板在C++中工作的实体(或者用于较小的扩展泛型吗?).只是在合成/编译过程中只保留实际的端口类型?

一个例子是多路复用器,比如我有一个4输入多路复用器,现在我有几个总线大小,我使用这个多路复用器,-4,6,7,8-.目前我为每种不同的总线大小写了一个不同的多路复用器; 但是输出只是转发的所选输入之一,因此与总线的类型相同.

这似乎过于冗余且容易出错(在正确的时间选择正确的多路复用器,使它们全部保持一致,在更改总线大小时更新它们).有没有办法参数化这个?

下面的非通用版本显示了这个想法.

entity mux_6bit_4input is
    port (  input_0 : in    std_logic_vector (5 downto 0);
        input_1 : in    std_logic_vector (5 downto 0);
        input_2 : in    std_logic_vector (5 downto 0);
        input_3 : in    std_logic_vector (5 downto 0);
        sel : in    std_logic_vector (1 downto 0);
        output  : out   std_logic_vector (5 downto 0)
    );
end entity mux_6bit_4input;
Run Code Online (Sandbox Code Playgroud)

vhdl generic-programming

3
推荐指数
1
解决办法
1789
查看次数

访问OrderedDict键,如Python中的属性

我想写一个容器类

  1. 允许索引(在字典样式中),例如data['a'],属性类访问,例如data.a; 这是在这里解决的
  2. 保留添加条目的顺序,例如通过子类化collections.OrderedDict; 这是在这里解决的

我将1.的解决方案改为子类collections.OrderedDict而不是dict它但不起作用; 见下文.

from collections import OrderedDict

class mydict(OrderedDict):
    def __init__(self, *args, **kwargs):
        super(mydict, self).__init__(*args, **kwargs)
        self.__dict__ = self

D = mydict(a=1, b=2)

#D['c'] = 3 # fails
D.d    = 4

#print D    # fails
Run Code Online (Sandbox Code Playgroud)

带有失败注释的两行会导致以下错误:

    print D
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/collections.py", line 176, in __repr__
    return '%s(%r)' % (self.__class__.__name__, self.items())
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/collections.py", line 113, in items
    return [(key, self[key]) for key in self] …
Run Code Online (Sandbox Code Playgroud)

python dictionary

3
推荐指数
1
解决办法
2431
查看次数

构建直方图

我正在尝试通过python制作直方图.我从以下代码段开始:

def histogram(L):
    d = {}
    for x in L:
        if x in d:
            d[x] += 1
        else:
            d[x] = 1
    return d
Run Code Online (Sandbox Code Playgroud)

我理解它使用字典功能来解决问题.但我对第4行感到困惑:if x in d:

d是要构造的,还没有什么,所以如果x在d中怎么样?

python histogram

1
推荐指数
1
解决办法
4038
查看次数