Python 循环只工作一次

Python 循环只工作一次,python,Python,。 用于突出显示代码的dd语言标识符 def functionfoo: printfoo ► 在段落之间放置返回 ► 对于换行符,在末尾添加2个空格 ► 斜体还是粗体 ► 将代码缩进4个空格 ► 背虱像这样逃走了_ ► 通过在行首放置>进行报价如果for给您的len和range带来了麻烦,为什么不简单地执行以下操作: for file in files: print file 更简单,更干净,它可能会给你一个更好的指示,到底是什么错了 我怀疑您正在修改代码中的s变量或可能是files变

。 用于突出显示代码的dd语言标识符

def functionfoo: printfoo ► 在段落之间放置返回

► 对于换行符,在末尾添加2个空格

► 斜体还是粗体

► 将代码缩进4个空格

► 背虱像这样逃走了_

► 通过在行首放置>进行报价

如果for给您的len和range带来了麻烦,为什么不简单地执行以下操作:

for file in files:
    print file
更简单,更干净,它可能会给你一个更好的指示,到底是什么错了


我怀疑您正在修改代码中的s变量或可能是files变量。另外,我是否可以建议使用?

除了使其成为python 3之外,我还删除了全局赋值,并使用较短的测试命令python script.py-f traj1.gro、traj2.gro-I 1-s 30进行了测试:

它说:

0
traj1.gro
1
traj2.gro

我建议不要使用诸如file和files for variables之类的系统名称

在进入for循环之前,您是否尝试过打印lenfiles?@Rafalon it说2在这个分支的其余代码中,您是否有可能执行任何可以更改文件内容的操作?只需在循环中打印lenfiles,然后再打印s。最好直接遍历列表:对于文件中的文件:…请发布一个可以重现问题的代码。如果没有问题的部分,我们就无法解决它。更可能的是,该问题存在于代码的其余部分。可能有一种不粘贴整个代码就可以复制它的短方法。你可以检查如何写a。我不认为他在改变s,因为它打印的是1,应该是0,然后是1。相反,我认为他在修改文件。不。文件是我相信的一个文件名。您可以打开、更改、删除或执行任何操作。file变量仍将包含文件名。编辑文件数组是一个完全不同的故事,这应该是没有必要的。我从来没有说这是必要的,我说我怀疑OP这样做可能不是故意的。要么清除它,要么从中删除一个元素,但在循环之前,它似乎包含2个元素,在第二次迭代中,它包含的元素少于2个。每种元素都是,但通常糟糕的问题会导致糟糕的答案。我会在建议调试技巧之前,等待OP把它做得更像是能够复制。我只是这样做了,它简单多了。谢谢我只是检查了所有东西,然后意识到我已经全球化了文件。在一大块代码中有一些相同的文件和单词,我把它们改成了文件之类的东西。谢谢
0
traj1.gro
1
traj2.gro