【问题标题】:python doesn't update int in main methodpython不会在main方法中更新int
【发布时间】:2015-06-15 19:57:25
【问题描述】:

我对 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 呢?

【问题讨论】:

  • 你为什么传递号码而不使用它?
  • @PadraicCunningham 在我的实际程序中我使用它,这只是一个例子
  • 下面的答案是最好的方法,但如果你想增加数字,你可以number+= randomNumber(number)

标签: python int main


【解决方案1】:

您不能在另一个函数中更改局部变量; main() 中的 numberrandomNumber() 函数中的 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()

【讨论】:

  • @PadraicCunningham:啊,原来如此; OP 在main() 中拼写错误。
猜你喜欢
  • 2011-06-19
  • 2019-08-01
  • 1970-01-01
  • 2023-04-05
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 2018-08-11
  • 2017-02-02
相关资源
最近更新 更多