使用Python数组,我可以使用以下(当然不是完美的Pythonic)命令初始化32,487,834整数数组(在文件HR.DAT中找到):
F = open('HR.DAT','rb')
HR = array('I',F.read())
F.close()
Run Code Online (Sandbox Code Playgroud)
我需要在ctypes中做同样的事情.到目前为止,我所拥有的最好的是:
HR = c_int * 32487834
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用HR.DAT初始化数组的每个元素.有什么想法吗?
谢谢,
麦克风
出于某种原因,pyparsing不会为我的字符串嵌套列表:
rank = oneOf("2 3 4 5 6 7 8 9 T J Q K A")
suit = oneOf("h c d s")
card = rank + Optional(suit)
suit_filter = oneOf("z o")
hand = card + card + Optional(suit_filter)
greater = Literal("+")
through = Literal("-")
series = hand + Optional(greater | through + hand)
series_split = Literal(",")
hand_range = series + ZeroOrMore(series_split + series)
hand_range.parseString('22+,AKo-ATo,KQz')
>> ['2', '2', '+', ',', 'A', 'K', 'o', '-', 'A', 'T', 'o', ',', 'K', 'Q', 'z'] …Run Code Online (Sandbox Code Playgroud) 我在编写NPPExec脚本(用于Notepad ++)时无法使用Microsoft的csc.exe编译C#源代码.我没有问题让MinGW启动并运行我的c ++东西,但是相同的脚本结构似乎对C#不起作用.有没有人有一个有效的C#NPPExec脚本?
三个快速笔记:
虽然我的mingw安装到没有空格的路径(\ MinGW\bin),但我的C#编译器似乎埋没在\ Program Files \中,这是一个包含多个空格的路径.这有关系吗?
我能够使用Microsoft SDK安装的命令提示符(我认为设置一些环境变量)编译,所以我知道编译器工作.
在NPPExec选项框中,我选择了FOLLOW $(CURRENT_DIRECTORY).这有关系吗?
谢谢.
我有以下静态功能:
static inline HandVal
StdDeck_StdRules_EVAL_N( StdDeck_CardMask cards, int n_cards )
Run Code Online (Sandbox Code Playgroud)
我可以在DLL中导出此功能吗?如果是这样,怎么样?
谢谢,
麦克风
背景资料:
我这样做是因为原始源代码带有一个VS项目,旨在编译为静态(.lib)库.为了使用ctypes/Python,我将项目转换为DLL.
我作为DLL启动了VS项目并导入了原始源代码.该项目构建为DLL,但没有导出任何函数(包括上面列出的函数)(由源代码中缺少dllexport和DLL Export Viewer等工具确认).我试图遵循这里的一般建议(在标题中创建一个可导出的包装函数)无济于事......函数似乎仍然没有被导出.
这是我在Visual C++ 2010 Express中的程序的开始:
#pragma comment(lib, "detoured.lib")
#pragma comment(lib, "detours.lib")
#include <Windows.h>
#include <detours.h>
HWND (WINAPI *pCreateWindow)(LPCWSTR lpClassName,
LPCWSTR lpWindowName, DWORD dwStyle,
int x, int y, int nWidth, int nHeight,
HWND hWndParent, HMENU hMenu, HINSTANCE hInstance,
LPVOID lpParam) = CreateWindow;
Run Code Online (Sandbox Code Playgroud)
Visual C++的IntelliSense告诉我它无法找到CreateWindowW(即使我看到它在Winuser.h中查看#define而我可以在F12中找到函数定义).它也没有编译.
dllmain.cpp(11): error C2065: 'CreateWindowW' : undeclared identifier
Run Code Online (Sandbox Code Playgroud)
知道发生了什么事吗?
谢谢,
麦克风
我正在尝试构建一个Node.js服务器,其控制台日志记录类似于Django的开发服务器.例如
[27/Jun/2011 15:26:50] "GET /?test=5 HTTP/1.1" 200 545
Run Code Online (Sandbox Code Playgroud)
以下server.js(基于Node Beginner Book教程)为我提供了时间和请求信息:
var http = require("http");
var url = require ("url");
var port = 1234;
function start(route, handle) {
function onRequest(request, response) {
var pathname = url.parse(request.url).pathname;
var query = url.parse(request.url).query;
route(handle, pathname, query, response);
logRequest(request);
}
http.createServer(onRequest).listen(port);
console.log("\nServer running at http://192.168.1.5:" + port + "/");
console.log("Press CONTROL-C to quit.\n");
}
function logRequest(request) {
var pathname = url.parse(request.url).pathname;
var query = url.parse(request.url).query;
if (query == undefined) {
query = …Run Code Online (Sandbox Code Playgroud) >>> a = array([[10, 50, 20, 30, 40],
... [50, 30, 40, 20, 10],
... [30, 20, 20, 10, 50]])
>>> some_np_expression(a)
array([[1, 3, 1, 3, 2],
[3, 2, 3, 2, 1],
[2, 1, 2, 1, 3]])
Run Code Online (Sandbox Code Playgroud)
什么是some_np_expression?只要排名是独特的和顺序的,就不关心如何解决关系.
我想返回numpy.array带有给定1D的多个卷的2D numpy.array。
>>> multiroll(np.arange(10), [-1, 0, 1, 2])
array([[1., 0., 9., 8.],
[2., 1., 0., 9.],
[3., 2., 1., 0.],
[4., 3., 2., 1.],
[5., 4., 3., 2.],
[6., 5., 4., 3.],
[7., 6., 5., 4.],
[8., 7., 6., 5.],
[9., 8., 7., 6.],
[0., 9., 8., 7.]])
Run Code Online (Sandbox Code Playgroud)
有一些组合numpy.roll,numpy.tile,numpy.repeat,或其他执行此功能呢?
这是我尝试过的
def multiroll(array, rolls):
"""Create multiple rolls of 1D vector"""
m = len(array)
n = len(rolls)
shape = (m, n)
a = …Run Code Online (Sandbox Code Playgroud) 我正在使用位集,并希望快速迭代设置的位,而不需要提前知道最大设置位。使用这个技巧,我们似乎可以做到这一点,而无需扫描中间的 0。但链接技巧将设置位生成为位集,而不是整数(例如,第 0 个设置位生成为0b1,而不是0)。
log2(x)当我知道将是 2 的精确幂时,是否有一个快速的位技巧可以计算x(例如,如上面的情况)?
我尝试过什么
最简单的版本,使用标准库并bits(n)作为链接代码:
def bits(n):
while n:
b = n & (~n+1)
yield b
n ^= b
from math import log2
for b in bits(109):
print(int(log2(b)))
0
2
3
5
6
Run Code Online (Sandbox Code Playgroud) 我正在遵循lxml验证文档来构建一个类,该类根据Math ML 3.0模式验证给定的XML字符串.这是班级:
class XMLSchema(object):
def __init__(self, path_to_xsd_file):
with open(path_to_xsd_file) as f:
xmlschema_doc = etree.parse(f)
self.xmlschema = etree.XMLSchema(xmlschema_doc)
def validate(self, well_formed_xml_string):
"""Validates a well-formed XML string against an XML schema.
Returns True if xml_string is valid, False if not.
"""
xml = etree.parse(StringIO(well_formed_xml_string))
return self.xmlschema.validate(xml)
Run Code Online (Sandbox Code Playgroud)
实例化它会产生以下结果:
>>> x = XMLSchema('mathml3.xsd')
Traceback (most recent call last):
...
lxml.etree.XMLSchemaParseError: complex type
'annotation-xml.model': The content model is not determinist., line 42
Run Code Online (Sandbox Code Playgroud)
我该如何解决?