小编Rai*_*Lee的帖子

python np.round(),十进制选项大于2

Python有默认的round()函数,但是我用cython编程并想用numpy函数替换pythonic代码.但是,在终端中进行实验时,我得到了以下结果.

>>> np.around(1.23456789)
1.0
>>> np.around(1.23456789, decimals=0)
1.0
>>> np.around(1.23456789, decimals=1)
1.2
>>> np.around(1.23456789, decimals=2)
1.23
>>> np.around(1.23456789, decimals=3)
1.2350000000000001
>>> np.around(1.23456789, decimals=4)
1.2345999999999999
Run Code Online (Sandbox Code Playgroud)

这有点奇怪,我仍然想要以下"期望"的结果:

>>> round(1.23456789,3)
1.235
>>> round(1.23456789,4)
1.2346
Run Code Online (Sandbox Code Playgroud)

python numpy rounding cython

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

Go lang区分"\n"和换行符

我正在尝试通过以下代码读取linux命令生成的某些字符串输出:

out, err := exec.Command("sh", "-c", cmd).Output()
Run Code Online (Sandbox Code Playgroud)

以上是[]byte类型,如何区分行内容中包含的"\n"字符与实际换行符?我试过了

strings.Split(output, "\n")
Run Code Online (Sandbox Code Playgroud)

bufio.NewScanner(strings.NewReader(output))
Run Code Online (Sandbox Code Playgroud)

但是每当看到"\n"字符时,它们都会分割整个字符串缓冲区.

好的,澄清一下,"虚幻"中断是字符串中包含的"\n"字符,如下所示, Print first result: "123;\n234;\n" Print second result: "456;\n"

整个输出是一个大的多行字符串,它也可能包含一些其他引用的字符串,我在我的go程序中处理整个字符串输出,但我无法控制命令输出并在"之前添加反斜杠" \n"角色.

进一步说明:我的意思是处理包含字符串字符串的字节序列,并希望保留\n内部字符串中包含的" "并使用外层" \n"来断行.所以对于以下字节序列:

First line: "test1"
Second line: "123;\n234;\n345;"
Third line: "456;\n567;"
Fourth line: "test4"
Run Code Online (Sandbox Code Playgroud)

我希望在处理整个序列时获得3行,而不是总共7行.这是一个古老的项目,但我记得我可以使用Python直接使用类似" for line in f"的语法获取3行,并打印第二个内部字符串的内容而不是渲染它.

split go

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

标签 统计

cython ×1

go ×1

numpy ×1

python ×1

rounding ×1

split ×1