小编ppp*_*ery的帖子

如何创建使用“builds()”的可配置自定义假设策略?

我使用builds()and创建了自定义假设策略@composite(设计灵感来自文档中的这个示例)。这些策略的设计类似于下面的伪代码:

# strategies.py

from hypothesis.strategies import builds, composite, draw, floats, integers

class SutConfiguration:
    """ Data which represents the configuration of the system under test. """
    def __init__(self, integer, float):
        self.integer = integer
        self.float = float

# custom strategy which uses builds()
SutConfigurationStrategy = builds(
    SutConfiguration,
    integer=integers(min_value=APP_SPECIFIC_INT_MIN, max_value=APP_SPECIFIC_INT_MAX),
    float=floats(min_value=APP_SPECIFIC_FLOAT_MIN, max_value=APP_SPECIFIC_FLOAT_MAX),
)

@composite
def overall_test_configuration(draw, sut_st=SutConfigurationStrategy, env_st=SutEnvironmentStrategy):
    """Custom strategy which uses draw."""
    sut_config = draw(sut_st)
    env_config = draw(env_st)
    return (sut_config, rc_stereomatching_config, env_config)
Run Code Online (Sandbox Code Playgroud)

该策略照常使用unittest,例如用作测试运行器:

# …
Run Code Online (Sandbox Code Playgroud)

python python-hypothesis

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

在 Raspberry Pi 3 Stretch 上将默认 Python 3.5.3 升级到 Python 3.7.2

我想将默认的Python3(即Python 3.5.3)升级到Python 3.7.2。当我用谷歌搜索时,我发现许多网站告诉我如何安装最新的 python 3.5 和其他版本,包括 python 3.7.0,但这些网站都没有告诉我如何从 python 3.5.3 升级到 python 3.7.2。所以我尝试安装Python 3.7.2而不是升级默认的Python 3.5.3。经过一番搜索后,我得到了有关如何在 Raspberry Pi 上安装 Python 3.7 的指南。以下是网站链接:https://www.ramoonus.nl/2018/06/30/installing-python-3-7-on-raspberry-pi/。因此,我按照步骤在我的 Raspberry Pi 3 上成功安装了 Python 3.7.0,并将 python 和 python3 的别名设置为 python3.7.0,现在当我输入python --versionor时python3 --version,它给了我 3.7.0。但现在我有另一个问题,就是当我关闭或重新启动我的 Pi 并将其重新打开时,我输入python --version它给我 2.7.13, python3它给我 3.5.3。所以请帮我解决这个问题。

python upgrade python-3.x raspberry-pi

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

为什么这个正则表达式“.*”与“abcd 1234 abcd”匹配会给出两个匹配项?

.*为什么在字符串上使用正则表达式时会得到两个匹配项abcd 1234 abcd?请参阅https://regex101.com/r/rV8jfz/1

从regex101给出的解释中,我可以看到第二个匹配发生在位置14-14,并且匹配的值为null。但为什么还要进行第二场比赛呢?有什么办法可以避免第二场比赛吗?

我理解.*意味着任何字符的零个或多个,所以它试图找到零出现的次数。但我不明白为什么需要这个空匹配。
问题是,当在任何语言(例如Java)中使用时,当我这样做时while(matcher.find()) { ... },这会循环两次,而我希望它只循环一次。

我知道这不可能是现实世界的匹配情况,但为了理解和探索正则表达式,我认为这是一个很好的研究案例。

编辑 - 遵循@terdon 回复。我确实喜欢在 regex101 中保留 /g 选项,我知道这一点。我想知道总共可能的比赛。
https://regex101.com/r/EvOoAr/1 ->abcd针对字符串的模式abcd 1234 abcd给出了两个匹配项。而且我不想知道这些信息。

我发现的问题是,当用 java -
Ref - https://onecompiler.com/java/3xnax494k这样的语言处理这个问题时

  String str = "abcd 1234 abcd";
  Pattern p = Pattern.compile(".*");
  Matcher matcher = p.matcher(str);
  int matchCount=0;
  while(matcher.find()) {
    matchCount++;
    System.out.println("match number: " + matchCount);
    System.out.println("matcher.groupCount(): " + matcher.groupCount());
    System.out.println("matcher.group(): " + matcher.group());
  }
Run Code Online (Sandbox Code Playgroud)

输出是 -

match number: 1
matcher.groupCount(): …
Run Code Online (Sandbox Code Playgroud)

java regex

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

从 R 中删除包含数字的向量元素

