Python 功能不起作用的协助

Python 功能不起作用的协助,python,list,function,sum,return,Python,List,Function,Sum,Return,我的代码的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 multip

我的代码的
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()
在定义函数之前,调用
show\u list(倍数)

将main函数放在代码末尾,并调用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\u list(倍数)
请将其移动到定义
show\u 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()

mutliples
未在全局范围内定义,仅在show_multiples()的范围内定义

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

show_multiples(input1, input2, input3)


谢谢你的反馈
multiples = show_multiples(input1, input2, input3)