小编Bit*_*rex的帖子

列表清单和"解压缩的值太多"

我正在尝试在列表列表中使用以下代码来创建新的列表列表,其新元素是旧列表中列表中元素的特定组合...如果这有意义!这是代码:

 for index, item in outputList1:
    outputList2 = outputList2.append(item[6:].extend(outputList1[index+1][6:]))
Run Code Online (Sandbox Code Playgroud)

但是,我收到"解压缩的值太多"错误.我似乎甚至得到以下代码的错误:

    for index, item in outputList1:
       pass
Run Code Online (Sandbox Code Playgroud)

我能做错什么?

python

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

装配8x8四象限乘法算法

在"微处理器的音乐应用"一书中,作者给出了以下算法,用两位8位有符号整数和16位有符号结果进行4象限乘法运算:

在原始操作数上进行无符号乘法运算.然后为了校正结果,如果被乘数符号为负,则无符号单精度从原始16位结果的前8位中减去乘数.如果乘数符号也为负,则无符号单精度从原始16位结果的前8位中减去被乘数.

我尝试在汇编程序中实现它,似乎无法使它工作.例如,如果我无符号乘以-2倍-2,则二进制的原始结果为B11111100.00000100.当我根据算法从前8位中减去B1111110两次时,我得到的是B11111110.00000100,而不是B00000000.00000100.感谢您对我可能出错的地方有所了解!

