这是我的 Python 代码:
largest_so_far = -1
print('before', largest_so_far)
for the_num in [9, 41, 12, 3, 74, 15] :
if the_num > largest_so_far :
largest_so_far = the_num
print(largest_so_far, 'is bigger than', the_num)
if the_num == largest_so_far :
largest_so_far = the_num
print(the_num, 'is equal to', the_num)
print(largest_so_far, 'is the largest number!')
但它总是在 cmd 中输出(使用 cmd 运行我的 .py 文件):
-1
9 大于 9
9 等于 9| 之前||41 大于 41
41 等于 41
41 大于 12
12 等于 12
41 大于 3
3 等于 3
74 大于 74
74 等于 74
74 大于 15
15 等于 15
74 是最大的数字!
我怎样才能让它只显示正确的数字?
尝试将 > 替换为 is 或 is not 运算符,但没有成功。
tried replacing the > for is or is not operators but no go.
问题在于的代码在更新
largest_so_far
后立即打印比较结果。此外,不需要第二个
if
语句来检查数字是否相等。
以下是修正后的代码:
largest_so_far = -1
print('Before:', largest_so_far)
for the_num in [9, 41, 12, 3, 74, 15]:
if the_num > largest_so_far:
largest_so_far = the_num
# 将打印语句移到循环的外部
print(largest_so_far, 'is bigger than or equal to all the numbers in the list')
print(largest_so_far, 'is the largest number!')
说明:
-
初始化:
largest_so_far
初始化为一个非常小的数字 (-1),以确保列表中的第一个数字会被认为比它大。 -
迭代:
循环遍历列表
[9, 41, 12, 3, 74, 15]
中的每个数字。 -
比较:
if the_num > largest_so_far:
检查当前数字 (the_num
) 是否大于largest_so_far
。如果是,则将largest_so_far
更新为当前数字。 -
打印结果:
循环结束后,打印
largest_so_far
,它是列表中最大或相等的数字。
此代码将正确识别并打印列表中的最大数字。
标签:python,python-3.x,loops,for-loop From: 78802924