diff --git a/written.md b/written.md index 0ee7b6d..25403bf 100644 --- a/written.md +++ b/written.md @@ -163,7 +163,7 @@ ### 答案 -(在此填写,格式:`1. A 2. B 3. C 4. D 5. A 6. B 7. C 8. D 9. A 10. B`) +(在此填写,格式:`1. B 2.B 3. B 4. B 5. A 6. B 7. B 8. B 9. B 10. B ) --- @@ -182,7 +182,8 @@ import copy c = copy.deepcopy(a) ``` -(在此作答) +(在此作答)b是a的浅层copy,而c则是a的深层copy,c相对而言更独立(不受a的影响),所以最后b是[[1, 2, 99], [3, 4]] +而c没变 ### 第 2 题:字典与列表的综合应用 @@ -203,6 +204,9 @@ logs = [ 3. 解释为什么第 2 问不能直接用 `len(logs)` 得到结果,需要什么遍历结构? (在此作答) +1.[log for log in logs if log["level"] == "ERROR"] +2.{user: sum(1 for log in logs if log["user"] == user) for user in set(log["user"] for log in logs)} +3.因为len(logs)是在计算元素数量(5),应该先for遍历提取user的值(先创建空字典),没则计 ### 第 3 题:异常处理设计 @@ -218,3 +222,13 @@ Day_10 中你写过 `safe_int(s)` 函数:能转就返回整数,不能转就 请写出函数代码,并说明:为什么这里用 `try/except` 比先用 `if` 判断再计算更好? (在此作答) +def safe_divide(a, b): + try: + num_a = float(a) + num_b = float(b) + result = num_a / num_b + return result + except (ValueError, ZeroDivisionError): + return None +因为if干的活try/except也可以干,不用if可以让代码更简洁 +