小编use*_*ica的帖子

在JavaScript中拆分字符串并检测换行符

我有一个小函数,我发现它从a中取一个字符串textarea,然后将它放入一个canvas元素中,并在行变得太长时包装文本.但它没有检测到换行符.这就是它正在做的事情以及应该做的事情:

输入:

Hello

This is dummy text that could be inside the text area.
It will then get put into the canvas.
Run Code Online (Sandbox Code Playgroud)

输出错误:

Hello this is dummy text
that could be inside the
text area. It will then
get put into the canvas.
Run Code Online (Sandbox Code Playgroud)

它应该输出什么:

Hello

This is dummy text that
could be inside the text
area. It will then get
put into the canvas.
Run Code Online (Sandbox Code Playgroud)

这是我正在使用的功能:

function wrapText(context, text, x, y, maxWidth, lineHeight) {
    var words = …
Run Code Online (Sandbox Code Playgroud)

javascript string split canvas line-breaks

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

为什么从原始列表中弹出会使 reversed(original_list) 为空?

我有以下代码:

s = [1,2,3]
t = reversed(s)

for i in t:
    print(i)
# output: 3,2,1
Run Code Online (Sandbox Code Playgroud)

如果我从s(原始)中弹出一个元素,那么t(反向)将被清空:

s = [1,2,3]
t = reversed(s)
s.pop()

for i in t:
    print(i)
# expected output: 2, 1
# actual output (nothing): 
Run Code Online (Sandbox Code Playgroud)

为什么会发生这种情况?

python python-3.x

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

在NumPy中忽略除以0警告

我有统计问题的功能:

import numpy as np
from scipy.special import gamma as Gamma

def Foo(xdata):
    ...
    return x1 * (
                 ( #R is a numpy vector
                  ( ((R - x2)/beta) ** (x3 -1) ) * 
                  ( np.exp( - ((R - x2) / x4) ) ) /
                  ( x4 * Gamma(x3))
                 ).real
                )
Run Code Online (Sandbox Code Playgroud)

有时我会从shell获得以下警告:

RuntimeWarning: divide by zero encountered in...
Run Code Online (Sandbox Code Playgroud)

我使用numpy isinf函数来纠正其他文件中函数的结果,所以我不需要这个警告.

有没有办法忽略这条消息?换句话说,我不希望shell打印此消息.

我不想禁用所有python警告,只是这个.

python numpy divide-by-zero suppress-warnings

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

什么是相当于Python的`if __name__ =='__ main __'的bash?

在Bash中,我希望能够同时获取脚本并执行该文件.什么是Bash相当于Python的if __name__ == '__main__'

我没有在Stackoverflow上找到关于这个主题的现成问题/解决方案(我怀疑我的问题是这样的方式与现有的问题/答案不符,但这是我能想到的最明显的方式.问题是因为我的Python经验).


ps关于可能的重复问题(如果我有更多时间,我会写一个更短的回复):

链接到问题问:"如何检测如果脚本正在采购",但这个问题是问"你怎么创建一个bash脚本,既可以是采购和运行的脚本?".这个问题的答案可能会使用上一个问题的某些方面,但有其他要求/问题如下:

  • 一旦检测到脚本被采购,不运行脚本的最佳方法是什么(并避免意外的副作用(除了导入感兴趣的功能),如添加/删除/修改环境/变量)
  • 一旦你检测到脚本正在运行而不是源代码实现你的脚本的规范方法是什么(把它放在一个函数中?或者只是把它放在if语句之后?如果你把它放在if语句之后它会有 - 影响?
  • 我在Bash上发现的大多数谷歌搜索都没有涵盖这个主题(一个可以同时获取和执行的bash脚本)实现这个的规范方法是什么?这个话题没有被涵盖,因为它是沮丧还是不好?有陷阱吗?

bash

29
推荐指数
4
解决办法
3380
查看次数

无效指针再次变为有效

int *p;
{
    int x = 0;
    p = &x;
}
// p is no longer valid
{
    int x = 0;
    if (&x == p) {
        *p = 2;  // Is this valid?
    }
}
Run Code Online (Sandbox Code Playgroud)

在指向它的东西被释放后访问指针是未定义的行为,但是如果稍后的分配发生在同一区域会发生什么,并且您明确地将旧指针与指向新事物的指针进行比较?难道也无妨,如果我投&x,并puintptr_t比较之前?

(我知道不能保证这两个x变量占据相同的位置.我没有理由这样做,但我可以想象一个算法,你可以使用一组绝对有效的指针来交叉一组指针指针,删除过程中的无效指针.如果先前失效的指针等于已知的好指针,我很好奇会发生什么.)

c undefined-behavior

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

从stdin读取二进制数据

是否可以在Python 2.6中将stdin读取为二进制数据?如果是这样,怎么样?

我在Python 3.1文档中看到这很简单,但在2.6中执行此操作的工具似乎并不存在.

如果3.1中描述的方法不可用,有没有办法关闭stdin并以二进制模式重新打开?

更新

为了清楚起见,我在MS-DOS shell中使用'type'来将二进制文件的内容传递给我的python代码.据我所知,这应该相当于Unix'cat'命令.但是当我测试它时,我总是比预期的文件大小少一个字节.

更新#2

首先,感谢所有的答案.我正在慢慢努力寻找一个真实可用的解决方案.最后,我仍然在尝试构建一个自包含的JAR文件,该文件执行我的Python代码,自动传递所有未触及的命令行参数.

我之所以使用Java/JAR/Jython路由,是因为我的一个主外部库只能作为Java JAR使用.但不幸的是,我开始以Python开展工作.不久前将代码转换为Java可能更容易,但由于这些东西都应该是兼容的,我想我会尝试通过它来证明它可以完成.

如果有人想知道,这也与我几天前提出的问题有关.

从Eclipse打包和部署Jython程序

在这个问题中回答了一些问题.

所以我会尝试更新我原来的问题,并附上一些关于我到目前为止已经弄清楚的内容.

python python-2.x

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

Clang 或 GCC 拒绝/接受此 CTAD 代码是否正确?

Clang 和 GCC不同意接受此代码。

什么是标准要求的行为?

#include <utility>
#include <iostream>
#include <vector>

int main()
{
    std::vector pairs = {std::pair{1,11},{2,22}, {3,33}};
    for (const auto& p: pairs) {
        std::cout << p.second << std::endl;
    }
}
Run Code Online (Sandbox Code Playgroud)

注意:我知道这是 C++,所以标准可能是模糊的,但我认为一种行为是正确的。

c++ language-lawyer c++17 ctad

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

为什么Python的`from`形式的import语句绑定模块名称?

我有一个具有以下结构的Python项目:

testapp/
??? __init__.py
??? api
?   ??? __init__.py
?   ??? utils.py
??? utils.py
Run Code Online (Sandbox Code Playgroud)

所有模块都是空的,除了testapp/api/__init__.py它有以下代码:

from testapp import utils

print "a", utils

from testapp.api.utils import x

print "b", utils
Run Code Online (Sandbox Code Playgroud)

testapp/api/utils.py其限定x:

x = 1
Run Code Online (Sandbox Code Playgroud)

现在从我导入的根目录testapp.api:

$ export PYTHONPATH=$PYTHONPATH:.
$ python -c "import testapp.api"
a <module 'testapp.utils' from 'testapp/utils.pyc'>
b <module 'testapp.api.utils' from 'testapp/api/utils.pyc'>
Run Code Online (Sandbox Code Playgroud)

导入的结果让我感到惊讶,因为它表明第二个import语句已被覆盖utils.然而,文档声明from语句不会绑定模块名称:

from表单不绑定模块名称:它遍历标识符列表,在步骤(1)中找到的模块中查找每个标识符,并将本地名称空间中的名称绑定到找到的对象.

事实上,当我在终端中使用from ... import ...语句时,不会引入任何模块名称:

>>> from os.path import abspath
>>> …
Run Code Online (Sandbox Code Playgroud)

python import

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

stdfloat 中的 floatN_t 是否保证符合 IEEE 标准?

与基本类型 \xe2\x80\x93和\xe2\x80\x93 不同float, C++23 中引入的新类型将始终是 IEEE 标准二进制浮点类型吗?doublelong doublefloatN_t<stdfloat>

\n

固定宽度浮点的 cppreference 页面确实提到了精度和指数位,这与 IEEE 标准相匹配。但该页面并未在任何地方明确提及 IEEE 标准。IEEE 兼容的浮点意味着,它们不仅应该具有相同的精度和指数位,而且该标准还列出了必须以符合标准的方式支持的许多操作。那么这些类型是否严格遵循这一点呢?

\n

c++ floating-point language-lawyer c++23

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

你能用这些看似等价的函数来解释 Python 中递归深度的差异吗?

我注意到在我的机器上,以下内容达到了 n = 2960 的最大递归深度:

m = {0:0, 1:1}
def f(n):
    if n not in m:
        m[n] = f(n - 1) + f(n - 2)
    return m[n]
Run Code Online (Sandbox Code Playgroud)

而这个版本达到 n = 988 时:

m = {0:0, 1:1}
def f(n):
    if n not in m:
        m[n] = sum(f(n - i) for i in [1, 2])
    return m[n]
Run Code Online (Sandbox Code Playgroud)

谁能解释一下“幕后”发生了什么来解释这种差异?

更准确地说,如果能够理解为什么此示例中的因子为 3,并能够导出它以使用更多项进行求和,那就太好了。

python recursion limit

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