python没有';t在main方法中更新int

python没有';t在main方法中更新int,python,int,main,Python,Int,Main,我对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)

我对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()
中的code>number与
randomNumber()
函数中的
number
不同

您的
randomNumber()
函数确实返回了一个新值;将其分配回
main()中的
number

由于在将
number
的原始值传递到
randomNumber()
时忽略了该值,因此可以完全删除这些参数:

def randomNumber():
    number = random.randint(1,10)
    print(number)
    return number

def main():
    number = randomNumber()
    print(number)

if __name__=='__main__':
    main()

不能在另一个函数中更改局部变量<
main()
中的code>number
randomNumber()
函数中的
number
不同

您的
randomNumber()
函数确实返回了一个新值;将其分配回
main()中的
number

由于在将
number
的原始值传递到
randomNumber()
时忽略了该值,因此可以完全删除这些参数:

def randomNumber():
    number = random.randint(1,10)
    print(number)
    return number

def main():
    number = randomNumber()
    print(number)

if __name__=='__main__':
    main()

为什么你要传递数字而不使用它?@padraiccnningham在我的实际程序中我使用它,这只是一个例子下面的答案是最好的方法,但如果你想增加数字,你可以
number+=randomNumber(number)
为什么你传递数字而不使用它?@padraiccnningham在我的实际程序中我使用它,这只是一个例子下面的答案是最好的方法,但是如果你想增加数字,你可以
number+=randomNumber(number)
@padraiccnningham:啊,就是这样;OP在
main()
@padraiccnningham:ah中把它拼错了,的确如此;OP在
main()
中拼写错误。