阅读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,不允许用户输入任何整数。如果条件没有改变任何东西,为什么交换,但是当条件影响程序时进行交换?
答案 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
的初始化输入循环。