![Python数据分析实战:从Excel轻松入门Pandas](https://wfqqreader-1252317822.image.myqcloud.com/cover/473/47216473/b_47216473.jpg)
1.2.5 控制语句
一般来讲,程序中的代码运行顺序都是自上而下的,但代码在运行的过程中可能需要反复执行一段代码,或者跳过一段代码。本节将讲解如何控制代码的运行顺序。
1.顺序语句
Python语句像其他编程语言一样,代码运行的顺序都是自上而下的,以下面示例代码为例:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14657.jpg?sign=1738890371-so3UBgxHz9giuV5Zi1ZICwgo8eZEdbob-0-d29f973bcf8234caa196f12167bd3cea)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P22_14658.jpg?sign=1738890371-3G6v7Uo6PndfnLXafbvxBdty14Di6FJI-0-d4b450acfba9e012dd02322f6514d3b6)
解读一下上面代码的运行过程。
(1)先将数字100赋值给变量a。
(2)再将数字200赋值给变量b。
(3)再将a和b相加的结果赋值给变量c。
(4)最后输出变量c的结果。
注意:按顺序执行代码时,并不是绝对地自上而下运行每句代码,中途可能会做循环处理、条件分支处理等操作。
2.循环语句
1)for循环语句
for循环语句可以用来遍历任何可迭代序列,如字符串、列表和字典等,在循环序列中的每个项目时,可以对项目执行处理操作。
例如将'Pandas'这个字符串中的每个字符循环打印在屏幕上,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P23_14710.jpg?sign=1738890371-8bFnPR4Cdnfj9AGE6pGBH1ZWYNAEVx01-0-dbf19a45c214fe65626f6c2f743e4187)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P23_14711.jpg?sign=1738890371-lbUZtBuLeoOdNjAAcSCrvPpNFDFv5bT0-0-073cfa584d55192eda2c07aedc9b6b58)
再例如将列表['pandas','Python','Excel']中的每个元素循环打印在屏幕上,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P23_14712.jpg?sign=1738890371-tbZtP19vDxIqL1EHdDxnbQ7Xkbzw7HW3-0-4769538fef4a22d0e7837463a19bfe1e)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P23_14713.jpg?sign=1738890371-DxdeekSfbsSyxliVmcGe1KGkFy5O0ie9-0-cedb7b013c4894bf9131bccac0fd0843)
再例如将字典{'pandas':100,'Python':99,'Excel':88}中的每个键循环打印在屏幕上,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P23_14714.jpg?sign=1738890371-nJTjBAiTCXB1D2OHl4Eg5hOUykiGhE6N-0-23150862b423bc6b9cc517fab66b1b9b)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P23_14715.jpg?sign=1738890371-qBPqEPpT6XFLPM5HqT0Qej1qoLNEF3Ey-0-c85af503cbe389e43fcf8f024ad0acf3)
如果希望将字典{'pandas':100,'Python':99,'Excel':88}中的每个键及对应的值循环打印在屏幕上,则可以使用字典的items()方法,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P24_14777.jpg?sign=1738890371-7ndYUHTNoEjcdp93nphqtWABI2VzHTYt-0-8694ff55ebc5900e07566d8621a722d7)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P24_14778.jpg?sign=1738890371-aeTQImjkXVYxJnkaDeJSqWi9ndZ9SYaO-0-0a651e205a28a401a2618d3164e361da)
2)while循环语句
while循环语句用来循环执行指定的代码块,当条件成立时一直循环,直到条件不成立时终止循环,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P24_14779.jpg?sign=1738890371-559xk5eVyKUex7OFvBONi51kpe1otIDa-0-8871a7e0cdfe06fbca8262f5963fafcd)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P24_14780.jpg?sign=1738890371-qktnl3mryKPVAEsRLZXeLOINWp9WyFaH-0-0e41336f6ee3510d4dac36a94839b336)
解读一下上面代码的运行过程。
第1行,首先对变量n做初始化赋值;第2行,在while关键字后面写入循环的条件;第3和4行是while循环体中要循环的代码块,当变量n累加到不再小于5时,终止执行这两行代码,也就是终止while循环语句。
3.分支语句
编写分支语句首先要给定一个表达式,如果表达式返回值为布尔值True,则表示条件成立;如果表达式返回布尔值False,则表示条件不成立,可以根据返回的不同布尔值做不同的代码处理。
1)单条件判断
if单条件分支语句判断指定的表达式是否成立。如果成立,则执行if下面的代码块,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P24_14781.jpg?sign=1738890371-N5cDyO6EtsNIG9THhydcO8luC2mF5Kmg-0-4f64a1f391dbb18e88bd921a36b508b2)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P25_14847.jpg?sign=1738890371-6KbL3HcjLeG0cy7W3uOhJjj9id2EPZ9l-0-4f30141a180723dd82c3b0d8f41a5c40)
条件判断成立需要处理,但如果条件不成立也需要处理呢?则可以将if与else配合,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P25_14848.jpg?sign=1738890371-GixpACImiWUoBYDJTsnU5dEOWBDQLhBq-0-ecbeed589a2f6e438b11112458bff538)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P25_14849.jpg?sign=1738890371-fXXwhsmv23gT1DQ2KUnnSuZ9oyRxtuyf-0-93a1d1d3c651cb415cdf9a878de6afd4)
2)多条件判断
如果有多个条件判断,则可以将if与elif配合,例如要求n>90返回'优',n>80返回'良',n>60返回'中',否则返回'差',示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P25_14850.jpg?sign=1738890371-PfXcE6xKY8t5BqrFmZ7IQ23hv0fXyaWq-0-960e1b419857aee1da143af57918e8b7)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P25_14851.jpg?sign=1738890371-2fmhSfONRir3UOVC1MMMWHRIh8CC6Owg-0-8faca7aebea2d30abd6ca63e8029cf5e)
上面代码做了3个条件判断,每个判断都有对应的返回值,直到3个条件都不成立时,执行else下的返回值。
3)if三目运算
if三目运算是写在一行的,如果条件判断比较简单,则可以使用此种代码编写方式,示例代码如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P25_14852.jpg?sign=1738890371-uBXWQ6OzyKz9zDlQaU3gUaGdxZzShTyr-0-61c3839883fac0627c5abfb712a6475e)
运行结果如下:
![](https://epubservercos.yuewen.com/A3536C/26581052201229806/epubprivate/OEBPS/Images/Figure-P26_14896.jpg?sign=1738890371-alVobGkUjywzI86I98ILakCZiZmy3U6q-0-b8cbc5447a89d53ed467ade682e8b167)