如何对字符串输入拆分得到的所有数值中的负数单独求和
Python 输入数值负数求和实现方案
原有代码问题修正
你现有代码中存在语法错误:list(a,b,c,d) 写法不符合Python规范,list() 构造函数仅接收1个可迭代参数,要存储四个转换后的数值,直接用列表字面量创建即可:lis = [a, b, c, d]。
基础实现(输入为空格分隔纯数值)
如果你的输入是空格分隔的4个纯数值(例如输入内容为 -30.22 10.5 -2.2 -1.8),可直接用以下代码完成负数求和:
# 读取输入并批量转换为浮点数 a,b,c,d = map(float, input().split()) lis = [a, b, c, d] # 筛选负数求和 negative_sum = sum(num for num in lis if num < 0) print(negative_sum)
代入你给出的测试数值,运行后输出结果为 -34.22,与预期计算结果一致。
适配带特殊符号的输入格式
如果你输入的内容是类似 (-30.22, 10.5, -2.2, -1.8) 带括号、逗号的格式,需要先清洗输入内容再处理:
# 先去掉输入首尾的括号,替换掉所有逗号 input_content = input().strip('()').replace(',', '') # 拆分转换为浮点数列表,不限制数值个数 num_list = list(map(float, input_content.split())) # 负数求和 negative_sum = sum(num for num in num_list if num < 0) print(negative_sum)
内容的提问来源于stack exchange,提问作者user91919
相关产品推荐
相关产品推荐

