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()