【发布时间】:2020-09-04 20:12:05
【问题描述】:
我有一个 python 函数,我需要在列表“值”中找到最接近给定数字“n”但大于或等于“n”的数字。
到目前为止,我有这个:
def nearest_largest_value2 (n, values):
closest = []
for i in values:
if i == n:
closest = i
elif (i > n) and (i-n < 2):
closest = i
return closest
print(nearest_largest_value2(5, [1,3,4,6,7]))
print(nearest_largest_value2(5, [7,6,4,3,1]))
print(nearest_largest_value2(5, [1,3,4,5,6,7]))
问题是我得到了前两个打印语句的答案 (6) 但是当我想得到 5 时,我在最后一个打印语句中得到 '6'。
我是 Python 新手,但我认为一旦满足第一个 if 子句,代码就会停止。
【问题讨论】:
-
你需要找到n和每个值之间的最小差。
-
一旦在列表中找到
n,为什么还要继续寻找?