2014-08-28 60 views
0

我的代码的show_list功能不起作用。我收到一条消息,指出'multiples'未定义,但我无法确定问题。有人可以请审查和建议,以什么是我做错了。帮助功能不起作用

def main(): 
    input1 = int(input("enter the low integer: ")) 
    input2 = int(input("enter the high integer: ")) 
    input3 = int(input("enter the integer for the multiples: ")) 

    show_multiples(input1, input2, input3) 

    print ("List was created") 


def show_multiples(input1, input2, input3): 

    num_range = range(input2, input1, -1) 
    multiples = [] 

    for num in num_range: 
     if num % input3 == 0: 
      multiples.append(num) 
      return multiples 


    show_list(multiples) 

def show_list(multiples): 

    elem = len(multiples) 
    average = sum(multiples)/elem 
    num_range = range(input2, input1, -1) 

    print ("the list has", elem, "elements.") 

    for num in num_range: 
     if num % input3 == 0: 
     print (num, end=" ") 

    print ("Average of multiples is ", average) 



main() 

回答

0

mutliples没有在全球范围内定义,只有在show_multiples()

范围

你可能想要做的是在全球范围内,改变

show_multiples(input1, input2, input3) 

multiples = show_multiples(input1, input2, input3) 
+0

感谢您的反馈 – user3988476 2014-08-29 02:02:18

1

你叫show_list(multiples)您定义的函数之前show_list

把你的主要功能,在你的代码的结束和调用的main()来运行它:

def main(): 

    input1 = int(input("enter the low integer: ")) 
    input2 = int(input("enter the high integer: ")) 
    input3 = int(input("enter the integer for the multiples: ")) 

    show_multiples(input1, input2, input3) 

print ("List was created") 
main() 

只是调用show_list(multiples)将其移动到show_list定义的位置

您将会遇到更多问题:

def show_list(multiples): 
    elem = len(multiples) 
    average = elem/sum(multiples) 
    print ("the list has", elem, "elements.") 
    # num_range not defined only exists in show_multiples and input3 is also not accessable 
    for num in num_range: 
     if num % input3 == 0: 
      multiples.append(num) 
      print (num) 

不能完全确定你想要什么,但我想这将让你更接近:

input1 = int(input("enter the low integer: ")) 
input2 = int(input("enter the high integer: ")) 
input3 = int(input("enter the integer for the multiples: ")) 
num_range = range(input2, input1, -1) 

def show_multiples(): 
    multiples = [] 
    for num in num_range: 
     if num % input3 == 0: 
      multiples.append(num) 
    return multiples 

def show_list(): 
    multiples = show_multiples() 
    elem = len(multiples) 
    average = elem/sum(multiples) 
    print ("the list has", elem, "elements.") 
    for num in num_range: 
     if num % input3 == 0: 
      multiples.append(num) 
     print (num) 

show_list()