小编BTR*_*BTR的帖子

python range()的切片行为[:]

我在QC审查中遇到了一些有趣的代码,并对它的行为感到惊讶。我很好奇它是否记录在任何地方。

for i in range(0, my_array.max(), 3)[:]:
    # other code here
Run Code Online (Sandbox Code Playgroud)

我对[:]after 的需求感到好奇range,因此我对其进行了测试:

>>> range(0, 10, 3)
range(0, 10, 3)
>>> range(0, 10, 3)[:]
range(0, 12, 3)
Run Code Online (Sandbox Code Playgroud)

这些范围定义的实际顺序是相同的,但是我在Python 范围文档中的任何地方都看不到这种切片行为,因此我很好奇这里的实际情况。

python slice python-3.x

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

为什么 tmux 在粘贴多行命令时不插入换行符?

我在编写shell脚本(或其他相关语言)时经常使用REPL风格的编码方法,最近注意到以下问题。我运行 tmux,这样我就可以在 vim 的窗格中与终端提示符并排打开我的脚本。

多路复用器

如果我尝试在 Mac 上使用 CMD-v 一次粘贴多行命令,即

a=hello
b=World
echo $a $b
Run Code Online (Sandbox Code Playgroud)

tmux 无法正确处理换行符,而是给出以下输出:

[user@host: ~]$ a=hello
b='World'
echo $a $b
[user@host: ~]$ b='World'echo $a $b
Run Code Online (Sandbox Code Playgroud)

如果我清除提示并运行echo $a,我会hello在屏幕上回显,但echo $b会生成一个空行,并且显然该echo $a $b行不会运行。

我使用类似 REPL 得到相同的输出gnuplot,或者使用rlwrap.

替代 tmux 尝试

使用vim-slime或手动使用相关 vim-slime 系统调用时也会出现同样的问题:

[user@host: ~]$ tmux set-buffer 'a=hello
> b=World
> echo $a $b
> '
[user@host: ~]$ tmux paste-buffer -p
a=hello
b=World
echo $a $b
[user@host: …
Run Code Online (Sandbox Code Playgroud)

bash shell paste tmux

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

标签 统计

bash ×1

paste ×1

python ×1

python-3.x ×1

shell ×1

slice ×1

tmux ×1