Python嵌套字典代码运行无报错无输出,求排查问题原因
代码问题排查及修复方案
核心错误点
- 缩进逻辑错误:三处打印语句全部缩进到了
totalItems函数内部,且位置在return语句之后,代码运行时永远不会执行这部分打印逻辑,这是无任何输出的直接原因。 - 返回语句位置错误:
return numItems写在了for循环内部,函数仅遍历第一个bike类型后就会直接返回结果,无法累加所有类型的对应数值,计算结果不符合预期。 - 语法格式错误:最后一行打印语句存在引号配对问题,外层字符串未闭合、内层参数引号和外层字符串引号冲突,会直接触发语法报错。
修复后可运行代码
bikes = {'mtb':{'sus':2, 'wheels':4}, 'bmx':{'sus':0, 'wheels':2}, 'road': {'sus':1,'wheels':4}} def totalItems(bikes,item): numItems =0 for k, v in bikes.items(): numItems = numItems + v.get(item, 0) # return调整到for循环同级,遍历完成后再返回总和 return numItems # 打印语句调整为全局作用域,顶格编写 print('number of items:') print('-sus '+ str(totalItems(bikes,'sus'))) # 修复引号配对错误 print('-wheels '+ str(totalItems(bikes,'wheels')))
运行输出
number of items: -sus 3 -wheels 10
内容的提问来源于stack exchange,提问作者C212
相关产品推荐
相关产品推荐

