You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python函数使用return后调用无输出问题排查求助

问题原因及解决方法

核心问题分析

  • print语句永远不会执行
    函数里的return cities是函数的出口,一旦执行到这一行,函数会立刻返回结果并终止运行,后面的print(cities)根本没机会被执行。

  • 调用函数时未处理返回值
    你执行countCities(cities1, cities2, cities3)时,函数确实会返回统计好的字典,但你没有把这个返回值打印出来,所以控制台不会有任何输出。和全局变量无关,是你没主动输出返回结果。

解决办法

方法一:调整print和return的顺序

如果想在函数内部直接打印结果,把print移到return前面:

def countCities(c1, c2, c3):
  cities = {"eu": 0, 
  "as": 0,
  "am": 0,
  "sa": 0,
  "af": 0}
  for x in c1 + c2 + c3:
    code = x.split("-")[-1]
    if code in cities:
      cities[code] += 1
  print(cities)  # 先打印再返回结果
  return cities

cities1 = ["london-eu","bangkok-as", "madrid-eu"]
cities2 = ["paris-eu","milan-eu", "madrid-eu", "budapest-eu"]
cities3 = ["houston-am","milan-eu", "bogota-sa", "nairobi-af"]

countCities(cities1, cities2, cities3)

方法二:调用函数时打印返回值

保持函数的return逻辑不变,在调用时主动打印函数的返回结果:

def countCities(c1, c2, c3):
  cities = {"eu": 0, 
  "as": 0,
  "am": 0,
  "sa": 0,
  "af": 0}
  for x in c1 + c2 + c3:
    code = x.split("-")[-1]
    if code in cities:
      cities[code] += 1
  return cities

cities1 = ["london-eu","bangkok-as", "madrid-eu"]
cities2 = ["paris-eu","milan-eu", "madrid-eu", "budapest-eu"]
cities3 = ["houston-am","milan-eu", "bogota-sa", "nairobi-af"]

# 调用函数并打印返回的统计结果
print(countCities(cities1, cities2, cities3))

内容的提问来源于stack exchange,提问作者kei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.22 14:29:10