1 Commits

Author SHA1 Message Date
zrzz-maker 65c15a0971 更新 written.md 2026-10-06 20:01:01 +08:00
+33 -1
View File
@@ -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 题:字典与列表的综合应用 ### 第 2 题:字典与列表的综合应用
@@ -203,6 +206,23 @@ logs = [
3. 解释为什么第 2 问不能直接用 `len(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 题:异常处理设计 ### 第 3 题:异常处理设计
@@ -218,3 +238,15 @@ Day_10 中你写过 `safe_int(s)` 函数:能转就返回整数,不能转就
请写出函数代码,并说明:为什么这里用 `try/except` 比先用 `if` 判断再计算更好? 请写出函数代码,并说明:为什么这里用 `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输出