我遇到了一个问题,当我需要检查ff该数字是否可以被3整除时,它应该返回“ Divi”。 如果可以被3整除,则应返回“ Sible”。 如果它可以被2和3整除,则应返回“ DiviSible”。
我尝试了这段代码,但是,如果我的x = 6,我只想显示“可分割”而不是“ divi”和“ sible”。但是,此代码将这三个值返回给我。关于如何使其工作的任何想法?谢谢!
TypeError: Can not infer schema for type: <class 'numpy.ndarray'>
答案 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)
您的问题是典型的FizzBuzz练习题,顺便说一句,它很著名,您应该已经研究过。无论如何,您的代码中有几项应该首先解决:
修复所有问题后,您的代码应如下所示:
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) “不被任何人整除”