一.编程题错题反思
     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")
 #输出:索引超出范围
 #结论:只能捕获到第一个异常