小编Joh*_*ard的帖子

与Python相反的......其他

以下python代码将导致打印n(14),因为for循环已完成.

for n in range(15):
    if n == 100:
        break
else:
    print(n)
Run Code Online (Sandbox Code Playgroud)

但是,我想要的是与此相反.有没有办法做一个... else(或while ... else)循环,但只有在循环确实中断时才执行else代码?

python for-loop if-statement python-3.x

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

具有线宽的Libgdx圆

我已经开始使用libgdx并试图简单地制作一个具有相当厚的笔划的圆圈.到目前为止,我还没有发现任何中风.pixmap.setStrokeWidth()即使在API中,但似乎已被删除(?),并且Gdx.gl10.glLineWidth(width);没有效果.我怎样才能改变线条的行程?这是我当前代码的片段:

@Override
public void create() {
    w = Gdx.graphics.getWidth();
    batch = new SpriteBatch();
    pixmap = new Pixmap(2 * w, 2 * w, Pixmap.Format.RGBA8888);
    pixmap.setColor(Color.BLACK);

    pixmap.drawCircle(w, w, w);
    texture = new Texture(pixmap);
    pixmap.dispose();

    sprite = new Sprite(texture);
}

@Override
public void render() {
    Gdx.gl.glClearColor(1, 1, 1, 1);
    Gdx.gl.glClear(GL20.GL_COLOR_BUFFER_BIT);

    batch.begin();
    sprite.setPosition(-w / 2, -w);
    sprite.draw(batch);
    batch.end();
}
Run Code Online (Sandbox Code Playgroud)

java opengl libgdx

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

设置简化

说我有两套,set1 = {a,b,c,d,e,f}set2 = {a,b,c,d,e,g}.我没有明确地表达这些,而是​​想创造类似的东西

common = {a,b,c,d,e}
set1 = common + f
set2 = common + g
Run Code Online (Sandbox Code Playgroud)

如果我们想要代表{a,b,c,h},我们可以将其表示为common - d - e + h.

我的目标基本上是能够生成要使用的最佳公共部分.只有一个共同的部分,这不是太具有挑战性,但我需要允许不止一个(但不是无限制,或获得的好处将是微不足道的).

通过最优,我的意思是"表达的元素数量最少".因此,在上面的例子中,它"成本"5(元素的数量)来制作common变量.然后设置1和2都是成本2(一个用于引用公共,一个用于添加额外元素),总计为7.没有替换,这些将花费12来存储(每个6个元素).类似地,从引用中减去元素"cost"1.

另一个例子, {a,b,c,d}, {a,c,d,e}, {e,f,g,h} and {e,f}

可能

common1 = {a,c,d}
common2 = {e,f,g}
set1 = common1 + b
set2 = common1 + e
set3 = common2 + h
set4 = common2 - g
Run Code Online (Sandbox Code Playgroud)

通过允许多个共同部分,这变得更具挑战性.是否存在此类问题的名称或类似问题?看起来它可能与压缩有关,但我无法找到太多资源从何处开始.

其他一些可能相关的细节:

  • 被允许引用多个公共部分来表示一组可以是有效的,但不是必需的.
  • 对于我的用例,这些集合通常是大约20个元素和大约10个不同的集合.

language-agnostic compression algorithm set

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

Haskell AST Annotation with Fix

我正在努力在Haskell中创建一个AST.我想添加不同的注释,例如类型和位置信息,所以我最终使用了fixplate.但是,我在网上找不到任何例子,我遇到了一些困难.

我按照fixplate的推荐设置了我的AST(有些条纹):

data ProgramF a
  = Unary a
          Operator
  | Number Int
  | Let { bindings :: [(Identifier, a)]
        , body :: a }

type Program = Mu ProgramF
Run Code Online (Sandbox Code Playgroud)

接下来添加标签我创建了另一种类型,以及一个基于树遍历添加标签的函数.

type LabelProgram = Attr ProgramF PLabel

labelProgram :: Program -> LabelProgram
labelProgram =
  annMap (PLabel . show . fst) . (snd . synthAccumL (\i x -> (i + 1, (i, x))) 0)
