Python 性别的用户输入不起作用
我正在尝试制作一个游戏,我是通过python中的Rpg Maker MV制作的,但我在if语句中遇到了一个障碍,或者更确切地说是性别输入。代码的意思是让用户输入“Boy”或“Girl”,这取决于代词的变量“gender”。控制台到底在说什么 这是密码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&
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条件,所以一开始我没有意识到内置的覆盖。