再次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
然而它不喜欢这个,我知道它不会,但值得一试。
提前致谢! :)
答案 0 :(得分:1)
这里有两个问题:
Male
需要附上引号,以便它变为string literal:
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
。这使您不必每个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
,则更容易阅读和理解。