性别的用户输入不起作用

User input for gender not functioning

我正在尝试制作我在 python 中通过 Rpg Maker MV 制作的游戏,但我在 if 语句或更确切地说是性别输入中遇到了障碍。该代码旨在让用户输入“男孩”或“女孩”,并根据该变量为代词设置变量“性别”。控制台怎么说 This

这是代码

 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_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”。由于您已将内置函数替换为字符串,因此会引发错误(错误“不可调用”意味着您正试图将非函数视为函数)。

这是您的代码示例,没有覆盖内置方法:

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()。所以只需将其名称更改为其他名称即可。其次,您将性别输入 (boy/girl) 存储在 genderin 中,然后在您应该检查 genderin 时检查 input。所以修复这些后的代码看起来像这样:

import time
print ("Elvoria")
print ("Start")
choice = input()
if choice == "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")

出于演示目的,我使用了 choice,您可以根据需要使用不同的名称,但请记住确保不存在具有该名称的 python 内置名称。此外,无需在 if 语句中放入 ("Start"),而是使用 "Start"(其他 if/elif 语句也是如此)

你也用过print ("example")(space between print and brackets),我很少看到有人用这个,大多数人用print("example")代替。

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