如何检查数字是否可以被另一个Python整除

时间:2019-08-31 12:51:47

标签: python comparison integer-division

我遇到了一个问题,当我需要检查ff该数字是否可以被3整除时,它应该返回“ Divi”。 如果可以被3整除,则应返回“ Sible”。 如果它可以被2和3整除,则应返回“ DiviSible”。

我尝试了这段代码,但是,如果我的x = 6,我只想显示“可分割”而不是“ divi”和“ sible”。但是,此代码将这三个值返回给我。关于如何使其工作的任何想法?谢谢!

TypeError: Can not infer schema for type: <class 'numpy.ndarray'>

6 个答案:

答案 0 :(得分:0)

您必须使用elif,修复缩进,并将多写if语句置于顶部。无需在语句中使用括号。

def fun_divi(x):
    if x%2==0 and x%3==0:
        print("Divisible")
    elif x%2==0:
        print("Divi")
    elif x%3==0:
        print("Sible")  
    else:
        print("Not divisible by any")

如果您想使用更简单的方法:

def fun_divi(x):

    if not x % 2 or not x % 3:
        if not x%2: print("Divi", end = "")
        if not x%3: print("S" if x%2 else "s", "ible", end = "", sep = "")
        print("")
    else:print("Not divisible by any")

测试:

>>> fun_divi(6)
Divisible
>>> fun_divi(5)
Not divisible by any
>>> fun_divi(3)
Sible
>>> fun_divi(2)
Divi
>>> 

答案 1 :(得分:0)

使用单个结果变量:

def fun_divi(x):
    res = ''
    if (x % 2 == 0):
        res += "divi"
    if (x % 3 == 0):
        res += "sible"

    print("Not divisible by any" if not res else res.capitalize())

fun_divi(6)   # Divisible
fun_divi(9)   # Sible
fun_divi(5)   # Not divisible by any

答案 2 :(得分:0)

那是因为您应该按降序使用条件,例如

def fun_divi():
    if(x%2==0) and (x%3==0):
        print("Divisible")
    elif(x%3==0):
        print("Divi")
    elif(x%2==0):
        print("Sible")
    else:
        print("Not divisible by any")

答案 3 :(得分:0)

if(x%2==0) and (x%3==0):
  print("Divisible")
elif(x%2==0):
  print("Divi")
elif(x%3==0):
  print("Sible") 
else:
  print("Not divisible by any")

您应该先检查两个分集。

答案 4 :(得分:0)

您的问题是典型的FizzBu​​zz练习题,顺便说一句,它很著名,您应该已经研究过。无论如何,您的代码中有几项应该首先解决:

  1. 缩进-尝试使用以前的编辑器编写代码,然后 然后粘贴。
  2. 如果是案例处理-您正在评估一个带有两个条件的案例,但是首先要分别评估相同的案例,这将使您的多案例处于未使用状态,因为其中一个条件已经满足。
  3. 方括号-如果案件不使用方括号,则将其删除。
  4. 变量-您的代码显示的是对某个函数的调用,而该调用不存在,并且它对尚未创建的变量进行评估-我在所有评估中均指“ x”。

修复所有问题后,您的代码应如下所示:

def fun_divi(x):
    if x%2==0 and x%3==0:
        print("DiviSible")

    elif x%2==0:
        print("Divi")

    elif x%3==0:
        print("Sible")

    else:
        print("Not divisible by any")

答案 5 :(得分:0)

以下是代码

  
    
      

def func(x):           如果(x%2 == 0和x%3 == 0),则返回“ DiviSible”;否则,如果x%3 == 0,则返回“ Sible”;否则,如果x%2 == 0,则返回“ Divi”;否则,“不被任何人整除” < / p>              

功能(12)       “可分割”       函数(3)       'Divi'       函数(6)       “可分割”       函数(10)       '紫貂'       函数(11)       “不被任何人整除”