首页 > 解决方案 > 为什么它显示错误的数字?

问题描述

maximum=None
while True:
    num= raw_input('Enter Number : ')
    if num== 'done':
        break
    if num > maximum:
        maximum=num
        
print ('max is', maximum) 

标签: pythonpython-2.7

解决方案


从它的外观来看,您正试图获得输入的最大值。在我看来,您的代码看起来完全错误,所以我会帮助您修复它。

首先,我会这样做(抱歉,堆栈溢出不允许我将其粘贴为代码):

我不得不将其发布为图像

现在,让我给你解释一下。

第 1 行定义了一个函数,该函数将帮助我们将输入转换为数组,稍后将需要该函数。第 2 行创建了一个空列表,我们称之为 1st。第 4 行用逗号分割输入,并使用 for 循环将每个值作为 INTEGER 添加到 lst。第 5 行返回列表。

这就是函数的结束。接下来,我们定义 2 个关键变量。

第 7 行调用 input_to_list 函数并将 num 设置为我们输入的列表。第8行将最大值设置为0,与0基本相同。我没有使用None的原因是因为None不是整数,所以它会在后面的行中返回错误。

这就是定义的变量。接下来,我们执行一个获取最大值的循环。

第 10 行启动了一个 for 循环,该循环对列表中的每个项目 num 进行循环。第 11 行检查数组中项目的值是否大于最大值,即 0,即可能的最小值。如果 i 大于最大值,第 12 行将新的最大值设置为项目的值。因为它是一个 for 循环,所以它对循环中的每个项目都执行这个确切的条件。

示例:假设我们有一个列表 [1, 5, 3, 12, 9]。这就是程序所做的。是 1 > 0。是的。所以maximum = 1。是 5 > 1。是的。所以maximum = 5。是 3 > 5。不,所以maximum still = 5。是 12 > 5。是的。所以maximum = 12。是 9 > 12。不,所以maximum still = 12

因此,最大值必须为 12。

最后,在第 14 行,我们打印它。


推荐阅读