Python函数无输出问题排查及所需掌握技术咨询
问题分析与修正
错误原因
你的代码存在两个关键问题:
- return语句提前终止函数执行:函数里
return round(total_use_time, 2)写在了if判断和print语句之前,一旦执行到return,函数会立即结束,后面的if和print代码永远不会被执行。 - 函数调用未输出结果:你只是调用了
sum_server_use_time(FileServer),但没有用print()包裹这个调用,所以就算函数返回了正确值,也不会在控制台打印出来。
另外,你的if条件判断total_use_time !=898完全没必要,和预期输出20.1没有关联,属于冗余代码。
修正后的代码
def sum_server_use_time(Server): total_use_time = 0.0 for key, value in Server.items(): total_use_time += value # 直接用循环拿到的value更简洁,没必要再用Server[key] result = round(total_use_time, 2) print(result) return result FileServer = {"EndUser1": 2.25, "EndUser2": 4.5, "EndUser3": 1, "EndUser4": 3.75, "EndUser5": 0.6, "EndUser6": 8} sum_server_use_time(FileServer) # 现在会打印20.1
或者如果你想通过返回值打印,也可以这样写:
def sum_server_use_time(Server): total_use_time = 0.0 for key, value in Server.items(): total_use_time += value return round(total_use_time, 2) FileServer = {"EndUser1": 2.25, "EndUser2": 4.5, "EndUser3": 1, "EndUser4": 3.75, "EndUser5": 0.6, "EndUser6": 8} print(sum_server_use_time(FileServer)) # 用print包裹函数调用输出返回值
需掌握的技术主题
- Python函数的执行流程:明确
return语句的作用——一旦执行,函数立即终止,后续代码不再运行。 - 函数的返回值与输出:区分函数返回值(return的内容)和控制台输出(print()的作用),调用函数时如果需要看到结果,要么在函数内部print,要么在外部print函数的返回值。
- 字典的遍历:遍历字典
items()时,已经拿到了key和对应的value,直接使用value即可,无需再通过Server[key]取值。 - 代码逻辑顺序:掌握代码执行的先后顺序,确保关键逻辑(比如输出、判断)不会被提前终止的语句(如return、break)跳过。
内容的提问来源于stack exchange,提问作者Shanthan Reddy
相关产品推荐
相关产品推荐

