我是Python的新手,我查看了其他代码,但不知道如何从我的代码中删除非类型错误,
tutorial = input("Do you want to do the tutorial? 1 is yes and 0 is no, this will be the same for everything")
if tutorial <1:
print("That isn't valid")
if tutorial>0:
print("That isn't valid")
if tutorial == 1:
print("In battle you can use either sword, magic or items. Sword damage will be between your minimum and maximum damage, magic will be constant and can be used to heal or attack, items can be used to boost attack, restore health or armour")
我收到此错误:
Traceback (most recent call last):
File "<string>", line 250, in run_nodebug
File "C:\Users\Bas\Desktop\Game.py", line 50, in <module>
tutorial = input("Do you want to do the tutorial? 1 is yes and 0 is no, this will be the same for everything")
TypeError: 'NoneType' object is not callable
下面是完整的代码:
playerhealth = 100
playerlow = 10
playerhigh = 30
playerarmour = 50
playermagic = 20
level = 0
xptonextlevel = 200
itemuse = 0
rookhealth = 100
rooklow = 10
rookhigh = 20
rookarmour = 100
medichealth = 150
mediclow = 10
medichigh = 30
medicarmour = 50
rushhealth = 20
rushlow = 10
rushhigh = 10
rusharmour = 30
drillerhealth = 30
drillerlow = 50
drillerhigh = 80
drillerarmour = 20
dragonhealth = 200
dragonlow = 150
dragonhigh = 250
dragonarmour = 150
dragonmagic = 100
dragonl = 45
godhealth = 300
godlow = 250
godhigh = 350
godarmour = 250
godmagic = 200
godl = 50
magehealth = 100
magearmour = 0
magemagic = 50
magel = 10
tutorial = input("Do you want to do the tutorial? 1 is yes and 0 is no, this will be the same for everything")
if tutorial <1:
print("That isn't valid")
if tutorial>0:
print("That isn't valid")
if tutorial == 1:
print("In battle you can use either sword, magic or items. Sword damage will be between your minimum and maximum damage, magic will be constant and can be used to heal or attack, items can be used to boost attack, restore health or armour")
se = input("Input 1 for story or 0 for endless")
答案 0 :(得分:1)
您收到此错误,因为标识符input
已分配值None
。在代码中的某处,必须执行以下行。
input = None
NoneType
是单例常量None
的类型。
如果您尝试这样做,您将收到相同的错误:
>>> None("Do you want to do the tutorial?")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'NoneType' object is not callable
Python不会阻止您使用新值覆盖内置函数。有时重新定义函数print
会很有用。但在正常情况下,使用input
,list
,int
等作为变量名称是一个坏主意,因为这会导致此类错误。
您可以通过使用字典而不是声明很长的变量列表来减少意外覆盖标识符的可能性。
gamestate = {
'playerhealth': 100,
'playerlow': 10,
'playerhigh': 30,
'input': None,
'else': 42,
...
您可以将任何字符串用作字典键,而无需担心阴影内置插件。