【问题标题】: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()

【问题讨论】:

标签: python comparison integer-division


【解决方案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 练习,顺便说一句,它很有名,您之前应该研究过。无论如何,你的代码有几件事你应该首先修复:

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

        【讨论】:

          【解决方案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) '不能被任何整除'

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2015-01-26
            • 1970-01-01
            • 1970-01-01
            • 2011-06-26
            • 1970-01-01
            • 1970-01-01
            • 2020-10-23
            • 2011-01-06
            相关资源
            最近更新 更多