我刚刚想出了这个简单的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的新手
答案 0 :(得分:0)
我不知道为什么要输出排列(每次都会打印换行符,所以无论如何它都会打印出一列数字,即使它有效)。你真的应该拿一个调试器并自己调查一下。
只需将此行放在函数的开头:
import pdb; pdb.set_trace()
您将能够逐步完成您的计划。这是一个问题,其中包含一些关于如何使用它的链接和提示 - Getting started with the Python Debugger pdb
如果您知道如何安装软件包,则可以安装ipdb
并执行
import ipdb; ipdb.set_trace()
达到相同的效果,但调试器将具有自动完成功能,并且通常会更加性感。
祝你学习顺利!