map集合循环若出现异常会退出循环嘛
时间: 2023-09-01 07:06:50 浏览: 87
在Java中,如果使用Map集合的迭代器(iterator)进行循环遍历,当Map被修改(添加或删除元素)时,迭代器会抛出ConcurrentModificationException异常并退出循环。而如果使用for-each循环遍历Map,由于for-each循环使用的是迭代器,所以也会抛出ConcurrentModificationException异常并退出循环。因此,无论是使用迭代器还是for-each循环,都可能在出现异常时退出循环。
相关问题
#定义函数fun,返回x是否为奇数 while True: try: m= map (int,input().split()) #获取从键盘得到的整数集合m f1= filter (fun,m) #将定义的函数fun,应用到整数集合m的每一个数值之后,得到奇数集合对象f1 print( sum (f1)) #对奇数集合对象f1的数值求和,并输出 except: break
这是一个 Python 代码片段,可以将输入的整数集合中的奇数求和并输出。下面是解释:
- 首先定义了一个函数 `fun`,用于判断一个数是否为奇数。
- 接着进入一个无限循环,不断获取用户输入的整数集合。
- 将定义的函数 `fun` 应用到整数集合中的每个数值,得到奇数集合对象 `f1`。
- 对奇数集合对象 `f1` 中的数值求和,并输出结果。
- 如果出现异常(比如输入不合法),则跳出循环。
下面是完整的 Python 代码:
```python
def fun(x):
return x % 2 != 0
while True:
try:
m = map(int, input().split()) # 获取从键盘得到的整数集合m
f1 = filter(fun, m) # 将定义的函数fun,应用到整数集合m的每一个数值之后,得到奇数集合对象f1
print(sum(f1)) # 对奇数集合对象f1的数值求和,并输出
except:
break
```
请注意,这个程序只能接收整数输入,如果输入非整数或者空格分隔符不正确,程序会出错。此外,如果输入的数字中没有奇数,程序会输出 0。
阅读全文