Python 代码中的elif函数错误

Python 代码中的elif函数错误,python,python-2.7,Python,Python 2.7,我是Python的新手,正在尝试构建一个基于文本的游戏。 第一个问题是你多大了 当用户未输入其年龄时,如何使用if/else语句打印特定消息 例如,如果用户输入一个字符而不是我想打印的字母,请输入一个数字,而不是字符,或者如果用户输入的数字小于12,我想打印您的年龄不够大,如果用户输入的数字大于或等于12,我想说欢迎 我自己写了一些代码来尝试做这件事,花了大约4个小时在上面,但无法理解 这是我的代码块: input_age = raw_input("What is your age, " +

我是Python的新手,正在尝试构建一个基于文本的游戏。 第一个问题是你多大了

当用户未输入其年龄时,如何使用if/else语句打印特定消息

例如,如果用户输入一个字符而不是我想打印的字母,请输入一个数字,而不是字符,或者如果用户输入的数字小于12,我想打印您的年龄不够大,如果用户输入的数字大于或等于12,我想说欢迎

我自己写了一些代码来尝试做这件事,花了大约4个小时在上面,但无法理解

这是我的代码块:

 input_age = raw_input("What is your age, " + input_name + "? ")
 if len(input_age) == 0:
   print("You didn't enter anything")
 elif input_age < 12 and input_age.isdigit():
   print("Sorry, you are not old enogh to play")
 elif input_age >= 12 and input_age.isdigit():
   print ("Welcome")
 else:
   print("You entered a character or characters instead of a digit or digits")
由于某些原因,第4行上的elif被跳过或其他原因,因为即使我输入4作为我的年龄,它仍会继续并打印欢迎,而不是您不够大

@roganjosh是正确的,原始输入返回一个字符串,因此您必须执行以下操作:

input_age = raw_input("What is your age, " + input_name + "? ")
if not input_age:
  print("You didn't enter anything")
elif input_age.isdigit():
   if int(input_age) < 12 :
       print("Sorry, you are not old enogh to play")
   elif int(input_age) >= 12:
     print ("Welcome")
if not input_age.isdigit():
  print("You entered a character or characters instead of a digit or digits")

未插入的Python代码不是一个。缩进很重要。当我试图执行你的程序时,我得到了IndentationError:应该是缩进块,它根本不运行。因此,请检查在将程序粘贴到此中时是否引入了一些错误。将字符串与int进行后比较与将int与int进行比较的结果不同。如果要判断输入是否小于12,请先将其转换为int。原始输入始终返回字符串。感谢Khelwood,这很有意义。如何使用int将其转换为int?非常感谢U8-G=转发。你刚刚帮我解决了。在我的第一个elif中,我只需要输入一个字符,而不是只输入一个字符。但是现在如果我输入一个字符串而不是一个整数,我会得到一个错误,如果一个打印字说不输入字符,如果你用strinputget一个错误替换原始输入,会发生什么,我理解为什么我在输入字符时会出错,因为我的程序现在需要一个int,但我输入了一个字符串,所以它会出错,但我无法思考如何修复它。