Python中f-string嵌套print导致输出顺序错乱问题排查
问题原因与解决办法
核心原因
print()函数的返回值是None:当你在f-string里写{print(sc.items)}时,Python会先执行这个嵌套的print(sc.items),直接把sc.items的内容打印出来,然后将该函数的返回值None填充到f-string对应位置,最后外层的print再输出整个拼接好的f-string,所以会出现sc.items先单独占一行、f-string末尾显示None的情况。- 执行顺序逻辑:Python处理f-string时,会优先计算其中所有表达式的结果,因此嵌套的print会比外层print更早执行,直接打乱了输出顺序。
修复方案
去掉f-string里嵌套的print,直接把sc.items放入f-string中即可:
print(f'{sc.common_name}, {sc.tier}, {sc.min_price}, {sc.items}')
这样所有内容会按顺序在同一行输出,也不会出现None的问题。
内容的提问来源于stack exchange,提问作者BappoHotel
相关产品推荐
相关产品推荐

