python 组合问题出现的错误
我想要写一个函数能通过顶点和长宽高找到一个长方体八个顶点的坐标。
# x, y, z
v = ['x', 'y', 'z']
# length width height
th = ['L','W','H']
vertex = [None]*3
def ver(i):
if i <0 and vertex != []:
print vertex
else:
for x in ['+','-']:
t = v[i] + x + th[i] + ‘/2’
vertex[i] = t
ver(i-1)
['x+L/2', 'y+W/2', 'z+H/2']
['x-L/2', 'y+W/2', 'z+H/2']
['x+L/2', 'y-W/2', 'z+H/2']
['x-L/2', 'y-W/2', 'z+H/2']
['x+L/2', 'y+W/2', 'z-H/2']
['x-L/2', 'y+W/2', 'z-H/2']
['x+L/2', 'y-W/2', 'z-H/2']
['x-L/2', 'y-W/2', 'z-H/2']
就像是八皇后那样的方法,但是当我想把他们结果保存起来,而不是打印时,就不对了。
# x, y, z
v = ['x', 'y', 'z']
# length width height
th = ['L','W','H']
vertex = [None]*3
res = []
def ver(i):
if i <0 and vertex != []:
res.append(vertex)
else:
for x in ['+','-']:
t = v[i] + x + th[i]+'/2'
vertex[i] = t
ver(i-1)
ver(2)
print res
现在的res全都是['x-L/2', 'y-W/2', 'z-H/2']
[['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2'], ['x-L/2', 'y-W/2', 'z-H/2']]
请问是为什么?
相关推荐
如何用itertools解决无序排列组合的问题
下面小编就为大家带来一篇如何用itertools解决无序排列组合的问题。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
随机整数错误:修复Python中randint函数的参数组合问题
在Python编程中,我们常常使用random模块的randint函数来生成随机整数。正确的参数组合是两个整数,用来指定随机整数的范围。在上面的代码中,我们使用了import语句导入了random模块,并调用randint函数生成一个介于1和10之间的随机整数。randint函数接受两个整数作为参数,它会返回一个介于这两个整数之间(包括这两个整数)的随机整数。在上述代码中,我们将randint函数的第一个参数设置为0,第二个参数设置为变量n,这样就可以生成一个大于等于0且小于等于n的随机整数。
解决Python的组合错误
综上所述,解决Python的组合错误可以通过注意索引的边界情况和限制重复选择元素来避免常见的错误。在编写组合算法时,建议仔细检查代码逻辑,确保正确处理索引和元素选择的情况。在组合算法中,常常会使用循环和递归来生成组合,因此需要格外注意索引的边界情况。重复选择元素错误是指在生成组合时,同一个元素被选择多次。在组合算法中,为了避免重复选择元素,我们需要限制每个元素只能被选择一次。这样可以保证每次递归时,下一层递归的起始索引是当前索引的下一个位置,避免了重复选择元素和漏掉元素的情况。需要注意的是,在递归调用时,
【python笔试题】简单投资组合收益计算器
简单投资组合收益计算器
Discrete-Structures-Calculation:计算计数集(方阵,置换,组合)的乘积
离散数学计算器 使用离散数学的公式对集合进行计数 控制台应用程序,用户可以在该应用程序上输入给定计数方法(排列,阶乘,组合)的值并获得结果


