python 不在 main 方法中更新 int
python doesn't update int in main method
我是 python 的新手,我正在努力掌握事情的窍门。这是一个非常简单明了的问题,但我不知道答案。不管怎样,我先post代码:
import pygame,sys
import random
number = 0
def randomNumber(number):
number = random.randint(1,10)
print(number)
return(number)
def main(number):
randomNumber(number)
print(number)
if __name__=='__main__':
main(number)
如果我 运行 这个程序打印出的第一个数字总是从 1 到 10 的数字,但第二个数字总是零。我不想这样,我希望第二个数字与第一个数字相同。我怎样才能做到这一点?那么如何才能成功更新这个int呢?
你不能改变另一个函数中的局部变量; main()
中的 number
不同于 randomNumber()
函数中的 number
。
您的 randomNumber()
函数会 return 一个新值;将其分配回 main()
中的 number
:
def main(number):
number = randomNumber(number)
print(number)
由于在将 number
传递给 randomNumber()
时忽略了它的原始值,因此您可以完全删除参数:
def randomNumber():
number = random.randint(1,10)
print(number)
return number
def main():
number = randomNumber()
print(number)
if __name__=='__main__':
main()
我是 python 的新手,我正在努力掌握事情的窍门。这是一个非常简单明了的问题,但我不知道答案。不管怎样,我先post代码:
import pygame,sys
import random
number = 0
def randomNumber(number):
number = random.randint(1,10)
print(number)
return(number)
def main(number):
randomNumber(number)
print(number)
if __name__=='__main__':
main(number)
如果我 运行 这个程序打印出的第一个数字总是从 1 到 10 的数字,但第二个数字总是零。我不想这样,我希望第二个数字与第一个数字相同。我怎样才能做到这一点?那么如何才能成功更新这个int呢?
你不能改变另一个函数中的局部变量; main()
中的 number
不同于 randomNumber()
函数中的 number
。
您的 randomNumber()
函数会 return 一个新值;将其分配回 main()
中的 number
:
def main(number):
number = randomNumber(number)
print(number)
由于在将 number
传递给 randomNumber()
时忽略了它的原始值,因此您可以完全删除参数:
def randomNumber():
number = random.randint(1,10)
print(number)
return number
def main():
number = randomNumber()
print(number)
if __name__=='__main__':
main()