首页 > 编程语言 >python-10-数据处理得学:while+for循环搭配使用,排查数据和除重

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

时间:2024-06-09 23:59:30浏览次数:10  
标签:10 除重 pastrami 得学 finished sandwich sandwiches print orders

学习内容:《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

标签:10,除重,pastrami,得学,finished,sandwich,sandwiches,print,orders
From: https://blog.csdn.net/m0_65362302/article/details/139531982

相关文章

  • python系列:FastAPI系列 10-路由管理APIRouter
    FastAPI系列10-路由管理APIRouterFastAPI系列10-路由管理APIRouter前言一、路由管理APIRouter二、FastAPI主体总结FastAPI系列10-路由管理APIRouter前言在fastapi中也有类似的功能通过APIRouter来管理一、路由管理APIRouter正在开发一个应用程序或We......
  • 【华为OD】D卷真题100分:数组拼接 JavaScript代码实现[思路+代码]
    【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript【华为OD】2024年C、D卷真题集:最新的真题集题库C/C++/Java/python/JavaScript-CSDN博客JS、Java、C、C++、python代码实现:【华为OD】D卷真题100分:数组拼接JavaScript代码实现[思路+代码]-CSDN......
  • 屏幕录制TechSmith Camtasia 2024 v24.0.0.1041 中文破解版2024最新免费版
    camtasia2024是由美国TechSmith公司出品的一款屏幕录制及视频编辑软件,其包含了屏幕录像、视频剪辑和编辑、视频录音配音、视频菜单制作、视频剧场和视频播放等功能,可以将多种格式的图像、视频剪辑连接成电影,支持输出AVI、MP4、GIF、RM、WMV、MOV等常见格式,并可将电影文件打包成......
  • 请编写函数fun,它的功能是:求出1到100之内能被7或者11整除,但不能同时被7和11整除的所有
    //请编写函数fun,它的功能是:求出1到100之内能被7或者11整除,但不能同时被7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。#include<stdio.h>intfun(int*a){intresult[100];intcount=0;for(inti=1;i<=100;i++){......
  • Spring Boot入坑-10-Git
    简介一个开源的分布式版本控制系统基于Git协议的代码托管平台主要有Github和Gitlab,国内的也有比如Gitee比较多的企业使用Gitlab构建自己的代码托管平台其主要作用是,对代码或文档进行版本化记录与控制主要概念工作区:个人电脑中能看到的项目的目录暂存区:数据暂......
  • Java JVM——10.对象实例化、内存布局与访问定位
    对象实例化对象创建方式★ new:最常见的方式、单例类中调用getInstance的静态类方法,XXXFactory的静态方法。★ Class的newInstance方法:在JDK9里面被标记为过时的方法,因为只能调用空参构造器。★ Constructor的newInstance(Xxx):反射的方式,可以调用空参的,或者带......
  • seaborn常用的10种数据分析图表
    内置示例数据集seaborn内置了十几个示例数据集,通过load_dataset函数可以调用。其中包括常见的泰坦尼克、鸢尾花等经典数据集。#查看数据集种类importseabornassnssns.get_dataset_names()importseabornassns#导出鸢尾花数据集data=sns.load_dataset('ir......
  • 华为od-C卷100分题目-3用连续自然数之和来表达整数
    华为od-C卷100分题目-3用连续自然数之和来表达整数题目描述一个整数可以由连续的自然数之和来表示给定一个整数,计算该整数有几种连续自然数之和的表达式,且打印出每种表达式输入描述一个目标整数T(1<=T<=1000)输出描述该整数的所有表达式和表达式的个数。如果有多种表......
  • 副业赚钱:10个简单创意,轻松实现财务自由
    嗨,我是兰若姐姐,我是从4月26号开始日更博客的,之前一直分享的是技术文档,但是在这个过程中,我发现这些文档只是解决了某一个人当下遇到的某个具体问题,但是对于他升值加薪没有任何帮助,所以我中途暂停了几天去思考,正好我从2020年就开始副业变现,并且取得了不错的回报,我觉得我可以分......
  • Zerto 10.0 U4 - 适用于本地、混合和多云环境的灾难恢复和数据保护
    Zerto10.0U4-适用于本地、混合和多云环境的灾难恢复和数据保护勒索软件防护、灾难恢复和多云移动性的统一解决方案请访问原文链接:https://sysin.org/blog/zerto-10/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.org携手ZERTO提升勒索软件保护与灾难恢复水平......