a = map(float, input().split()) b = map(float, input().split()) print(sum([a[i]*b[i] for i in range(len(a))])) Traceback (most recent call last): File "D:\1\venv\test.py", line 502, in <module> print(sum([a[i]*b[i] for i in range(len(a))])) TypeError: object of type 'map' has no len()
时间: 2023-07-15 21:13:44 浏览: 103
这个错误是因为 `map` 函数返回的是一个迭代器对象,它并不支持 `len()` 函数。你需要将 `map` 的结果转换为列表或元组才能使用 `len()` 函数。
修改代码如下:
```python
a = list(map(float, input().split()))
b = list(map(float, input().split()))
print(sum([a[i]*b[i] for i in range(len(a))]))
```
这样就可以正常运行了。
相关问题
a = map(float, input().split()) b = map(float, input().split()) print(sum( ))
这段代码有错误,因为在 print(sum( )) 中没有传入要求求和的可迭代对象。正确的代码应该是:
```
a = map(float, input().split())
b = map(float, input().split())
print(sum(a) + sum(b))
```
这样才能对输入的两个列表进行求和并输出结果。
a = map(float, input().split()) b = map(float, input().split()) print(sum( )) 改正sum中的内容,不变a和b
您需要将两个 map 对象中的元素逐个相加,并对结果进行四舍五入,可以使用以下代码:
```
a = map(float, input().split())
b = map(float, input().split())
print(round(sum(a) + sum(b), 2))
```
这里使用 `sum()` 函数计算两个 map 对象中的元素之和,然后使用 `round()` 函数对结果进行四舍五入并保留两位小数。
阅读全文