在python函数中使用全局数字

时间:2015-03-22 11:37:13

标签: python function python-2.7 variables

所以,我试图制作一个简单的python程序来播放名为number.mp3(1.mp3,2 .mp3 ......)的mp3文件,我有两个功能:

import pygame
import random

def random2():
    number= random.randrange (10)

def function():
    random2()
    pygame.mixer.init(44100)
    pygame.mixer.music.load(str(number) + ".mp3")
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy() == True:
        continue

function()

random2查找一个ranmdom数并将其保存为一个名为number的变量,然后,在函数y中尝试查找它,但是终端(我在linux中运行它)说:

  File "./program.py", line 23, in <module>
    function()
  File "./program.py", line 18, in function
    pygame.mixer.music.load(str(number) + ".mp3")
NameError: global name 'number' is not defined

我已尝试在第一个定义数字,global number和随机函数内部,但它不起作用 有人能帮助我吗?这可能是一个愚蠢的问题,但我从这开始,谢谢

3 个答案:

答案 0 :(得分:0)

random2()函数应返回随机数,而不是将其存储在变量中。然后,您可以将其称为number = random2()

答案 1 :(得分:0)

试试这个:

def random2():
    global number
    number = random.randrange(10)

def function():
    global number
    random2()
    pygame.mixer.init(44100)
    pygame.mixer.music.load(str(number) + ".mp3")
    pygame.mixer.music.play()
    while pygame.mixer.music.get_busy() == True:
        continue

虽然如果你使用全局变量,那就错了。我强烈推荐其他答案中给出的方法,即从number返回值random2(),然后将其称为:number = random2()

答案 2 :(得分:-1)

只需声明为number = random2 () ...这样就可以从random2 () ...

返回声明