我有一些以农村财产命名的文件,如下所示:

v1 <- c("Badger", "Hill", "Farm", "1.json")
v2 <- c("Buffalo", "Pass", "Farm", "2.json")
> v1
[1] "Badger" "Hill"   "Farm"   "1.json"
> v2
[1] "Buffalo" "Pass"    "Farm"    "2.json"
Run Code Online (Sandbox Code Playgroud)

我设法分割文件名元素,但我只想保留那些不包含任何数字的元素。期望的输出是:

> v1
[1] "Badger" "Hill"   "Farm"  
> v2
[1] "Buffalo" "Pass"    "Farm"
Run Code Online (Sandbox Code Playgroud)

很简单,但我就是无法理解它。我怎样才能做到这一点?

r strsplit

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

使用宏从给定的一组不同值中查找不等于任何值的值

问题:如何实现一个E扩展为整数常量表达式的宏,以便......

(E != (X) && E != (Y) && E != (Z))
Run Code Online (Sandbox Code Playgroud)

X...对于、Y、 和Z作为具有不同非负值的整数常量表达式的每个选择,其计算结果为 1 ?

例子:

#define X               13
#define Y               45
#define Z               76
#define E               FUNC(X,Y,Z)
#define FUNC(X,Y,Z)     ??

E /* evaluates to any number distinct from all of 13, 45, and 76 */
Run Code Online (Sandbox Code Playgroud)

使用哪个公式?有任何想法吗?

c math macros c-preprocessor

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

(内置)Lua 函数的本地声明以减少开销

人们常说应该在本地重新声明(某些)Lua 函数,因为这样可以减少开销。但这背后的确切规则/原则是什么?我如何知道哪些功能应该这样做以及哪些功能是多余的?或者应该为每个函数(甚至是您自己的函数)执行此操作?

不幸的是我无法从Lua手册中弄清楚它。

performance lua

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

列表中相同值的索引

由于list.index(x)将仅返回值为 x 的第一个项目的列表中的索引。有没有办法返回列表中相同值的每个索引。

例如,我有一个包含一些相同值的列表,例如:

mylist = [(A,8), (A,3), (A,3), (A,3)]
Run Code Online (Sandbox Code Playgroud)

我要回:

index_of_A_3 = [1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

python list

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

使用python批量处理文本到csv

我需要一些帮助来将一些文本文件转换为 csv 文件。我所有的文本文件都在一个文件夹中,我想将它们转换为 csv 文件到另一个文件夹中。各个文件的名称应保持不变。下面是我到目前为止得到的脚本......转换单个文件工作正常,但处理文件夹中的所有文件是我被卡住的地方。任何帮助将不胜感激。

import csv
import os

directory = raw_input("INPUT Folder:")
output = raw_input("OUTPUT Folder")

txt_files = directory
csv_files = output

try:

    for txt_file in txt_files:
        in_txt = csv.reader(open(txt_file, "rb"), delimiter = '=')

        for csv_file in csv_files:

            out_csv = csv.writer(open(csv_file, 'wb'))
            out_csv.writerows(in_txt)
except:
    print ()
Run Code Online (Sandbox Code Playgroud)

python csv python-2.7

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

使用预准备语句插入CURRENT_TIMESTAMP

我用准备好的语句插入数据.如何将变量分配给CURRENT_TIMESTAMP并绑定值?

我有一个数据库表,其中包含"name,lastfed,lastdoc和id"列.名为lastfed和lastdoc的2列是timestamp类型.我有一个功能,一旦我运行它,我想lastfed和lastdoc注册当前的日期和时间.

任何帮助赞赏!

$lastfed = CURRENT_TIMESTAMP;
$lastdoc = CURRENT_TIMESTAMP;

$query = $db->prepare("INSERT INTO test (`name`, `lastfed`, `lastdoc`, `id`) VALUES (?, ?, ?, ?)");

$query->bindValue(1, $name);
$query->bindValue(2, $lastfed);
$query->bindValue(3, $lastdoc);
$query->bindValue(4, $user);
Run Code Online (Sandbox Code Playgroud)

php mysql timestamp prepared-statement

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

在python中打印对象的实例

我是一个初学蟒蛇学习者.为什么这段代码不能打印100?

class Pet(object):

    def __init__(self):
        self.name = ''
        self.age = 0

    def getName(self, newname):
        self.name = newname
        return self.name

    def getAge(self, aging):
        self.age += aging
        return self.age


polly = Pet()
polly.getAge(100)
print polly.getAge
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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