Mod余数:如果num在10的倍数的2之内

问题描述 投票:-2回答:5

我必须编写一个函数来查找给定数字(num)是否在10的倍数的2中。我使用模数(%)来获得余数,但它似乎没有正常工作。救命?

def nearten(num):
    if num%10<=2:
        return True
    elif num%10>2:
        return False
python python-3.x division modulus
5个回答
1
投票

最重要的是,你只检查了“1”数字是0,1还是2 - 你错过了8和9。

作为样式注释,不要检查布尔表达式,然后对刚刚找到的结果进行硬编码。您目前编写的函数简化为:

def nearten(num):
    return num%10 <= 2

你看到它是如何工作的吗?首先,elif检查不会给你任何新信息:你已经知道当你超过if条件时结果必须> 2。

然后,你的陈述如下

if this condition is true, return true
otherwise, we know it's false; return false.

那是多余的。你的程序手中有一个True / False值 - 只需返回一个,而不是使用常量。


修理 ...

我将把这作为学生的练习:“在...内”意味着你必须检查双方,所以你必须选择那些数字是8或9的情况。你能写出表达式吗?


1
投票

您可以将此代码编写为:

def near_ten(num):    
    a = num % 10      
    return 2 >= a or 8 <= a 

1
投票

您可以使用三元运算符并检查num是否在10的倍数之内:

def near_ten(num):
  return True if num%10<3 or num%10>7 else False

0
投票

Here is a little help:

def near_ten(num): return num % 10 in [0,1,2,8,9,10]

can also be:

return 0 <= (num % 10) <= 2 or 8 <= (num % 10) <= 10


-1
投票
def near_ten(num):
     if num%10<=2 :
         return True
     elif num%10 >=8:
         return True
     else:
         return False
© www.soinside.com 2019 - 2024. All rights reserved.