【发布时间】:2016-07-30 16:49:05
【问题描述】:
这是一个问题: 使用 for 循环,编写一个名为 getMax4 的 函数,它接收一个数字列表。它确定并返回可被 4 整除的最大数。 如果参数是一个空列表,该函数返回 -999。如果参数列表中没有数字可以被 4 整除,则该函数返回 0。 以下显示了在 python shell 中调用函数时的示例输出:
我的代码:
# What im trying to do is e.g. let's say:
List=[1,2,3]
maximum=List[0]
for num in List:
if num > maximum:
maximum = num
print(maximum)
通过执行 for 循环,它首先将 List[0] 与 1 与列表中的“1”进行比较。将 1 与 1 比较后,没有区别,因此 max 仍然是 1。现在它移动到第二次迭代,maximum=List[0](即列表中的 1),现在与列表中的 2 进行比较。现在 2 高于最大值,因此它将新的最大值更新为 2。(抱歉英语不好) 所以问题是,当我尝试使用空集时,它会让我的索引超出范围。
另一个问题是,当我输入样本输出中给出的值时,我得到的只是 0。
List=[]
def getMax4 (List):
highest=List[0]
for num in List:
if num % 4 == 0:
if num > highest:
highest = num
return highest
elif num == [] :
return -999
else:
return 0
【问题讨论】:
-
您似乎忘记了提问。我们只有你的任务和你的代码。没有关于你对该代码做什么,或者当你运行它时会发生什么。或者您希望我们为此提供什么帮助。
-
我使用翼翼。如何附上照片?
-
您遇到的问题是因为一旦找到可整除的数字,您就会立即返回
highest。相反,在 for 循环外用 0、return highest初始化highest,并检查List是否为空(在 for 循环外),而不是数字。 -
@L3viathan 你能给我看看你是怎么做的吗?
-
@Heehweicheng 一旦你编辑你的问题,包括你有什么问题,以及你试图解决的问题。
标签: python python-3.x