首页 > 解决方案 > Python 嵌套 if

问题描述

我对如何使我的程序打印为男性感到困惑。我应该使用嵌套的 if 来询问人们的姓名和头衔(医生、女性、男性),然后打印出女士姓名、先生姓名或博士姓名。如果有人知道我遇到的问题,请回复。

name = input("Enter your name : ")
title = input("Enter your title (doctor, female, male) : ")

female = ("Ms.")
doctor = ("Dr.")
male = ("Mr.")

if title == "doctor":                                                                                                                                                                                                                                                
    if title != "male":
        print(doctor, name)
    else:
        print(male, name)
else:
    print(female, name)

标签: python

解决方案


如果条件为真, Anif只会执行其主体的内容。这里因为“男”的测试在“医生”的测试里面,你已经知道title是“医生”,所以它永远不可能是“男”。

您对男性的检查应该在else分支内:

if title == "doctor":
    print(doctor, name)
else:
    if title == "male":
        print(male, name)
    else:
        print(female, name)

或者您应该使用通常的收缩,在 Python 中称为elif

if title == "doctor":
    print(doctor, name)
elif title == "male":
    print(male, name)
else:
    print(female, name)

推荐阅读