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',然后把它设置为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
这里有两个问题:
Male
需要用引号包起来,这样它才能变成一个 字符串:gender = "Male"
否则会出现
NameError
错误,因为Male
没有定义。名字
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
。这样做可以让你在每个条件判断中都不需要再单独调用一次。