我正在尝试在列表列表中使用以下代码来创建新的列表列表,其新元素是旧列表中列表中元素的特定组合...如果这有意义!这是代码:
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)
我能做错什么?
在"微处理器的音乐应用"一书中,作者给出了以下算法,用两位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) 在学习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"作为初始化函数的参数?谢谢.
我正在编写一个脚本,从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.关于可能出错的任何想法?
我有一个由多个滑块组成的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中该file.close()
方法没有任何返回值,但我找不到任何关于在某些情况下它是否会抛出异常的信息.如果它也没有这样做,那么我想这个问题的第二部分是多余的.
如果确实如此,那么处理该file.close()
方法的"正确"方法是什么?在用于打开文件的"with"语句中抛出异常?
是否存在file.close()
文件打开并成功读取后立即失败的情况?
我正在研究C中的微控制器DDS项目,并且在确定如何计算线性插值以平滑输出值方面遇到了一些麻烦.现在的程序
使用24位累加器的前8位作为8位输出值数组的索引.我需要提出一个函数,它将占用累加器的中间和低位字节,并在数组中的"previous"和"next"值之间生成一个值.这对于快速硬件来说足够简单,但由于我使用的是微控制器,我真的需要避免做任何浮点运算或划分!
有了这些限制,我不确定如何从我的两个8位输入数字和累加器的低2个字节获得8位插值,这表示两个输入值之间的"距离".提前感谢任何建议!
澄清
DDS =直接数字合成
在DDS中,使用相位累加器从查找表生成波形.相位累加器通常包含整数分量和分数分量.整数组件用作查找表的索引.在简单的DDS实现中,忽略小数部分,但是对于更高质量的输出,小数分量用于在相邻查找表值之间进行内插(通常只是线性内插).对于上述问题,我们正在研究如何在给定分数f,其中的两个查找表值之间有效地执行此线性插值0 <= f < 1
.
我是 Qt Designer 的新手,我正在处理一个主窗口,我想在其中右侧放置两个列表小部件,放置在垂直拆分器中,然后在左侧放置一个较大的文本浏览器小部件,然后本身在带有列表小部件的拆分器中。所以列表小部件的相对大小可以垂直调整大小,文本浏览器和其他两个小部件之间的水平空间也可以调整大小。
我首先尝试在垂直拆分器中布置右侧的两个小部件,然后选择布局,如下所示:
问题是,既然两个列表小部件都在拆分器布局中,我就不能将该布局添加到任何其他更大的布局中。所有选项都显示为灰色。如果我只是做一个标准的水平或垂直布局,那么就可以用较小的布局来制作更大的布局。那么在使用拆分器布局时如何做到这一点呢?谢谢!
使用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类型的对象?
如何使用 ctypes“cast”函数将一种整数格式转换为另一种整数格式,以获得与 C 中相同的效果:
int var1 = 1;
unsigned int var2 = (unsigned int)var1;
Run Code Online (Sandbox Code Playgroud)
?
python ×6
pyqt ×2
assembly ×1
avr ×1
binary ×1
c ×1
c++ ×1
casting ×1
class ×1
constructor ×1
ctypes ×1
math ×1
python-3.x ×1
qt-designer ×1