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

Posted

技术标签:

【中文标题】如何检查数字是不是可以被另一个Python整除【英文标题】:How to check if the number is divisible by another one Python如何检查数字是否可以被另一个Python整除 【发布时间】:2019-08-31 12:51:47 【问题描述】:

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

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


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

【问题讨论】:

"如果它可以被 2 和 3 整除,它应该返回“DiviSible”" 和 "if(x%2==0) and (x%3==0): print("Divisible")" 彼此不一致。另外,fizz_buzz() 是在哪里定义的? 大声笑:[CodingHorror]: Why Can't Programmers.. Program?,[CodingHorror.Discourse]: FizzBuzz Solution Dumping Ground。 【参考方案1】:
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")

你应该先检查两个多样性。

【讨论】:

【参考方案2】:

使用单个结果变量:

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

【讨论】:

请注意,这个答案是唯一不会重复的:它只检查x%2x%3 并且只检查一次prints。 @PiCTo,这是恭维吗? 嗯......这意味着,IMO,这个答案比其他答案更好,是的。【参考方案3】:

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

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")

【讨论】:

【参考方案4】:

你必须使用elif,修正你的缩进,并把multicase 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
>>> 

【讨论】:

【参考方案5】:

您的问题是典型的 FizzBu​​zz 练习,顺便说一句,它很有名,您之前应该研究过。无论如何,你的代码有几件事你应该首先修复:

    缩进 - 尝试使用之前的编辑器来编写代码并 然后粘贴。 如果案例处理 - 您正在评估一个最后有两个条件的案例,但您首先单独评估相同的案例,这将导致您的多案例未使用,因为其中一个条件已经满足。 括号 - 如果案例不使用括号,请将其删除。 变量 - 您的代码显示对不存在的函数的调用,并且它会评估您尚未创建的变量 - 我在所有评估中指的是“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")

【讨论】:

【参考方案6】:

下面是代码

定义函数(x): 如果 (x%2==0 和 x%3==0) 则返回 "DiviSible" else "Sible" 如果 x%3==0 else "Divi" if x%2==0 else "Not Divisible by any"

函数(12) '可分' 函数(3) '迪维' 函数(6) '可分' 函数(10) '兄弟姐妹' 函数(11) '不能被任何整除'

【讨论】:

以上是关于如何检查数字是不是可以被另一个Python整除的主要内容,如果未能解决你的问题,请参考以下文章

检查一个数字是不是可以被另一个整除的快速方法?

检查一个数字是不是能被 6 PHP 整除

汇编语言,检查数字是不是可被 2 整除并在循环中打印数字的程序

如何检查一个函数是不是被另一个函数调用?

一个列表(可能)可以被另一个整除吗?

整除问题