python-10-数据处理得学:while+for循环搭配使用,排查数据和除重

学习内容:《python编程:从入门到实践》第二版

知识点:

while for循环搭配使用,利用while排查数据,删除重复选项

练习内容:

练习7-8:熟食店 创建一个名为sandwich_orders的列表,在其中包含各种三明治的名字,再创建一个名为finished_sandwiches的空列表。遍历列表sandwich_orders,对于其中的每种三明治,都打印一条消息,如I made your tuna sandwich,并将其移到列表finished_sandwiches中。所有三明治都制作好后,打印一条消息,将这些三明治列出来。

练习7-9:五香烟熏牛肉卖完了 使用为完成练习7-8而创建的列表sandwich_orders,并确保'pastrami'在其中至少出现了三次。在程序开头附近添加这样的代码:打印一条消息,指出熟食店的五香烟熏牛肉(pastrami)卖完了;再使用一个while循环将列表sandwich_orders中的'pastrami'都删除。确认最终的列表finished_sandwiches未包含'pastrami'。

我的代码:

练习7-8

sandwich_orders = ["Italian sandwich","Tunafish sandwish","Chicken sandwich" ]
finished_sandwiches = []
while sandwich_orders:
    sandwichorder = sandwich_orders.pop()
    print(f"I made your {sandwichorder}")
    finished_sandwiches.append(sandwichorder)
print(f"以下三明治已完成:")
for finished_sandwich in finished_sandwiches:
          print("finished_sandwich")

 结果:

错误点:

1.while遍历列表时,只用while+列表:即可,for 列表元素 in 列表:

2.习惯遍历就想到for,第一次写错如下:

for sandwichorder in sandwich_orders:
    print(f"I made your {sandwichorder}")
    sandwich_orders.pop(sandwichorder)
    finished_sandwiches.append(finished_sandwich)
    print({finished_sandwiches})

sandwich_orders.pop(sandwichorder)这里变量不可以被pop

改成finished_sandwich = sandwich_orders.pop()

列表不能直接被打印啊

3.pop的位置也很重要,先用pop再打印pop出来的那个三明治。

for sandwichorder in sandwich_orders:
    finished_sandwich = sandwich_orders.pop()
    print(f"I made your {finished_sandwich}")
    finished_sandwiches.append(finished_sandwich)
    for finished_sandwich in finished_sandwiches:
        print(f"已完成{finished_sandwich}")

另外,for是从头到尾遍历,pop从尾开始剔除,问题是pop不能全部删除完,所以上面的这个程序,运行不出第一个三明治。

练习7-9

五香烟熏牛肉卖完了 使用为完成练习7-8而创建的列表sandwich_orders,并确保'pastrami'在其中至少出现了三次。在程序开头附近添加这样的代码:打印一条消息,指出熟食店的五香烟熏牛肉(pastrami)卖完了;再使用一个while循环将列表sandwich_orders中的'pastrami'都删除。确认最终的列表finished_sandwiches未包含'pastrami'。

sandwich_orders = ["pastrami","Italian sandwich","pastrami","Tunafish sandwish","pastrami","Chicken sandwich" ]
finished_sandwiches = []
print("sorry, pastrami is sell out~")
while "pastrami" in sandwich_orders:
    sandwich_orders.remove("pastrami")
for sandwich_order in sandwich_orders:
    print(f"we have {sandwich_order} \n")
    
while sandwich_orders:
    sandwichorder = sandwich_orders.pop()
    print(f"I made your {sandwichorder}")
    finished_sandwiches.append(sandwichorder)
print(f"以下三明治已完成:")
for finished_sandwich in finished_sandwiches:
          print(finished_sandwich)

运行结果:

 

易错点:

1.print()里面,变量单独不加{},和f“”在一起要加{},以下是变量加了{}害,也能打出来,就是不对

2.使用remove时,while需要指明被remove的元素,与pop使用不同,while “被remove的元素” in 列表:

3.命名变量易错:比如是否有下划线等,

总结&问题:

1.每个练习一做就错,就遇到自己的学习盲点,问题挺多的。

2.练习后 能深入一点理解 语句工具

3.今天的案例,以后可以用于全量排查数据,删除重复数据,新建一个列表等等,和交互的用法完全不一样的,工具真的很多元化,用途广泛,很厉害,设计代码的人怎么一开始想得这么多的。6

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值