【问题标题】:How do you print returned values from multiple functions?如何打印多个函数的返回值?
【发布时间】:2021-10-23 17:29:01
【问题描述】:

我有一个用于转换简单指标的程序。我是 python 的超级菜鸟,需要一点帮助。

def main():
    use_menu()
    if feet_inches():
        

def use_menu():
    get_menu()
    selection = int(input('Please make a menu selection:'))
    if selection == 1:
        feet_inches()
    elif selection == 2:
        yards_feet()
    elif selection == 3:
        miles_yards()
    elif selection == 4:
        miles_feet()


def get_menu():
    print('1. Convert feet to inches')
    print('2. Convert yards to feet')
    print('3. Convert miles to yards')
    print('4. Convert miles to feet')
    print('5. Exit')


def feet_inches():
    feet2inches = int(input('Enter the number of feet:'))
    answer1 = feet2inches / 3
    return answer1


def yards_feet():
    yards2feet = int(input('Enter the number of yards:'))
    answer2 = yards2feet * 3
    return answer2


def miles_yards():
    miles2yards = int(input('Enter the number of miles:'))
    answer3 = miles2yards * 1760
    return answer3


def miles_feet():
    miles2feet = int(input('Enter the number of miles:'))
    answer4 = miles2feet * 5280
    return answer4


main()

如何在我的主函数中打印返回值?当我尝试将 answer1 设置为 main 函数中的变量时,我不断得到未解析的引用。我也在为如何为此编写 if/elif 而苦苦挣扎。只需朝正确的方向轻轻一点,我们将不胜感激。

【问题讨论】:

    标签: python function printing return-value


    【解决方案1】:

    第 3 行:

    if feet_inches():
    

    下面没有条件动作。

    您可以尝试这样的操作:删除上面的第 3 行。

    def use_menu():
        get_menu()
        selection = int(input('Please make a menu selection:'))
        if selection == 1:
            fi = feet_inches()
            print(fi)
        elif selection == 2:
            yf = yards_feet()
            print(yf)
        elif selection == 3:
            my = miles_yards()
            print(my)
        elif selection == 4:
            mf = miles_feet()
            print(mf)
    

    【讨论】:

    • 是的,这是我坚持的部分。当我尝试将返回值设置为要打印的变量时,我得到未解析的引用。
    • 我在上面编辑了你的代码,试试看,这应该可以满足你的需要。
    • 这帮助很大。如果我没有在 use_menu 中打印返回的值,我猜它们会丢失,因为我没有将它们返回到我的主函数?谢谢你告诉我我错过了什么。
    • 在函数末尾使用一个 print 语句而不是每个 if 选项都有一个语句不是更有意义吗?清晰但重复。
    • 我同意,但由于他是 python 新手,越容易理解越好。
    【解决方案2】:

    您也可以在 use_menu 中使用 return 语句。然后将答案设置为等于该函数在主函数中返回的值。

    def main():
        answer = use_menu()
        print(answer)
    
    
    def use_menu():
        get_menu()
        selection = int(input('Please make a menu selection:'))
        if selection == 1:
            return feet_inches()
        elif selection == 2:
            return yards_feet()
        elif selection == 3:
            return miles_yards()
        elif selection == 4:
            return miles_feet()
    

    【讨论】:

    • 这有点令人困惑,因为你不会认为use_menu 会返回一个值
    • 我同意,但我不想对原代码改动太多。只需为他的问题添加一个解决方案即可。
    【解决方案3】:

    您可以按如下方式更改您的代码:

    def main():
        # First, retrieve function to be applied
        func = use_menu()
        if func is not None:
            # Apply function - Could be done in one liner
            res = func()
            print(res)
        
    
    def use_menu():
        get_menu()
        selection = int(input('Please make a menu selection:'))
        if selection == 1:
            return feet_inches
        elif selection == 2:
            return yards_feet
        elif selection == 3:
            return miles_yards
        elif selection == 4:
            return miles_feet
        else:
            return None
    

    【讨论】:

    • 非常感谢您的回复。在您和其他最佳答案之间,它确实帮助我理解了我做错了什么。
    • @Neekolie 很高兴它对您有所帮助
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-22
    • 2020-01-29
    • 2015-12-01
    • 2018-08-28
    • 1970-01-01
    • 2020-01-26
    相关资源
    最近更新 更多