在阅读问题之后,我无法解决问题,所以我阅读了下面的解决方案,但仍然没有任何线索意味着什么。任何人都可以告诉我问题的目标以及下面的代码如何解决问题?
以下是解决问题的示例代码:
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))
答案 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
希望这有帮助!