我刚刚想出了这个简单的Python算法,用于生成从1到n的所有可能的排列,但它似乎不起作用。代码如下:
def main ():
n = 3
x = [0] * 4
k = 1
while k:
ok = True
while x[k] < n and ok:
for i in range (0,k-1):
if x[i] == x[k]:
ok = False
if ok:
x[k] += 1
if x[k] < n:
if k == n:
print x
else:
k+=1
x[k] = 0
else:
k-=1
main()当我运行它的时候,什么也没有发生。你能帮帮我吗?我也是Python的新手
发布于 2014-05-27 01:07:26
我不知道为什么它应该输出排列(而且它每次都会打印换行符,所以在任何情况下,即使它可以工作,它也只会打印出一列数字)。你真的应该找个调试器自己去调查一下。
只需将这一行放在函数的开头:
import pdb; pdb.set_trace()你将能够一步一步地完成你的程序。这里有一个关于如何使用它的链接和提示的问题-- Getting started with the Python Debugger pdb
如果您知道如何安装软件包,则可以安装ipdb并执行以下操作
import ipdb; ipdb.set_trace()同样的效果,但调试器将自动完成,并且通常会更性感一点。
祝你学习顺利!
https://stackoverflow.com/questions/23874422
复制相似问题