【问题标题】:Function in Python not producing output?Python中的函数不产生输出?
【发布时间】:2016-12-05 12:48:19
【问题描述】:

每当我输入以下代码时:

def in_fridge():
    try:
        count = fridge[wanted_food]
    except KeyError:
        count = 0
    return count

fridge = {"apples": 10, "oranges": 3, "milk": 9}
wanted_food = "apples"
in_fridge()

进入IDLE,输出“10”。

当我在代码编辑器中输入相同的代码然后按 F5 时,没有任何输出。作为测试,我在代码编辑器中新建了一个文件,输入:

print ("Hello World") 

并尽职尽责地得到输出结果,即 hello world 从 IDLE shell 显示在新窗口中。

所以我很好奇为什么当我输入完全相同的代码时,我会在 IDLE 环境中而不是代码编辑器中显示一个值。

【问题讨论】:

  • 您的第一个代码 sn-p 中没有任何 print
  • 这个问题其实和IDLE无关。显示的输出是运行代码的 python 解释器生成的输出。行为上的差异是在控制台中以交互模式与批处理模式直接在 Python 中运行相同代码的差异。 IDLE 只是通过直接从编辑器运行代码使比较稍微容易一些。

标签: python python-idle


【解决方案1】:

您已致电in_fridge,但您没有对结果进行任何处理。您可以打印它,例如:

result = in_fridge()
print(result)

【讨论】:

    【解决方案2】:

    您必须打印它,因为在 IDLE 中,如果未存储在变量中,则返回会显示在控制台上。运行脚本时不会发生这种情况,如果您需要捕获的函数返回某些内容,则在脚本中。使用= 运算符,如result_of_func = function_name(),然后打印存储在该变量print(result_of_func) 中的值

    这将起作用:

    def in_fridge():
        try:
            count =fridge [wanted_food]
        except KeyError:
            count =0
        return count
    
    fridge ={"apples":10, "oranges":3, "milk":9}
    wanted_food="apples"
    print (in_fridge())
    

    或者:

    in_fridge_count = in_fridge()
    print ('Count in fridge is : ',in_fridge_count)
    

    【讨论】:

    • 那么如果在 IDLE 中自动打印返回值,是不是相反,在代码编辑器中,返回值不会自动打印?
    • 是的,如果没有捕获到任何变量中,IDLE 中的返回值将输出到控制台。通过脚本运行不是这种情况。阅读更新后的答案。
    • 如果您现在清楚,请接受答案。
    【解决方案3】:

    您没有打印in_fridge 调用的结果,您应该打印它:

    def in_fridge():
        try:
            count =fridge [wanted_food]
        except KeyError:
            count =0
        return count
    
    fridge ={"apples":10, "oranges":3, "milk":9}
    wanted_food="apples"
    print(in_fridge())
    

    【讨论】:

      【解决方案4】:

      为了显示输出,你需要打印它:

      print(in_fridge())
      

      【讨论】:

        猜你喜欢
        • 2017-04-20
        • 1970-01-01
        • 2021-11-07
        • 1970-01-01
        • 1970-01-01
        • 2021-12-16
        • 1970-01-01
        • 2020-02-29
        • 1970-01-01
        相关资源
        最近更新 更多