Python 3.4 - 简单的问候语程序

时间:2014-07-13 23:12:00

标签: python python-3.4

再次Python业余爱好者......我正在制作一个简单的问候语节目。在以下功能中,用户输入他们的性别。我希望它能让用户输入男性M或女性F,所以很简单。所以我使用了以下代码:

def genderFunction(firstName, fullName):
    print("%s, what is your gender?"%firstName)
    choice = input("Enter 'M' for Male or 'F' for Female\n")

我想要它做的是从M或F,创建一个名为'gender'的新变量,并将其设为男性或女性。我不确定如何从M / F输入中执行此操作。有人可以帮忙吗?请记住我是这个东西的新手。我这样做了尝试:

def genderFunction(firstName, fullName):
    print("%s, what is your gender?"%firstName)
    choice = input("Enter 'M' for Male or 'F' for Female\n")
    if(choice.upper() == "M"):
      gender = Male

然而它不喜欢这个,我知道它不会,但值得一试。

提前致谢! :)

2 个答案:

答案 0 :(得分:1)

这里有两个问题:

  1. Male需要附上引号,以便它变为string literal

    gender = "Male"
    

    否则,NameError将被引发,因为Male未定义。

  2. 名称choice未定义,因为您将输入命名为genderInput

  3. 以下是您的代码:

    def genderFunction(firstName, fullName):
        print("%s, what is your gender?"%firstName)
        genderInput = input("Enter 'M' for Male or 'F' for Female\n").upper()
        if genderInput == "M":
            gender = "Male"
        elif genderInput == "F":
            gender= "Female"
    

    您也会注意到我在获取输入的行的末尾调用了str.upper。这使您不必每个if语句调用一次。

答案 1 :(得分:0)

而不是choice = input("Enter 'M' for Male or 'F' for Female\n)您可以立即将其置于性别中,如下所示:gender = input("Enter 'M' for Male or 'F' for Female\n)

然后,如果您想检查用户是否是男性,例如,您可能会执行以下操作:

if gender == 'M':
    #do stuff here

您所谓的gender并不重要,如果您愿意,可以将其保留为choice。如果您将其作为gender,则更容易阅读和理解。