几天前,我决定开始学习Python (作为一个本地C++程序员),我在这里遇到了一个愚蠢的编码问题:
给定一个非负数" num ",如果num在10的倍数的2以内,返回True。
我已经得到了我认为非常特别的解决方案,我希望有经验的python程序员能给我一个更干净的解决方案。提前感谢!
我的解决方案:
def near_ten(num):
return abs(num%10) in [0,1,2,8,9]发布于 2017-04-25 04:21:11
这真的很不错!不过,我可能会在abs(..)中使用num。我可能使用一个集合而不是一个列表--这并没有多大的区别,但在我看来,它稍微提高了可读性。
def near_ten(num):
return abs(num)%10 in {0, 1, 2, 8, 9}请注意,与下面的解决方案相比,我更喜欢上面带有注释的解决方案。
def near_ten(num):
return abs(abs(num)%10 - 10) <= 2发布于 2017-04-25 04:49:03
你为什么不试着遵循解决方案。
def near_ten(num):
return not(2 < (num % 10) < 8)发布于 2017-04-25 04:28:22
我会这样做:
def near_ten(num):
return abs(num%10 - 10) <= 2更新:添加了另一个检查以使其工作,尽管现在它的可读性较低
def near_ten(num):
return num%10 <=2 or abs(num%10 - 10) <= 2https://stackoverflow.com/questions/43601461
复制相似问题