Python 性别的用户输入不起作用

Python 性别的用户输入不起作用,python,if-statement,variables,input,user-input,Python,If Statement,Variables,Input,User Input,我正在尝试制作一个游戏,我是通过python中的Rpg Maker MV制作的,但我在if语句中遇到了一个障碍,或者更确切地说是性别输入。代码的意思是让用户输入“Boy”或“Girl”,这取决于代词的变量“gender”。控制台到底在说什么 这是密码 import time print ("Elvoria") print ("Start") input = input() if input == ("Start&

我正在尝试制作一个游戏,我是通过python中的Rpg Maker MV制作的,但我在if语句中遇到了一个障碍,或者更确切地说是性别输入。代码的意思是让用户输入“Boy”或“Girl”,这取决于代词的变量“gender”。控制台到底在说什么

这是密码

 import time
    print ("Elvoria")
    print ("Start")
    input = input()
    if input == ("Start"):
      print ("Always Great To See New People")
      time.sleep(1)
      print ("Now Are You A Boy Or Girl")
      genderin = input()
    if input == ("Boy"):
      gender = 1
    elif input == ("Girl"):
      gender = 2
    else:
      print ("Error")

您需要使用您定义的变量名
genderin
来检查输入,而不是
input==(“Boy”)
。 编辑:另外,您正在使用变量名
input
镜像内置方法
input()
,您不应该这样做。将变量重命名为,例如
start\u input

import time
print ("Elvoria")
print ("Start")
start_input = input()
if start_input == "Start":
  print ("Always Great To See New People")
  time.sleep(1)
  print ("Now Are You A Boy Or Girl")
  genderin = input()
if genderin == "Boy":
  gender = 1
elif genderin == "Girl":
  gender = 2
else:
  print ("Error")

您将第4行的变量“
input
”定义为一个字符串,由“
input
”函数给出。这将覆盖关键字。然后,在第9行,您再次调用“
input
”。因为您已经用字符串替换了内置函数,所以会抛出一个错误(错误“notcallable”表示您试图将非函数视为函数)

以下是您的代码示例,不覆盖内置方法:

import time
print ("Elvoria")
print ("Start")
user_input = input()
if user_input == ("Start"):
  print ("Always Great To See New People")
  time.sleep(1)
  print ("Now Are You A Boy Or Girl")
  genderin = input()
if genderin == ("Boy"):
  gender = 1
elif genderin == ("Girl"):
  gender = 2
else:
  print ("Error")

您应该避免使用
input
作为可变名称,因为已经存在具有该名称的内置函数,
input()
。所以把它的名字改成别的名字。其次,您正在将性别输入(男孩/女孩)存储在
genderin
中,但在您应该检查
genderin
时,检查
input
。因此,修复这些问题后的代码如下所示:

导入时间
印刷品(“艾尔沃里亚”)
打印(“开始”)
选择=输入()
如果选项==“开始”:
打印(“见到新朋友总是很棒”)
时间。睡眠(1)
打印(“现在你是男孩还是女孩?”)
genderin=input()
如果genderin==“男孩”:
性别=1
elif genderin==“女孩”:
性别=2
其他:
打印(“错误”)
出于演示目的,我使用了
choice
,如果需要,您可以使用不同的名称,请记住确保不存在具有该名称的python内置程序。另外,不需要在if语句中放入
(“Start”)
,而是使用
“Start”
(其他if/elif语句也是如此)

您还使用了
print(“示例”)
(print和方括号之间的空格),我很少看到有人使用它,大多数人使用
print(“示例”)


最后一个提示->您可以将字符串设置为小写,
genderin=genderin.lower()
来管理区分大小写,即
boy
boy
都是有效的输入,等等。

请始终将错误消息作为文本而不是图像包含在内。请注意,
input=input()
只是为用户输入的字符串提供了名称
input
,并且它不再引用函数,因此您以后不能在代码中使用该函数。请使用不同的变量名,更一般地说,不要使用内置函数名作为变量名。@Thierrylahuille发布并编辑原始答案后,我刚刚测试了它。我认为唯一的错误是if条件,所以一开始我没有意识到内置的覆盖。