小编sod*_*ate的帖子

bash for loop:一系列数字

我在.sh文件中有以下代码:

for num in {1..10}
do
  echo $num
done
Run Code Online (Sandbox Code Playgroud)

哪个应该从1到10打印数字.但是,这是我得到的:

{1..10}
Run Code Online (Sandbox Code Playgroud)

此外,使用类似C的sytax也不起作用:

for ((i=1; i<=10; i++))
Run Code Online (Sandbox Code Playgroud)

这给我一个错误:

Syntax error: Bad for loop variable
Run Code Online (Sandbox Code Playgroud)

我拥有的bash版本是4.2.25.

bash for-loop

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

嵌套div的HTML5标准在li或dl中

我知道不允许在HTML5中嵌入div中的div,尽管你可以并且它可以工作.这是否意味着我不会使用它?在dls中嵌套div的标准是什么?

html html5

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

如何自动排序gnuplot中的x值

当我尝试绘制某些内容时linespoints,除非转到x轴的值已经在文件中排序,否则每个点都会连接到文件下一行的点:

在此输入图像描述

只有当我对文件中的值进行排序时,我才能获得所需的效果,即每个点都连接到具有一个较小x值和一个较大值的点:

在此输入图像描述

有没有办法在gnuplot中执行此操作,而无需在bash中对文件进行排序?

sorting gnuplot

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

函数没有隐式类型

我正在努力学习使用函数.我有以下代码:

program main
  implicit none

  write(*,*) test(4)
end program

integer function test(n)
  implicit none
  integer, intent(in) :: n
  integer :: i, ans

  ans=1
  do i=1,n
  ans=ans*i
  enddo

  test=ans
end function test
Run Code Online (Sandbox Code Playgroud)

当我编译(使用gfortran 4.1.2)时,我收到以下错误:

In file test.f90:4

  write(*,*) test(4)
           1
Error: Function 'test' at (1) has no IMPLICIT type
Run Code Online (Sandbox Code Playgroud)

fortran fortran90

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

将变量从bash传递到awk

我正在编写一个shell脚本文件,我必须在其中打印文件的某些列.所以我尝试使用awk.列号在脚本中计算.Nprop是for循环中的变量,从1变为8.

avg=1+3*$nprop
awk -v a=$avg '{print $a " " $a+1 " " $a+2}' $filename5 >> neig5.dat
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下内容:

awk -v a=$avg '{print $a " " $(a+1) " " $(a+2) }' $filename5 >> neig5.dat
Run Code Online (Sandbox Code Playgroud)

这导致始终打印前三列.

bash awk ubuntu-12.04

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

Matlab警告('错误')产生的参数错误不足

我试图使用warning()带有警告消息的函数.当我尝试warning('random message')它工作得很好.但是,如果我改变字符串error,我会收到一条错误,说它没有足够的输入参数:

warning('error')
Error using warning
Not enough input arguments.
Run Code Online (Sandbox Code Playgroud)

这个词有什么特别的东西error阻止我将它用作信息吗?

我在用2014b.

matlab

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

在Python中使用带有多处理的click.progressbar

我有一个庞大的列表,我需要处理,这需要一些时间,所以我把它分成4件,并用一些功能多处理每件.使用4个内核运行仍然需要一些时间,所以我想我会在函数中添加一些进度条,以便它可以告诉我处理列表时每个处理器的位置.

我的梦想是拥有这样的东西:

erasing close atoms, cpu0  [######..............................]  13%
erasing close atoms, cpu1  [#######.............................]  15%
erasing close atoms, cpu2  [######..............................]  13%
erasing close atoms, cpu3  [######..............................]  14%
Run Code Online (Sandbox Code Playgroud)

每个条随着函数循环的移动而移动.但相反,我得到一个持续的流程:

在此输入图像描述

等等,填满我的终端窗口.

这是调用函数的主要python脚本:

from eraseCloseAtoms import *
from readPDB import *
import multiprocessing as mp
from vectorCalc import *

prot, cell = readPDB('file')
atoms = vectorCalc(cell)

output = mp.Queue()

# setup mp to erase grid atoms that are too close to the protein (dmin = 2.5A)
cpuNum = 4
tasks = len(atoms)
rangeSet = …
Run Code Online (Sandbox Code Playgroud)

python numpy multiprocessing python-2.7 python-click

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

python argparse如何将整个命令作为字符串

我有一个名为的脚本patchWidth.py,它使用以下命令解析命令行参数argparse

# read command line arguments -- the code is able to process multiple files
parser = argparse.ArgumentParser(description='angle simulation trajectories')
parser.add_argument('filenames', metavar='filename', type=str, nargs='+')
parser.add_argument('-vec', metavar='v', type=float, nargs=3)
Run Code Online (Sandbox Code Playgroud)

假设此脚本使用以下内容运行:

>>> python patchWidth.py file.dat -vec 0. 0. 1.
Run Code Online (Sandbox Code Playgroud)

有没有办法在 python 中将整个内容作为字符串获取?我希望能够将使用什么参数运行的命令打印到输出文件。

python command-line command-line-arguments argparse

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

如何让 Python 像 grep 一样重新工作以重复组?

我有以下字符串:

seq = 'MNRYLNRQRLYNMYRNKYRGVMEPMSRMTMDFQGRYMDSQGRMVDPRYYDHYGRMHDYDRYYGRSMFNQGHSMDSQRYGGWMDNPERYMDMSGYQMDMQGRWMDAQGRYNNPFSQMWHSRQGH'
Run Code Online (Sandbox Code Playgroud)

也保存在一个名为seq.dat. 如果我使用以下grep命令

grep '\([MF]D.\{4,6\}\)\{3,10\}' seq.dat
Run Code Online (Sandbox Code Playgroud)

我得到以下匹配字符串:

MDNPERYMDMSGYQMDMQGRWMDAQGRYN
Run Code Online (Sandbox Code Playgroud)

这就是我想要的。换句话说,我想要匹配的是与字符串相同的连续重复次数[MF]D.{4,6}。我不想匹配连续重复次数少于 3 次的情况,但我希望它能够捕获最多 6 次。

现在,我正在尝试用 python 来做到这一点。我有

p = re.compile("(?:[MF]D.{4,6}){3,10}")
Run Code Online (Sandbox Code Playgroud)

尝试search()退货

MDNPERYMDMSGYQMDMQGRWM
Run Code Online (Sandbox Code Playgroud)

这是接近我寻求的答案,但仍然缺少最后一个MDAQGRYN。我猜这是因为.{4,6}匹配了M,这又阻止{3,10}了捕获第四次出现([MF]D.{4,6}),但由于我要求至少 3 个,它很高兴并且停止了。

如何使 Python 正则表达式像 grep 一样运行?

python regex grep

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

一个列表意外更改也会改变另一个列表

我有一份表格清单

v = [0,0,0,0,0,0,0,0,0]
Run Code Online (Sandbox Code Playgroud)

我在代码中的某个地方

vec=v
vec[5]=5
Run Code Online (Sandbox Code Playgroud)

这既改变vvec:

>>> print vec
[0, 0, 0, 0, 0, 5, 0, 0, 0]
>>> print v
[0, 0, 0, 0, 0, 5, 0, 0, 0]
Run Code Online (Sandbox Code Playgroud)

为什么要v改变?

python python-2.7

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