本帖最后由 lightninng 于 2015-4-25 19:41 编辑
1、如果想获得一个全排列,如1,2,3的全排列(即可以重复)应该是:111,112,113,121,122,123,131,132,133,
211,212,213,221,222,223,231,232,233,
311,312,313,321,322,323,331,332,333
方法:用itertools中的product函数>>> for each in itertools.product(range(3),range(3),range(3)):
print(each)
(0, 0, 0)
(0, 0, 1)
(0, 0, 2)
(0, 1, 0)
(0, 1, 1)
(0, 1, 2)
(0, 2, 0)
(0, 2, 1)
(0, 2, 2)
(1, 0, 0)
(1, 0, 1)
(1, 0, 2)
(1, 1, 0)
(1, 1, 1)
(1, 1, 2)
(1, 2, 0)
(1, 2, 1)
(1, 2, 2)
(2, 0, 0)
(2, 0, 1)
(2, 0, 2)
(2, 1, 0)
(2, 1, 1)
(2, 1, 2)
(2, 2, 0)
(2, 2, 1)
(2, 2, 2)
它还有一个默认参数repeat=1,表示每个序列可以重复的次数
2、一直在更新PyQt5那个贴子,感觉对自己帮助也很大,估计要不是要完结那个贴,说不定,我就没有继续把那个教程学下去的动力了,好在它快完了,还有最后两章
3、最近因为自己的电脑太慢,要把程序拿到实验室电脑跑,学了一下打包,然后把经验写在这个贴里了
http://bbs.fishc.com/thread-60551-1-1.html
4、定义的函数的传入参数如果为列表,如果在函数体内对列表作任何改动,会直接改动传入的列表(和C与C++中传入指针类似),这是一个对于我们初学者来说很隐蔽的错误,有时候程序根本 不会报错,但是会得不到想要的结果
|