python学习错题集

########################################
#错题集汇总
########################################
#第一题:依次将列表中的元素删除
你的微信好友当中有 5 个推销的,他们存在一个列表
black_list= [‘卖茶叶’, ‘卖面膜’, ‘卖保险’, ‘卖花生’, ‘卖手机’]
当中, 请依次把这 5 个人分别从 black_list 当中删除,最后 black_list 为空。(不要使用 clear)

错解:

black_list=['卖茶叶', '卖面膜', '卖保险', '卖花生', '卖手机']
def test_fail(black_list):
    for element in black_list:
        black_list.remove(element)
    return black_list

删除完后的结果为:[‘卖面膜’, ‘卖花生’]

分析:正序删除时,第一轮删除将“卖茶叶”删除后,此时black_list = [ ‘卖面膜’, ‘卖保险’, ‘卖花生’, ‘卖手机’]
第二轮删除时,会将black_list = [ ‘卖面膜’, ‘卖保险’, ‘卖花生’, ‘卖手机’]中第二个元素进行删除及“卖保险”,
此时black_list = [ ‘卖面膜’, ‘卖花生’, ‘卖手机’]
第三轮删除时,会将black_list = [ ‘卖面膜’, ‘卖花生’, ‘卖手机’]中第三个元素进行删除及“卖手机”,
此时black_list = [ ‘卖面膜’, ‘卖花生’]
总共删除三轮,所以最后结果为:black_list = [ ‘卖面膜’, ‘卖花生’]

正解:应该倒序删除,及可避免以上错误

def test_pass(black_list):
    for element in black_list[::-1]:
        black_list.remove(element)
    return black_list

if __name__ == "__main__":
    black_list = ['卖茶叶', '卖面膜', '卖保险', '卖花生', '卖手机']
    print(test_pass(black_list))

参考学习地址

#第二题:冒泡排序
使用循环实现排序算法(冒泡,选择等算法选择一个,请自行了解。)
提示:利用for循环,完成a=[1,7,4,89,34,2]的排序(小的数字排前面,大的排后面),不能使用sort、sorted等内置函数或方法
#冒泡排序定义:冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。
#分析:n个数字元素,可以循环几轮?,每轮循环几次?
#例如:[3,1,5,6,7],至少需要循环4及(5-1)轮,第一轮比较4(5-1)次,第二轮比较3(5-2)次,第三轮比较2(5-3)次,第四轮比较1(5-4)次,
#通过以上方式类推:n个数字元素,可以循环n-1轮,每轮比较次数一次是:n-1,n-2,n-3…
#正解如下:

def sort_pass(digital_list):
    for i in range(len(digital_list)-1):
        for j in range(len(digital_list)-1-i):
            if digital_list[j]>digital_list[j+1]:
                digital_list[j],digital_list[j+1]=digital_list[j+1],digital_list[j]
    return digital_list

    if __name__ == "__main__":
    black_list = ['卖茶叶', '卖面膜', '卖保险', '卖花生', '卖手机']
    print(test_pass(black_list))
    digital_list=[1,7,4,89,34,2]
    print(sort_pass(digital_list))
    ```
    【未完待续】
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值