编辑 - 代码:

    #define smultfix(a,b)       \
    ({                      \
    int16_t sproduct;               \
    int8_t smultiplier = a, smultiplicand = b;  \
    uint16_t uproduct = umultfix(smultiplier,smultiplicand);\
    asm volatile (                  \
    "add %2, r1 \n\t"               \
    "brpl smult_"QUOTE(__LINE__)"\n\t"      \
    "sec                 \n\t"      \
    "sbc  %B3, %1            \n\t"      \
    "smult_"QUOTE(__LINE__)": add %1, r1 \n\t"  \
    "brpl send_"QUOTE(__LINE__)"  \n\t"     \
    "sec                 \n\t"      \
    "sbc  %B3, %2            \n\t"      \
    "send_"QUOTE(__LINE__)": movw %A0,%A3 \n\t" \
    :"=&r" (sproduct):"a" (smultiplier), "a" (smultiplicand), "a" (uproduct)\
    );                      \
    sproduct;                   \ …
Run Code Online (Sandbox Code Playgroud)

math binary assembly

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

Python __init__语法

在学习Python时,我对使用继承的类初始化语法感到困惑.在各种例子中,我看到过如下内容:

class Foo(Bar):
    def __init__(self, arg, parent = None):
        Bar.__init__(self, parent)
        self.Baz = arg
        etc.
Run Code Online (Sandbox Code Playgroud)

虽然有时它只是

class Foo(Bar):
    def __init__(self, arg):
        Bar.__init__(self)
        etc.
Run Code Online (Sandbox Code Playgroud)

什么时候想确保使用"parent"作为初始化函数的参数?谢谢.

python constructor class

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

Windows上的Python成像库show()

我正在编写一个脚本,从Web下载各种图像文件,然后使用PIL对它们进行一些处理.该脚本使用urlretreive将图像转储到临时文件,现在我只是尝试使用PIL image.show()方法在查看器中打开它们.以下是代码的相关部分:

def main():

link_queue = Queue.Queue()
image_queue = Queue.Queue()

links = get_image_links('test_search')

for link in links:
    link_queue.put(link)

for image in xrange(len(links)):
    #create image downloading threads
    t = ImageDownloadingThread(link_queue, image_queue)
    t.setDaemon(True)
    t.start()

link_queue.join()

image_data = image_queue.get()
image_file, image_url = image_data[0][0], image_data[1][0] 
#get the first image downloaded and take a look
image = Image.open(image_file)
image.show()
Run Code Online (Sandbox Code Playgroud)

不幸的是,虽然临时文件似乎加载正常(Image.open没有返回任何错误),但是当调用image.show()时,我在查看器中什么也得不到:

在此输入图像描述

我也尝试打开本地非临时文件,以防出现问题,并获得相同的结果.操作系统是Windows Vista 32位SP2.关于可能出错的任何想法?

python python-imaging-library

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

使用PyQt创建带滑块的模型/视图界面

我有一个由多个滑块组成的GUI,而不是在底层数据更改时手动更新滑块,我想将数据存储在QAbstractListModel的子类中,并自动更新滑块位置.我的子类看起来像这样:

from PyQt4 import QtCore

class myDataModel(QtCore.QAbstractListModel):
    def __init__(self, initData, parent=None):
        super(myDataModel, self).__init__(parent)
        self.__data = initData

    def data(self, index, role=QtCore.Qt.DisplayRole):
        if not index.isValid():
            return None

        if index.row() > len(self.__data):
            return None

        if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole:
            return self.__data[index.row()]

        return None

    def rowCount(self, parent=QtCore.QModelIndex()):
        return len(self.__data)

    def setData(self, index, value, role=QtCore.Qt.EditRole):
        if not index.isValid() or role != QtCore.Qt.EditRole:
            return False

        self.__data[index.row()] = value
        self.dataChanged.emit(index, index)
        return True
Run Code Online (Sandbox Code Playgroud)

如何将此模型连接到GUI中的滑块,以便在模型中的数据更改时,滑块更改,反之亦然?

编辑:这是我一直在研究的基本界面的模型: 在此输入图像描述

编辑:我仍然无法让这个工作.这是我的模型类:

class dataModel(QtCore.QAbstractListModel):

    def __init__(self, initData, parent=None):
        super(dataModel, self).__init__(parent) …
Run Code Online (Sandbox Code Playgroud)

python model-view-controller pyqt

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

file.close()Python中with语句内的异常处理

我知道在Python中该file.close()方法没有任何返回值,但我找不到任何关于在某些情况下它是否会抛出异常的信息.如果它也没有这样做,那么我想这个问题的第二部分是多余的.

如果确实如此,那么处理该file.close()方法的"正确"方法是什么?在用于打开文件的"with"语句中抛出异常?

是否存在file.close()文件打开并成功读取后立即失败的情况?

python file-handling python-3.x

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

直接数字合成中的线性插值

我正在研究C中的微控制器DDS项目,并且在确定如何计算线性插值以平滑输出值方面遇到了一些麻烦.现在的程序
使用24位累加器的前8位作为8位输出值数组的索引.我需要提出一个函数,它将占用累加器的中间和低位字节,并在数组中的"previous"和"next"值之间生成一个值.这对于快速硬件来说足够简单,但由于我使用的是微控制器,我真的需要避免做任何浮点运算或划分!

有了这些限制,我不确定如何从我的两个8位输入数字和累加器的低2个字节获得8位插值,这表示两个输入值之间的"距离".提前感谢任何建议!

澄清

DDS =直接数字合成

在DDS中,使用相位累加器从查找表生成波形.相位累加器通常包含整数分量和分数分量.整数组件用作查找表的索引.在简单的DDS实现中,忽略小数部分,但是对于更高质量的输出,小数分量用于在相邻查找表值之间进行内插(通常只是线性内插).对于上述问题,我们正在研究如何在给定分数f,其中的两个查找表值之间有效地执行此线性插值0 <= f < 1.

c avr linear-interpolation

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

QtDesigner - 将拆分器布局添加到更大的布局

我是 Qt Designer 的新手,我正在处理一个主窗口,我想在其中右侧放置两个列表小部件,放置在垂直拆分器中,然后在左侧放置一个较大的文本浏览器小部件,然后本身在带有列表小部件的拆分器中。所以列表小部件的相对大小可以垂直调整大小,文本浏览器和其他两个小部件之间的水平空间也可以调整大小。

我首先尝试在垂直拆分器中布置右侧的两个小部件,然后选择布局,如下所示:

在此处输入图片说明

问题是,既然两个列表小部件都在拆分器布局中,我就不能将该布局添加到任何其他更大的布局中。所有选项都显示为灰色。如果我只是做一个标准的水平或垂直布局,那么就可以用较小的布局来制作更大的布局。那么在使用拆分器布局时如何做到这一点呢?谢谢!

pyqt qt-designer

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

如何确定是否已使用placement new放置对象

使用placement new语法,我应该能够做到这样的事情:

char *buffer  = new char[sizeof(MyClass)]; //pre-allocated buffer
MyClass *my_class = new (buffer) MyClass; //put da class there 
Run Code Online (Sandbox Code Playgroud)

现在假设我只做第一行,但不是第二行.是否有一种方法可以在代码中确定缓冲区是否已正确分配,但是尚未在那里实例化MyClass类型的对象?

c++ placement-new

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

使用 Python ctypes 在整数格式之间进行转换

如何使用 ctypes“cast”函数将一种整数格式转换为另一种整数格式,以获得与 C 中相同的效果:

int var1 = 1;
unsigned int var2 = (unsigned int)var1;
Run Code Online (Sandbox Code Playgroud)

python ctypes casting

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