Python babynames项目试图验证用户输入

时间:2017-03-20 16:19:41

标签: python

我是Python和编程的新手,并希望获得有关如何使此代码段有效的一些有用的建议。

整个程序在两个文本文件中搜索婴儿名称及其排名。第一个try / except语句可以根据需要工作,但第二个是给我一些麻烦。

我需要用户输入'boy'或'girl'来确定要开始搜索的文件。如果用户拼错或输入除男孩或女孩以外的任何内容,我需要显示错误“无效的性别”。就像现在一样,我收到以下错误 -

追踪(最近一次呼叫最后一次):

文件“C:/ Users / Drew / Documents / CIT 144 / babynames.py”,第14行,in     如果输入== boy:

NameError:名称'boy'未定义

我完全不知道接下来要做什么,我知道我需要定义名字'男孩',但我不知道在哪里或怎么做。

提前感谢所有回复。

try:
     boyfile = open("boynames2014.txt", "r")
     girlfile = open("girlnames2014.txt", "r")

 except IOError:
     print("Error: file not found")




 try:
      gender = input("Enter gender (boy/girl): ")
      if input == boy:
          print("Enter name to search for: ",name)
      if input == girl:
          print("Enter name to search for: ",name)



 except IOError:
     print("Invalid gender")

2 个答案:

答案 0 :(得分:2)

boygirl需要成为字符串。

  if input == "boy":
      ...
  if input == "girl":
      ...

注意,此比较中没有任何内容会引发IOError,因此您不应该尝试捕获该异常。

答案 1 :(得分:0)

尝试这种方式:

 try:
  gender = input("Enter gender (boy/girl): ")
  if input == "boy":
      print("Enter name to search for: ",name)
  if input == "girl":
      print("Enter name to search for: ",name)

您正在与文字进行比较。文字文字应该用引号括起来。