From 65c15a097137d289a8b264b983210d2fdf21c179 Mon Sep 17 00:00:00 2001 From: zrzz-maker <2123497285@qq.com> Date: Tue, 6 Oct 2026 20:01:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=20written.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- written.md | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/written.md b/written.md index 6e04eb8..adf7c2f 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. B 6. B 7. B 8. B 9. B 10. B`) --- @@ -183,6 +183,9 @@ c = copy.deepcopy(a) ``` (在此作答) +a、b、c三者的关系:a是原始嵌套列表,b是用a.copy()做的浅拷贝,c是用copy.deepcopy(a)做的深拷贝。 +执行a[0].append(99)之后,b会变成[[1, 2, 99], [3, 4]],因为b是浅拷贝,b里的子列表会跟着a的变化而变化。 +c还是[[1, 2], [3, 4]],因为深拷贝把内层的子列表也都复制了新的,和a完全没关系了,所以a的修改不会影响到c ### 第 2 题:字典与列表的综合应用 @@ -203,6 +206,23 @@ logs = [ 3. 解释为什么第 2 问不能直接用 `len(logs)` 得到结果,需要什么遍历结构? (在此作答) +m=[] +for i in logs: + n=i["level"] + if n=="ERROR": + m.append(i) + +d={} +for i in logs: + u=i["user"] + if u in d: + d[u]=d[u]+1 + else: + d[u]=1 + +因为 len(logs) 算出来的是总共有5条字典,没法知道每个人到底出现了几次。 +得用 for 循环遍历 logs 列表,取出里面的 user 名字,同一个人就在原来数字上加一,最终知道这个人出现几次 + ### 第 3 题:异常处理设计 @@ -218,3 +238,15 @@ Day_10 中你写过 `safe_int(s)` 函数:能转就返回整数,不能转就 请写出函数代码,并说明:为什么这里用 `try/except` 比先用 `if` 判断再计算更好? (在此作答) +def safe_divide(a,b) + try: + x=float(a) + y=float(b) + m=x/y + return m + except ValueError: + return None + except ZeroDivisionError: + return None + +因为用if要先判断字符串有没有转换成数字,而且分母不能为0,很麻烦;但是用try/except就很方便了,直接运行去算,算错了还会有None输出