如何检查数字是不是可以被另一个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%2
和x%3
并且只检查一次print
s。
@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】:您的问题是典型的 FizzBuzz 练习,顺便说一句,它很有名,您之前应该研究过。无论如何,你的代码有几件事你应该首先修复:
-
缩进 - 尝试使用之前的编辑器来编写代码并
然后粘贴。
如果案例处理 - 您正在评估一个最后有两个条件的案例,但您首先单独评估相同的案例,这将导致您的多案例未使用,因为其中一个条件已经满足。
括号 - 如果案例不使用括号,请将其删除。
变量 - 您的代码显示对不存在的函数的调用,并且它会评估您尚未创建的变量 - 我在所有评估中指的是“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整除的主要内容,如果未能解决你的问题,请参考以下文章