为啥 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] &lt;= j: 始终为False,即使在打印时w[i] 似乎大于j。不知道为什么?

【问题讨论】:

你永远不会分配给 w 并且它被初始化为 0。所以总是为零 提示:w = [0 for x in xrange(item_count+1)] 可以写成w = [0] * (item_count + 1)。其他人也一样 其实w[i] &lt;= j不应该是True吗? 实际上我忘记在初始化后添加,我使用从标准输入到 v 和 w 的输入赋值,所以它不是 0 【参考方案1】:

w[i] 在您的代码中始终为 0。初始化后没碰过

【讨论】:

实际上我忘记在初始化后添加,我使用从标准输入到 v 和 w 的输入分配了值

以上是关于为啥 Python 脚本 if 语句不能正常工作?的主要内容,如果未能解决你的问题,请参考以下文章

大约一半的if语句不能正常工作

Python:为啥 if-else 一行语句在 else 中不能与 continue 一起使用?

为啥这个python中最大的主要因素的代码不能正常工作

linux shell脚本为啥不能执行if命令

为啥我的 C 程序不能正常工作?

如何在 *:CONNECT: mirc 脚本中使用 if 语句