FizzBuzz程序从不满足其中一个条件

2024-04-23 22:30:31 发布

您现在位置:Python中文网/ 问答频道 /正文

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

如果是三的倍数,则显示“Zip” 如果是5的倍数,则显示“Zap”。 如果是3和5的倍数,则显示“缩放”。 如果不满足上述任何条件,则显示“无效”。你知道吗

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。你知道吗


Tags: 程序消息messageifdefdisplay数字zip
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)

这是因为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

相关问题 更多 >