Run Code Online (Sandbox Code Playgroud)

但是,除此之外,我遇到了一些问题.例如,我正在尝试编写一个对AST进行一些转换的函数.因为它需要一个标签来运行,我已经制作了类型LabelProgram -> Program,但我认为我在做错了.下面是一部分函数的片段(一个更简单的部分):

toANF :: LabelProgram -> Program
toANF (Fix (Ann label (Let {bindings, …
Run Code Online (Sandbox Code Playgroud)

haskell abstract-syntax-tree recursive-datastructures fixpoint-combinators

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

NSLog错误:找不到'NXConstantString'?

我终于让GNUstep工作(在Windows上),它编译并运行良好.但是,每当我尝试使用NSLog时,都会收到以下错误:

$ gcc -o hello hello.m -I /GNUstep/System/Library/Headers \
> -L /GNUstep/System/Library/Libraries -lobjc -lgnustep-base
hello.m: In function 'main':
hello.m:4:5: error: cannot find interface declaration for 'NXConstantString'
Run Code Online (Sandbox Code Playgroud)

我的源代码:

#import <Foundation/Foundation.h>

int main(void) {
    NSLog(@"hello world");
}
Run Code Online (Sandbox Code Playgroud)

cocoa gcc objective-c nslog gnustep

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

Python索引不止一次

我知道.index()将返回子串在python中的位置.但是,我想要的是找到子串在第n次的位置,这将是这样的:

>> s = 'abcdefacbdea'
>> s.index('a')
0
>> s.nindex('a', 1)
6
>>s.nindex('a', 2)
11
Run Code Online (Sandbox Code Playgroud)

有没有办法在python中执行此操作?

python string indexing substring

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

lxml cssselect解析

我有一份包含以下数据的文件:

<div class="ds-list">
    <b>1. </b> 
    A domesticated carnivorous mammal 
    <i>(Canis familiaris)</i> 
    related to the foxes and wolves and raised in a wide variety of breeds.
</div>
Run Code Online (Sandbox Code Playgroud)

我希望得到课堂上的所有内容ds-list(没有<b><i>标签).目前我的代码是doc.cssselect('div.ds-list'),但所有这一切都是之前的新行<b>.我怎样才能让它做我想做的事情?

html python parsing lxml css-selectors

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

找到前n个素数?

可能重复:
在python中列出N下面所有素数的最快方法

虽然我已经编写了一个函数来查找n(primes(10) -> [2, 3, 5, 7])下的所有素数,但我很难找到一个快速查找前n个素数的方法.最快的方法是什么?

python math performance primes

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

从没有exec的文件中读取列表和dicts

目前我有这个代码,它从包含类似内容的文件中读取[{'1': {'Score': '2', 'Class': '3'}}]并将其分配给变量:

exec('assigns = ' + open(r'D:\Dropbox\Dev\Output\dict', 'r').read())
Run Code Online (Sandbox Code Playgroud)

但是,我被告知使用exec是危险的.如何在不使用的情况下编写相同的代码exec

python io unsafe exec

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

在Scala中编写Java库的最佳实践

我打算编写一个主要从Java使用的库。但是,我想用Scala写这个。我已经阅读了有关Java / Scala互操作的大多数文档,但主要集中在使用现有库上,而不是在编写库时要确保无缝互操作的最佳实践。

有效执行此操作的一些方法是什么?理想情况下,消费者根本不会知道该库是用Scala编写的。

还有其他主要的图书馆吗?

我目前的计划是拥有一个API,该API可以显示Scala类型/功能所需的所有内容,然后在此之上具有一个较小的层,以转换为Java类型。这种方法有什么问题吗?

java scala

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

Python HTML解析

我目前正在尝试创建一个程序,给出一个单词将查找其定义并返回它.虽然我已经开始使用它,但我不得不求助于使用RegEx来搜索存储定义的标记之间的文本.使用python 3.x执行此操作的更有效方法是什么?

html python html-parsing python-3.x

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