0

这是一个非常奇怪的问题,但我不明白为什么会这样:

我写了这段代码:

stusr = int(su.total)
if not stusr == 0:

但是,即使我确实知道 stusr.total 永远不会为 0(它总是被初始化),它也永远不会执行 if 命令。即使我尝试除以 su.total 来计算百分比,我也会收到错误消息说我不能除以 0。

当我stusr在屏幕上显示时,我得到非零值,所以我确定我正确初始化它。

这是我的模型

class StatsUser(models.Model):
  correct = models.IntegerField(default=0)
  incorrect = models.IntegerField(default=0)
  total = models.IntegerField(default=0)
  ...

希望你能帮助我理解这一点。

4

2 回答 2

1

虽然这是一个奇怪的习语,但它应该可以工作。尝试以下操作(使用正确的语法):

stusr = int(su.total)
if stusr:             # (all non-zero integer values are true)
    print("Yay, stusr is nonzero!")
else:
    print("Wha? But su.total is {}!".format(repr(su.total)))
于 2013-09-20T10:01:50.100 回答
1

你不能print su.total在转换为int之前做a吗?在铸造之前看看它的价值是多少。此外,总字段是一个 IntegerField,这些字段不必强制转换为 int。

于 2013-09-20T10:04:19.647 回答