为啥 Python 脚本 if 语句不能正常工作?
Posted
技术标签:
【中文标题】为啥 Python 脚本 if 语句不能正常工作?【英文标题】:why Python script if statement not working correctly?为什么 Python 脚本 if 语句不能正常工作? 【发布时间】:2014-03-05 18:19:00 【问题描述】:我在写knapsack
w = [0 for x in xrange(item_count+1)]
v = [0 for x in xrange(item_count+1)]
分别赋值和权重(v, w)。已创建
c = [[0 for x in xrange(capacity+1)] for x in xrange(item_count+1)]
c、w 和 v 在此之后分别赋值(非零)
for i in range(1,item_count+1):
#for ever possible weight
for j in range(0,capacity+1):
#can we add this item to this?
if w[i] <= j :
c[i][j] = max(c[i-1][j], v[i] + c[i-1][j-w[i]])
else:
c[i][j] = c[i-1][j]
如果w[i] <= j:
始终为False
,即使在打印时w[i]
似乎大于j
。不知道为什么?
【问题讨论】:
你永远不会分配给 w 并且它被初始化为 0。所以总是为零 提示:w = [0 for x in xrange(item_count+1)]
可以写成w = [0] * (item_count + 1)
。其他人也一样
其实w[i] <= j
不应该是True
吗?
实际上我忘记在初始化后添加,我使用从标准输入到 v 和 w 的输入赋值,所以它不是 0
【参考方案1】:
w[i] 在您的代码中始终为 0。初始化后没碰过
【讨论】:
实际上我忘记在初始化后添加,我使用从标准输入到 v 和 w 的输入分配了值以上是关于为啥 Python 脚本 if 语句不能正常工作?的主要内容,如果未能解决你的问题,请参考以下文章