Python列表正负性判断及混合正负时元素求和实现方法
功能实现代码修改
现有代码存在两个待调整点:一是会把作为终止标识的0也存入数字列表,会干扰正负判断逻辑;二是缺少混合正负场景的求和分支。
修改后的完整可运行代码如下:
stop = "0" Numbers = [] number = "" while number != stop: number = input("enter a number ") # 终止符不加入列表,同时直接转成整数避免后续重复转换 if number != stop: Numbers.append(int(number)) print(Numbers) # 提前计算全正、全负标识,减少重复遍历列表的开销 all_pos = all(element >= 0 for element in Numbers) all_neg = all(element <= 0 for element in Numbers) if all_pos: print("allpos") elif all_neg: print("all neg") else: # 混合正负时直接求和 total = sum(Numbers) print(f"正负元素混合,求和结果为: {total}")
调整说明
- 输入循环中过滤掉终止符
0,避免无效值影响判断 - 存入列表时直接将输入字符串转成整数,减少后续判断、求和时的重复转换开销
- 新增
else分支匹配同时存在正负元素的场景,直接调用sum()方法对列表求和输出
内容的提问来源于stack exchange,提问作者Tom brown
相关产品推荐
相关产品推荐

