Python:测试一个数字是否在1000或2000之内

时间:2018-02-21 13:16:13

标签: python python-3.x

在阅读问题之后,我无法解决问题,所以我阅读了下面的解决方案,但仍然没有任何线索意味着什么。任何人都可以告诉我问题的目标以及下面的代码如何解决问题?

以下是解决问题的示例代码:

def near_thousand(n):
  return ((abs(1000 - n) <= 100) or (abs(2000 - n) <= 100))
print(near_thousand(1000))
print(near_thousand(900))
print(near_thousand(800))   
print(near_thousand(2200))

1 个答案:

答案 0 :(得分:2)

基本上,如果数字接近1000或2000(最大距离为100),则需要测试。由于它是一个测试,你想要返回True或False:所选的数字IS或IS不足以接近1000或2000.

总结一下,你必须建立一个由两部分组成的条件: 如果n是您选择的号码,您将测试:

条件1:dist(n,1000)是否为100?

条件2:dist(n,2000)是否为100?

dist(a,b)在这种情况下是| a-b |

所以在Python中,条件1相当于

(abs(1000-n) <= 100)

和条件2相当于

(abs(2000-n) <=100)

更准确地说,在定义n之后的Python中,如果是这样的话,那么行(abs(1000-n)&lt; = 100)将返回True,如果不是,则返回False。

最后,要获得整个解决方案,您只需重新组合条件1和条件2,使用保留字&#34;或&#34;:

完成条件:

(abs(1000-n) <= 100) or (abs(2000-n) <= 100)
如果是这种情况,

将返回True,如果不是,则返回false。

在你提出的答案中,老师将这个条件存储在一个函数中,以便根据任何想要的数字进行测试:

def near_thousand(n):
    return ((abs(1000 - n) <= 100) or (abs(2000 - n) <= 100))
然后,他为不同的n:

值执行此函数
print(near_thousand(1000)) #which will show True
print(near_thousand(900)) #which will show True
print(near_thousand(800)) #which will show True
print(near_thousand(2200)) #which will show False

希望这有帮助!