嘿,我对 python 很陌生,但我已经完成了一些 c++ 和 Javascript 编程,我只是不明白为什么我的变量 x 没有保持其值。
感谢您的帮助,祝您有美好的一天!
a = input("How much xp? :\n")
x = int(a)
w = 100
z = 1
h = 0
def Call():
global a
print "\n"
print x
print "\n"
print "Would you like to Continue ? \n Y/N \n"
j = raw_input("")
if j == "Y":
print "Call \n"
a = input("How much xp? :\n")
Level()
elif j == "N":
return 0
else:
return 0
def Level():
global x
global w
global z
global h
if x >= w:
z = z + 1
print "Your level is " + str(z)
h = x % w
x = x + h
w = w + 50
Call()
else:
print "Your level is " + str(z)
Call()
Level()
最佳答案
您在代码的开头定义了x
,我认为这是将a
转换为整数,以便您可以对其进行操作:
x = int(a)
当您在 Call()
函数中询问所需的经验量时:
a = input("How much xp?\n")
x
永远不会改变,因为赋值 x = int(a)
不会自动再次发生!
重新分配a
后,您需要重新分配x
:
a = input("How much xp?\n")
x = int(a)
但请记住,使用全局变量通常是不好的编程习惯,并且您的程序中实际上不需要其中的某些变量。例如,a
只是一个临时变量,旨在保存变成 x
的字符串,而像 x
这样的变量可以作为参数传入.
此外,我绝对建议在代码中使用一些更具描述性的变量。这不是高中代数:变量可以是任意长度,所以你应该解释一下 a
类似于 input_string
,x
类似于经验
,而j
类似于响应
。
关于Python 全局变量不保存值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21615649/