Python 3.4 - 简单问候程序

0 投票
2 回答
3915 浏览
提问于 2025-04-18 13:10

又是一个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',然后把它设置为Male或者Female。我不太确定怎么从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

与其写成 choice = input("请输入 'M' 表示男性或 'F' 表示女性\n),不如直接把结果放到性别这个变量里,像这样: gender = input("请输入 'M' 表示男性或 'F' 表示女性\n)

然后如果你想检查用户是不是男性,比如说,你可以这样做:

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

其实你给 gender 这个变量起什么名字并不重要,如果你想的话,可以叫它 choice。不过用 gender 这个名字会更容易让人理解。

1

这里有两个问题:

  1. Male 需要用引号包起来,这样它才能变成一个 字符串

    gender = "Male"
    

    否则会出现 NameError 错误,因为 Male 没有定义。

  2. 名字 choice 没有定义,因为你把输入命名为 genderInput

你的代码应该是这样的:

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。这样做可以让你在每个条件判断中都不需要再单独调用一次。

撰写回答