将条件语句从x> = 0更改为x> 0

时间:2018-01-31 14:43:59

标签: python

阅读Python 3.x自学书。我有一个基本代码,允许用户输入一个非负int序列。当用户输入负int时,序列停止并打印结果。它看起来像是:

entry = 0
sum = 0
print("Enter numbers to sum, negative number ends list: ")

while entry >= 0:
    entry = int(input())
    if entry >= 0:
        sum += entry
print("Sum =", sum)

现在我开始练习本书的一部分。它询问if语句的条件是否可以使用

> 

而不是

>= 

此外,如果while循环的条件可以使用 >

而不是

>=

我显然已尝试过两种组合,并注意到>可以在if条件而不是> =中使用,这不会影响程序。但如果我要交换> = for>在while语句中程序将在运行后立即停止,显示Sum = 0,不允许用户输入任何整数。如果条件没有改变任何东西,为什么交换,但是当条件影响程序时进行交换?

2 个答案:

答案 0 :(得分:1)

如果按顺序阅读每个语句,您可能会看到会发生什么:

entry = 0

条目为零......

while entry > 0:

当条目大于零时,请执行此操作..

但由于条目不大于零,while循环永远不会运行。在第一次调用循环之前检查该语句,因此您的程序继续使用下一个语句(print)。

当你有>=时,你也允许值0 - 所以“当条目大于或等于零时”允许循环运行。

答案 1 :(得分:1)

更改

function scrollto(elemSelector) {
  var $wrapper = document.querySelector('.fixed-wrapper'),
      $el = document.querySelector(elemSelector);
  $wrapper.scrollTop = $el.offsetTop;
} 

if entry >= 0:
    sum += entry

不会更改程序的行为,因为向任何数字添加0都不会更改该值 将if entry > 0: sum += entry 更改为while entry >= 0会导致程序中断,因为永远不会使用while entry > 0的初始化输入循环。