在到目前为止我们所见到的程序中,总是有一系列的语句,Python忠实地按照它们的顺序执行它们。如果你想要改变语句流的执行顺序,该怎么办呢?例如,你想要让程序做一些决定,根据不同的情况做不同的事情,例如根据时间打印“早上好”或者“晚上好”。
类似java语言,Python中有三种控制结构——三种控制流语句——if、for和while。
1.if
if主要用于条件判断。
1.1 if结构
i = 1 x = 1 if i > 0: #注意后面的冒号必不可少! x = x+1 #必须输入四个空格的缩进表示隶属关系! print x
1.2 if-elif-else 结构
<pre name="code" class="python">a = input("a:") #这条语句的作用是在屏幕显示“a:”,并等待用户输值赋给a。 b = input("b:") if(a > b): print (a, " 大于 ", b) print("显示1") elif(a==b): #elif类似java中的else if,但要注意在末尾的冒号! print(a,"等于",b) print("显示2") else: #注意末尾的冒号! print(a,"小于",b) print("显示3") print("显示4")
这里有三个块,分别属于if, elif, else引领。Python检测条件,如果发现if的条件为假,那么跳过后面紧跟的块,检测下一个elif的条件; 如果还是假,那么执行else块。通过上面的结构将程序分出三个分支。程序根据条件,只执行三个分支中的一个。
1.3 if的嵌套使用
a = input("a:") b = input("b:") c = input("c:") if(a > b): print (a,"大于",b) if(a>c): #注意这里的的if需要缩进,因为该if隶属于if(a>b) print(a,"大于",c) else: print(a,"小于",c) #注意这里的if应该与if(a>c)缩进相同
2.while
给出一个while循环终止条件。 下例循环打印1到100
a=0 while a<100: a+=1 #Python没有i++的写法 print(a)<pre name="code" class="python">
else:
print("循环结束")
3.for
for循环需要预先设定好循环的次数(n),然后执行隶属于for的语句n次。
student2=["王尼玛","男",22,["脑袋大","脖子短","屁股圆"]] for a in student2: #循环次数为列表student2中元素的个数。 注意末尾的引号 print(a)<span style="white-space:pre"> </span> #循环结构同样需要缩进
因为迭代(也就是循环)某范围的数字非常常见,所以有个内建的范围函数提供使用——range()
list(range(10)) #建立一个从0到9的列表(range()生成的是<span style="font-size:10px;"><span style="font-family: Verdana, Arial, Helvetica, sans-serif; line-height: 24px;">iterator对象。list()的作用是转换成列表</span>)</span> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
我们可以这样使用range()函数
for a in range(1,101): #对while中的事例进行改造,打印1到100的数字 print(a)
list(range(1,100,3)) #生成从1到100间的数,步长为3 [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34, 37, 40, 43, 46, 49, 52, 55, 58, 61, 64, 67, 70, 73, 76, 79, 82, 85, 88, 91, 94, 97]
list(range(99,1,-3)) #1到100间的数字,逆向排列 [99, 96, 93, 90, 87, 84, 81, 78, 75, 72, 69, 66, 63, 60, 57, 54, 51, 48, 45, 42, 39, 36, 33, 30, 27, 24, 21, 18, 15, 12, 9, 6, 3]
轻量级循环
[x*x for x in range(10)] #生成一个简单的 [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
4.中断循环
break——跳出循环
continue——跳出本次命令的之行,继续下一次循环
nameList=["王二小","王小明","小红","小刚","寒梅梅","王尼玛","李磊"] for name in nameList: if name=="王尼玛": print("凶手找到啦!") break print(name)
输出为王尼玛
nameList=["王二小","王小明","小红","小刚","寒梅梅","王尼玛","李磊"] for name in nameList: if name=="王尼玛": print("凶手找到啦!") continue print(name)
输出为李磊
5.注意
1.Python的缩进
空白在Python中是重要的。事实上行首的空白是重要的。它称为缩进。在逻辑行首的空白(空格和制表符)用来决定逻辑行的缩进层次,从而用来决定语句的分组。 这意味着同一层次的语句必须有相同的缩进。每一组这样的语句称为一个块。我们将在后面的章节中看到有关块的用处的例子。 你需要记住的一样东西是错误的缩进会引发错误。
2.if格式
if <条件1>:
statement
elif <条件2>:
statement
elif <条件3>:
statement
else:
statement
3.while格式
while<条件>:
statement
else:
statement
4.for格式
for 变量 in <对象集合>:
5.Python的while可以写else!