三、用Python处理Excel数据 - 循环语句与分支语句

循环语句与分支语句

    • 1、for…in循环语句基础
    • 2、for…in循环语句应用(批量创建工作簿)
    • 3、for…in嵌套循环语句
    • 4、for…in嵌套循环语句应用(制作九九乘法表,写入Excel表格中)
    • 5、while循环语句
    • 6、while循环语句应用(读取工作簿信息到新表)
    • 7、while嵌套循环语句
    • 8、while嵌套循环语句应用(批量创建工作簿、工作表)
    • 9、if条件语句
    • 10、if…else条件语句
    • 11、多条件if语句1(将筛选结果写入新工作簿)
    • 12、多条件if语句2(根据总分判断等级)
    • 13、break语句(跳出整个循环)
    • 14、continue语句(跳出当次循环)
    • 15、综合应用


1、for…in循环语句基础

三、用Python处理Excel数据 - 循环语句与分支语句_第1张图片

  • 我们遍历出来的每个元素、每个值,它会放在item这个变量里。
  • 我们从这个集合iterable里面遍历出来的每一个值,都会放在item元素里面,然后对它逐个逐个的进行遍历处理。

三、用Python处理Excel数据 - 循环语句与分支语句_第2张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第3张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第4张图片

2、for…in循环语句应用(批量创建工作簿)

三、用Python处理Excel数据 - 循环语句与分支语句_第5张图片

3、for…in嵌套循环语句

三、用Python处理Excel数据 - 循环语句与分支语句_第6张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第7张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第8张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第9张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第10张图片
以此类推。。。。。。
三、用Python处理Excel数据 - 循环语句与分支语句_第11张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第12张图片
因为print默认结束符是换行符,所以为了使内层循环遍历完后再换行,我们可以写print(),并使其跟外层for循环对齐:
三、用Python处理Excel数据 - 循环语句与分支语句_第13张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第14张图片

4、for…in嵌套循环语句应用(制作九九乘法表,写入Excel表格中)

在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第15张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第16张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第17张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第18张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第19张图片

5、while循环语句

三、用Python处理Excel数据 - 循环语句与分支语句_第20张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第21张图片

6、while循环语句应用(读取工作簿信息到新表)

在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第22张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第23张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第24张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第25张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第26张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第27张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第28张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第29张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第30张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第31张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第32张图片

7、while嵌套循环语句

三、用Python处理Excel数据 - 循环语句与分支语句_第33张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第34张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第35张图片

  • 通过调试寻找问题原因:

三、用Python处理Excel数据 - 循环语句与分支语句_第36张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第37张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第38张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第39张图片
问题就是我希望的是,内层循环每次开始的时候,y的值是从0开始,而不是向上面所示的那样,y的值也跟着一直累计着;也就是,凡是我从外层循环进入到内层循环的时候,它的y值都应该重置成0,从0开始。
所以,当内层循环结束之后,要跳到外层循环的时候,就可以将y值重置成0。

  • while嵌套循环跟for嵌套循环不一样,内层for循环结束后,进入外层for循环,然后再进入内层for循环的时候,内层for循环的那个控制变量会自动被重置为初值。

三、用Python处理Excel数据 - 循环语句与分支语句_第40张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第41张图片

8、while嵌套循环语句应用(批量创建工作簿、工作表)

三、用Python处理Excel数据 - 循环语句与分支语句_第42张图片
刚开始,你首先要知道把最基础的东西先建立起来,就是我们怎么样先把工作簿、工作表做好,然后再到它的外层去包裹循环语句,对我们初学者来说这样会更容易一些。
三、用Python处理Excel数据 - 循环语句与分支语句_第43张图片

  • 然后我们先来通过循环创建所要求的这几个工作簿,每个工作簿里面先只有一个工作表:
    三、用Python处理Excel数据 - 循环语句与分支语句_第44张图片
    三、用Python处理Excel数据 - 循环语句与分支语句_第45张图片
    三、用Python处理Excel数据 - 循环语句与分支语句_第46张图片
    三、用Python处理Excel数据 - 循环语句与分支语句_第47张图片
    三、用Python处理Excel数据 - 循环语句与分支语句_第48张图片
    在这里插入图片描述
  • 我们通过调试来找问题。
    三、用Python处理Excel数据 - 循环语句与分支语句_第49张图片
    当调试运行到m的值为13的时候,此时已经不小于条件12了,就跳出了while内层循环。
    三、用Python处理Excel数据 - 循环语句与分支语句_第50张图片
    这个时候你就会发现一个新的问题,由于m还是13,内层循环的条件表达式不成立,跳过内层循环去执行后面的保存,保存的时候就出问题了,F8单步就进入到:
    三、用Python处理Excel数据 - 循环语句与分支语句_第51张图片
    问题就是,前面我们说过一个工作簿里面必须要有一个工作表,刚才创建了2016年工作簿的时候,但是由于m为13导致内层循环没有执行,没有运行创建工作表的内层循环循环体,没有创建工作表,这个工作簿没有工作表,你又在后面保存这个工作簿,就会出问题。
    所以要在外层循环里面添加一个重置m的语句,让m重新从1开始。

