问题:
当我把else放在if内时,执行代码即使修改成功也会重复执行else后的“没有查询到信息”,当我把else放在for里,即使修改成功也会执行一次“没有查询到信息”。
请问该如何修改才可以使修改成功后不会执行else后的,没查询到只执行一次else后的代码
else和if对齐,这样不管怎样都会打印else后面的内容,因为你写的是个for循环便历呀,拿到一个不相等的就会打印else后面的内容,所以你这个for循环不好,加break也不行,只要你循环到这个人名字之前,有不相等的都会执行else。
用if 名字 in list:
if 和 else对齐,你讲的还会打印else的内容原因可能是,for循环的 student_list列表还有别的元素,不止“小卡”一个,建议检查一下列表长度
当你else 放在 for 一层时,for 循环正常结束,运行一次else
当你放在 if 一层时,因为你的 self.student_list 不只一个数,所以输出一次删除成功,而遍历其他数全部输出 没有查询到信息
若要修改,可以参考以下方法
不修改位置,在 if 后加入break,当删除成功后打破循环,不执行 else,若遍历完都没有执行 if 内容则执行 else
或者如一楼所说,不使用for循环,改为使用 if 判断你要找的数据是否在 self.student_list 中,不在则执行else
学生列表有几个元素就会打n-1个没有查询到信息,因为你没有直接return,而且找不到是在遍历以后才打印的.
建议在打印删除成功和最后一行都写个return就行了