FizzBu​​zz程序从不满足以下条件之一

时间:2019-07-04 07:37:51

标签: python if-statement modulus fizzbuzz

编写一个Python程序,显示给定编号的消息如下:

如果是三的倍数,则显示“邮政编码” 如果是5的倍数,则显示“ Zap”。 如果它是三和五的倍数,则显示“缩放”。 如果不满足上述任何条件,则显示“无效”。

def display(num):
    message="Zip, Zap, Zoom"

    if(num%3==0):
      print("Zip")
    elif(num%5==0):
      print("Zap")
    elif((num%3==0) and (num%5==0)):
      print("Zoom")
    else:
      print("Invalid Number")
    return message


message=display(15)
print(message)

我希望输出15是Zoom,但实际输出是Zip。

4 个答案:

答案 0 :(得分:2)

您需要重新排列if ... elif ... else语句

如果if的条件为False,它将检查下一个elif块的条件,依此类推,但是如果其中一个语句为true,则执行该语句并退出。

如果所有条件均为False,则执行else主体。

def display(num):

    if((num%3==0) and (num%5==0)):
        message = "Zoom"
    elif(num%3==0):
        message = "Zip"
    elif(num%5==0):
        message = "Zap"
    else:
      print("Invalid Number")
    return message


message=display(3)
print(message)

答案 1 :(得分:1)

这是因为15是3的倍数并且满足第一个条件,所以输出为“ Zip”。您可以按照以下步骤简单地对其进行修复:

if(num%3==0 and num%5!=0):
  print("Zip")
elif(num%5==0 and num%3!=0):
  print("Zap")
elif((num%3==0) and (num%5==0)):
  print("Zoom")
else:
  print("Invalid Number")
return message

答案 2 :(得分:1)

替代方案:[从用户那里获取价值。希望有帮助!]

num=int(input("Enter the value : "))

if(num % 5 == 0):
    if(num % 3 == 0):
        print("Zoom")
    else:
         print("Zap") 
elif(num % 3 == 0):
     print("Zip")
else:
     print("invalid")

答案 3 :(得分:0)

Java 中的解决方案

<块引用>

实现一个程序,根据以下条件显示给定数字的消息。 如果数字是 3 的倍数,则显示“Zip”。 如果数字是 5 的倍数,则显示“Zap”。 如果数字是 3 和 5 的倍数,则显示“缩放”, 对于所有其他情况,显示“无效”。

class ZipZapZoom 
{
    public static void main(String[] args) 
    {
        // Implement your code here 
        int num = 10;
        if(num % 3==0 & num %5 == 0)
        {
            System.out.println("Zoom");
            
        }
        else if(num % 5 == 0)
        {
            System.out.println("Zap");
        }
        else if(num % 3==0)
        {
            System.out.println("Zip");
        }
        else
        {
            System.out.println("Invalid");
        }
    }
}