我对python很陌生,我正在努力掌握窍门。这是一个非常简单明了的问题,但我不知道答案。无论如何,我将首先发布代码:
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()
函数确实返回一个新值;将其赋回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()