【发布时间】:2018-01-31 14:43:59
【问题描述】:
只是通过一本 Python 3.x 自学书。我有一个基本代码,它允许用户输入一个非负整数序列。当用户输入负整数时,序列停止并打印结果。看起来是这样的:
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 条件而不是 >=,这不会影响程序。但是,如果我将 >= 换成 > in while 语句,程序将在运行后立即停止,显示 Sum=0,不允许用户输入任何整数。为什么交换 if 条件不会改变任何东西,但交换 while 条件会影响程序?
【问题讨论】:
-
entry从零开始。如果while条件需要entry > 0,则永远不会进入循环。 -
你明白
while循环的任务是什么吗? -
各位评论者应该仔细阅读问题。
-
对于这类问题,Pythontutor 是一个很好的工具,可以帮助您了解为什么会发生这种情况。
-
旁白:为您自己的对象使用内置函数的名称(尤其是像
sum这样常见且有用的名称)被认为是一种不好的形式。如果您的指南推荐该名称,我会怀疑它对 Python 风格的把握。 (当然,它在许多其他方面可能仍然非常有用。)
标签: python