首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python near_ten函数/方法

Python near_ten函数/方法
EN

Stack Overflow用户
提问于 2017-04-25 04:13:25
回答 6查看 404关注 0票数 0

几天前,我决定开始学习Python (作为一个本地C++程序员),我在这里遇到了一个愚蠢的编码问题:

给定一个非负数" num ",如果num在10的倍数的2以内,返回True。

我已经得到了我认为非常特别的解决方案,我希望有经验的python程序员能给我一个更干净的解决方案。提前感谢!

我的解决方案:

代码语言:javascript
复制
def near_ten(num):
    return abs(num%10) in [0,1,2,8,9]
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2017-04-25 04:21:11

这真的很不错!不过,我可能会在abs(..)中使用num。我可能使用一个集合而不是一个列表--这并没有多大的区别,但在我看来,它稍微提高了可读性。

代码语言:javascript
复制
def near_ten(num):
    return abs(num)%10 in {0, 1, 2, 8, 9}

请注意,与下面的解决方案相比,我更喜欢上面带有注释的解决方案。

代码语言:javascript
复制
def near_ten(num):
    return abs(abs(num)%10 - 10) <= 2
票数 1
EN

Stack Overflow用户

发布于 2017-04-25 04:49:03

你为什么不试着遵循解决方案。

代码语言:javascript
复制
def near_ten(num):

    return not(2 < (num % 10) < 8)
票数 1
EN

Stack Overflow用户

发布于 2017-04-25 04:28:22

我会这样做:

代码语言:javascript
复制
def near_ten(num):
    return abs(num%10 - 10) <= 2

更新:添加了另一个检查以使其工作,尽管现在它的可读性较低

代码语言:javascript
复制
def near_ten(num):
    return num%10 <=2 or abs(num%10 - 10) <= 2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43601461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档