三、用Python处理Excel数据 - 循环语句与分支语句_第52张图片
在这里插入图片描述
其实这种批量创建工作簿、工作表,用for循环指定年份和月份的范围很方便,也不需要考虑将内层循环的控制变量还原成初始化的样子,也不需要做控制变量的累加,for循环会自动累加控制变量。

9、if条件语句

三、用Python处理Excel数据 - 循环语句与分支语句_第53张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第54张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第55张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第56张图片
我们前面说过,这个input接收到的数据默认是字符串类型,所以我们需要用int函数来对这个变量进行转换,由原来的字符串类型的数字转换成真正的整数类型。
三、用Python处理Excel数据 - 循环语句与分支语句_第57张图片
通过调试也能看到input获得的是字符串类型,然后我们把它转换成整数类型:
三、用Python处理Excel数据 - 循环语句与分支语句_第58张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第59张图片
另外,除了单独用一个语句进行转换以外,既可以直接将input获取的内容进行整数类型转换,也可以在if条件比较之前对这个变量score进行转换:
三、用Python处理Excel数据 - 循环语句与分支语句_第60张图片

10、if…else条件语句

三、用Python处理Excel数据 - 循环语句与分支语句_第61张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第62张图片

11、多条件if语句1(将筛选结果写入新工作簿)

三、用Python处理Excel数据 - 循环语句与分支语句_第63张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第64张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第65张图片

三、用Python处理Excel数据 - 循环语句与分支语句_第66张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第67张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第68张图片
这里要注意,当if条件成立的时候,需要有一个累加值变量m用来方便的定位写入新簿新表中的行号,把m作为我们要写入的单元格的行号。

三、用Python处理Excel数据 - 循环语句与分支语句_第69张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第70张图片

12、多条件if语句2(根据总分判断等级)

三、用Python处理Excel数据 - 循环语句与分支语句_第71张图片
注意:下面的实例,是在原来的数据源上修改,而不是将数据写入一个新工作簿里面。
三、用Python处理Excel数据 - 循环语句与分支语句_第72张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第73张图片

三、用Python处理Excel数据 - 循环语句与分支语句_第74张图片

三、用Python处理Excel数据 - 循环语句与分支语句_第75张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第76张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第77张图片

三、用Python处理Excel数据 - 循环语句与分支语句_第78张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第79张图片

13、break语句(跳出整个循环)

三、用Python处理Excel数据 - 循环语句与分支语句_第80张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第81张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第82张图片
在这里插入图片描述

  • break只是跳出这个语句所在的循环语句,并不是跳出所有的循环语句。

三、用Python处理Excel数据 - 循环语句与分支语句_第83张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第84张图片

  • 看上图,我们想在连续几行print语句中间插入一条break语句,结果发现不能插入,没有break语句的智能提示,因为它就是专门针对虚幻语句来做的。

三、用Python处理Excel数据 - 循环语句与分支语句_第85张图片

14、continue语句(跳出当次循环)

三、用Python处理Excel数据 - 循环语句与分支语句_第86张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第87张图片

15、综合应用

三、用Python处理Excel数据 - 循环语句与分支语句_第88张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第89张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第90张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第91张图片
在这里插入图片描述

  • 要求统计出每位员工第一次达标的业绩所对应的月份,每位员工从1月到12月的累计业绩突破1000的月份,那个月份他的业绩是多少,他的姓名是什么。
    三、用Python处理Excel数据 - 循环语句与分支语句_第92张图片
    在这里插入图片描述
    如上图所示,就是到9月份刚好到1000了,到9月份是1097就开始达标了;就要逐个逐个的累加,当累加到了1000以后,我们就对应去选择对应的月份,以及他对应的是哪一个人。
    其实,最核心的技术是,我怎样知道是哪个月份大于等于1000呢?

三、用Python处理Excel数据 - 循环语句与分支语句_第93张图片
此时我们先不忙着复制我们这个工作簿,因为我们读取到这个工作表Sheet1之后,我就对这个工作表里面的数据读取出来进行循环。
三、用Python处理Excel数据 - 循环语句与分支语句_第94张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第95张图片
这样就可以把每一行的数据都遍历出来了。
三、用Python处理Excel数据 - 循环语句与分支语句_第96张图片
在这里插入图片描述
三、用Python处理Excel数据 - 循环语句与分支语句_第97张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第98张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第99张图片
结果我们发现写入的内容不正确,怎么回事呢?因为我们得到>=1000的累计值后,程序仍然继续往后累计,累积的值仍然大于1000,所以就会循环着每次都写入统计结果表中,一直累计到12月。
我们只需要第一次达标的时候就可以了,后面的就不需要再循环了。
三、用Python处理Excel数据 - 循环语句与分支语句_第100张图片
三、用Python处理Excel数据 - 循环语句与分支语句_第101张图片
通过调试发现,我们找到第一个达标的9月份之后,内层循环仍然在继续循环、继续累计值,我们要在累积的值第一次大于等于1000的时候,在将对应的姓名、月份、业绩值写入单元格之后,加一个break,没必要让它再运行了,让内层循环跳出,继续执行下一行。
三、用Python处理Excel数据 - 循环语句与分支语句_第102张图片
在这里插入图片描述

你可能感兴趣的:(python)