如何在IF语句中统计条件满足总次数?代码输出异常求助
问题分析与解决方案
你的问题核心出在**Total变量的初始化位置**上——你把Total = 0写在了for循环的内部,这意味着每一次循环迭代时,Total都会被重置为0。哪怕上一次循环已经成功累加了1,下一次循环也会从头开始计数,所以每次满足条件时Total只能变成1,最终就输出了三次Total: 1,而非你想要的累计总和。
修复后的代码
把Total的初始化移到循环外面,同时注意避免变量名覆盖问题(原代码里的data = response.json()会覆盖掉原始的数据源变量),修改后的代码如下:
Total = 0 # 将初始化放在循环外部,保证计数能持续累加 for i in data['resources']: url = server + "/api/3/assets/" + str(i) response = requests.request("GET", url, headers=headers, verify=False) current_data = response.json() # 改用current_data避免覆盖原始data变量 if current_data['red'] and current_data['blue'] > 0: Total += 1 print('Total:', Total) # 将打印放在循环外部,只输出最终累计结果
额外说明
修改后Total会在整个循环过程中持续记录满足条件的次数,循环结束后再打印最终结果,就能得到你预期的Total: 3输出了。另外替换变量名是为了防止原始的data(包含resources的数据源)被覆盖,避免后续可能出现的逻辑错误。
内容的提问来源于stack exchange,提问作者pythonscrub
相关产品推荐
相关产品推荐

