Python I';我试图让两个怪物在给定用户输入的情况下战斗,并不断得到一个全局错误?
然后,正如您在代码底部看到的,我也将其输入到下一个方法battleNow(); 理想情况下,它会提供上一个方法中输入的怪物信息1和2,然后我可以获取这3个变量,AFF | HP | AD,我想在现在的battleNow方法中,我可以根据亲和因子/他们的HP/和他们的AD,做出一些if/else语句,说明哪一个更强Python I';我试图让两个怪物在给定用户输入的情况下战斗,并不断得到一个全局错误?,python,jython,Python,Jython,然后,正如您在代码底部看到的,我也将其输入到下一个方法battleNow(); 理想情况下,它会提供上一个方法中输入的怪物信息1和2,然后我可以获取这3个变量,AFF | HP | AD,我想在现在的battleNow方法中,我可以根据亲和因子/他们的HP/和他们的AD,做出一些if/else语句,说明哪一个更强 def getmonsterData(): monster1 = raw_input("Enter the Monster 1's Affinity|HP|AD> "
def getmonsterData():
monster1 = raw_input("Enter the Monster 1's Affinity|HP|AD> ")
x = monster1.index('|')
y = monster1.index('|',x+1)
Affinity1 = monster1[:x]
HP1 = monster1[x+1:y]
AD1 = monster1[y+1:]
printNow(Affinity1+"|"+HP1+"|"+AD1)
monster2 = raw_input("Enter the Monster 2's Affinity|HP|AD> ")
x = monster2.index('|')
y = monster2.index('|',x+1)
Affinity2 = monster2[:x]
HP2 = monster2[x+1:y]
AD2 = monster2[y+1:]
printNow(Affinity2+"|"+HP2+"|"+AD2)`
函数getMonsterData()或main应该调用函数globalSuit()。 您得到的错误是,当您调用函数battleNow()时,您的变量尚未定义为全局变量。 修复示例:
"======= Loading Progam =======
Enter the Monster 1's Affinity|HP|AD> Earth|50|10
Earth|50|10
Enter the Monster 2's Affinity|HP|AD> Water|55|10
Water|55|10
The error was:AD1
Name not found globally.
A local or global name could not be found. You need to define the function or variable before you try to use it in any way."
我所要做的就是不为我的全局变量创建一个单独的方法,而是将它放在主getmonsterData()中
我想我已经解决了我需要的。。谢谢大家 这似乎没有解决问题。。我将代码更改为def globalSuit():global Affinity1 global HP1 global AD1 global Affinity2 global HP2 global AD2 def getmonsterData():globalSuit();monster1=raw|u输入(“输入怪物1的亲缘关系”| HP | AD>”)x=monster1.index(“|”)y=monster1.index(“|”,x+1)def battleNow():if(AD1>AD2):奇怪。为什么要在函数中声明全局变量,为什么不在每个函数的main或外部声明它们?我只知道问题是在getMonsterData()之外无法识别这三个变量;我想创建一个方法,并为这些变量填充全局命令,这将适用于battleNow();以及我打算实施的其他方法?
if (AD1 > AD2):
printNow("Monster 1 is stronger")
if (AD1 < AD2):
printNow("Monster 2 is stronger")`
"======= Loading Progam =======
Enter the Monster 1's Affinity|HP|AD> Earth|50|10
Earth|50|10
Enter the Monster 2's Affinity|HP|AD> Water|55|10
Water|55|10
The error was:AD1
Name not found globally.
A local or global name could not be found. You need to define the function or variable before you try to use it in any way."
def getmonsterData():
globalSuit()
monster1 = raw_input("Enter the Monster 1's Affinity|HP|AD> ")
x = monster1.index('|')
y = monster1.index('|',x+1)
Affinity1 = monster1[:x]
HP1 = monster1[x+1:y]
AD1 = monster1[y+1:]
printNow(Affinity1+"|"+HP1+"|"+AD1)
monster2 = raw_input("Enter the Monster 2's Affinity|HP|AD> ")
x = monster2.index('|')
y = monster2.index('|',x+1)
Affinity2 = monster2[:x]
HP2 = monster2[x+1:y]
AD2 = monster2[y+1:]
printNow(Affinity2+"|"+HP2+"|"+AD2)`