一.编程题错题反思
1.删除列表中的奇数(易错题)
num = input().split()
flag = 0
for i in range(len(num)):
num[i] = int(num[i])
for i in range(len(num)):
if flag != 0:
i -= flag
if num[i] % 2 != 0:
num.remove(num[i])
flag += 1
print(num)
易错点:
删除元素后,会导致遍历错位
相关总结:
a = 4
for i in range(a):
a = 0
print(i)
print(a)
#输出:
#0
#1
#2
#3
#0
#range只执行一次
-------------------
test_list = [1, 2, 3, 4, 5]
print(test_list)
for ele in test_list:
if ele == 3 or ele == 4:
test_list.remove(ele)
else:
print(ele)
print(test_list)
输出:
[1, 2, 3, 4, 5]
1
2
5
[1, 2, 4, 5]
------------
a = 4
for i in range(a):
if i == 0:
i =99
print(i)
#输出:
#99
#1
#2
#3
结论:每次i的值都会刷新
-----------------
一.判断题错题反思
1.语句b = 1,2,3没有语法错误
b = 1,2,3
print(type(b)) #<class 'tuple'>
print(b) #(1, 2, 3)
3.tuple(x):可以用于生成元组,输入的参数可以是任何组合数据类型
4.元组是不可变的,不支持列表对象的inset()、remove()等方法,也不支持del命令删除其中的元素,但可以使用del命令删除整个元组对象。
5.创建只包含一个元素的元组时,必须在元素后面加一个逗号,例如(3,)。
8.无效的索引在列表/元组等进行切片操作时会引起异常。
9.列表是动态数据结构,因此可以添加元素或者删除已有的元素。
13.要计算列表中数值的平均值,第一步是获取列表中数值的总和
18.列表和元组可以包含不同的数据类型
21.在循环中continue语句的作用是退出循环的当前迭代(在循环结构中,continue语句的作用是结束本次循环,而不是结束整个循环的执行)
22.
i = 3
while i>0:
print(i)
i -= 1
else:
print('!')
#3
#2
#1
#!
while在不触发break的情况下,会执行else,否则不会执行else,for循环同理
二.编程题错题反思
1.字符串异常处理
异常捕捉:
try:
可能存在异常的代码
except 错误类型1:
代码块1
except 错误类型2:
代码块2
except: #若发生的异常类型与上面的异常类型都不符合则执行
代码块x
else:#无异常执行
代码块y
finally:#无/有 异常都执行
代码块z
注意:
try:
a = [1,2,3]
print(a[8])
a[1] = a[2]/0
except IndexError:print("索引超出范围")
except ZeroDivisionError:
print("除数不能为0")
#输出:索引超出范围
#结论:只能捕获到第一个异常