Python流程控制

Python流程控制

  • if条件语句

  • for循环语句

  • while循环语句

  • break和continue循环控制

1.if条件语句

  if条件语句是通过一条或多条语句的执行结果(True或False)来决定执行的代码块;

  Python程序语言指定任何非0和非空(null)值为True,0或null为False;

if单分支条件语句:

  格式:

复制代码
if 条件表达式 :

  代码块

else :

  代码块
复制代码

  其中“条件表达式”成立时(非零),则执行后面的代码块,而执行内容可以多行,以缩进来区分表示同一范围;else为可选语句,当需要在条件不成立时执行内容则可以执行相关语句。

  例如:

复制代码
a = 1
if a == 1 :
    print("Yes")
else :
    print("No")
------------输出结果-----------
Yes
复制代码

if多分支条件语句:

  格式:

复制代码
if 条件表达式 :
    指令
elif 条件表达式 :
    指令
elif 条件表达式 :
    指令
else :
    指令
复制代码

  例如:

复制代码
a = 1
b = 2
if a != 1 :
    print("a != 1")
elif b == 2 :
    print("b == 2")
else :
    print("No")
-----------输出结果---------
b == 2
复制代码

if嵌套语句:

  格式:

复制代码
if 条件表达式 :
    代码块
    if 条件表达式 :
        代码块
    else :
        代码块
else :
    代码块
复制代码

   例如:

复制代码
a = 1
b = 2
if a == 1 :
    print("a=1")
    if b != 2 :
        print("b != 2")
    else :
        print("b=2")
else :
    print("a!=1")
------------输出结果-----------
a=1
b=2
复制代码

2.for循环语句

  for循环可以遍历任何序列的项目,如一个列表或一个字符串。

  格式:

复制代码
类型一:
for 变量名 in 序列 :
    代码块

类型二:
for 变量名 in 序列 :
    代码块
else :
    代码块
复制代码

   注意:

    类型一就是普通的一个for循环,将序列里的值依次取出赋给变量;

    类型二for 中的语句和普通的没有区别,else 中的语句会在循环正常执行完(即 for 不是通过 break 跳出而中断的)的情况下执行,也就是说else语句和for语句是一体的,正常情况下当for循环完毕后因为最后一个判断时不成立所以就要执行else语句,如果for循环被中断,那么自然而然else语句也就无法执行了。while … else 也是一样。

  例子:

  1.for .. in ..

复制代码
for n in [1,2,3,4] :
    print(n)
---------输出结果--------
1
2
3
4
复制代码

  2.for .. in .. else ..

复制代码
-----for循环被break中断时------
for n in 1,2,3,4 :
    if n == 3 :
       break
    else :
       print(n)
else :
    print("zjk")
-------输出结果---------------
1
2
复制代码
复制代码
------for循环正常执行时----------
for n in 1,2,3,4 :
    print(n)
else :
    print("zjk")
-------输出结果------------------
1
2
3
4
zjk
复制代码
复制代码
----------for循环跳出当前循环时-----------
for n in 1,2,3,4 :
    if n == 3 :
       continue
    else :
       print(n)
else :
    print("zjk")
-----------输出结果--------------------
1
2
4
zjk
复制代码

  关于for循环的重要说明:

  for循环的对象是一个可迭代的对象,可迭代对象在循环时每次都读取下一行;这也就解释了为什么在for循环中进行删除时会报错;

  例如:

复制代码
----------报错一--------------------------------
>>> li = [1,2,3,4,5,6]
>>> for n in range(len(li)):
...     del li[n]
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
IndexError: list assignment index out of range

---------------- 元素没有清空-------------------
>>> li = [1,2,3,4,5,6]
>>> for n in li:
...     li.remove(n)
... 
>>> print(li)
[2, 4, 6]
复制代码

  那么,我们如何将列表或其他可迭代对象中的某些元素或全部元素通过for循环删除呢,其实for循环是在遍历可迭代对象,可迭代对象有内部记录,不管对象如何变化,内部记录都会继续进项下一行读取;我们可以通过循环其它的有我们所需要删除的元素的列表来删除我们真正要删除的列表或其他可迭代对象,例如:

  

复制代码
1.将li列表中的素有元素通过for循环删除;
>>> li = [1,2,3,4,5]    
>>> l1 = li.copy()    #可以以通过l1 = li[:]复制列表给l1
>>> for n in l1:       #遍历l1列表,这时不会影响li的内部记录
...     li.remove(n)     #通过利用l1内的相同元素来对li进行删除
... else:
...     print(li,l1)
... 
[] [1, 2, 3, 4, 5]        #可以看到li列表已经清空了,l1正常;


2.删掉列表中张姓的名称;
>>> lst = ["张国荣","张铁林","张国立","张曼玉","汪峰"]
>>> zhangs = []
>>> for n in lst:
...     if n.startswith("张"):
...             zhangs.append(n)
... 
>>> for n in zhangs:
...     lst.remove(n)
... 
>>> print(lst)
['汪峰']


3.列表和字典都不能再循环的时候进行删除. 字典在循环的时候不允许改变大小。
例如:清空字典;
>>> dic = {"提莫":"冯提莫","发姐":"陈一发","55开":"卢本伟"}
>>> li = []
>>> for k in dic:
...     li.append(k)
... 
>>> for n in li:
...     del dic[n]
... 
>>> print(dic)
{}
复制代码

 

  

3.while循环语句

  while语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。

  执行语句可以是单个语句或语句块。判断条件可以是任何表达式,任何非零、或非空(null)的值均为true。

  当判断条件为假(False)时,循环结束。

  格式:

复制代码
类型一:
while 条件表达式 :
    循环体

类型二:
while 条件表达式 :
    循环体
else :
    循环体
复制代码

   例子:

  多条件判断

复制代码
a = 1
b = 10
while a < 10 and b > 2 :
    print("a={}  b={}" .format(a,b))
    a += 1
    b -= 1
----------输出结果----------------
a=1  b=10
a=2  b=9
a=3  b=8
a=4  b=7
a=5  b=6
a=6  b=5
a=7  b=4
a=8  b=3
复制代码

   break退出循环

复制代码
i = 1
while i < 10 :
    if i == 6 :
        i += 1
        break
    else :
        print(i)
        i += 1
else :
    print("END")
--------------输出结果--------------
1
2
3
4
5
复制代码

  continue跳出当次循环,进入下一次循环

复制代码
i = 1
while i < 10 :
    if i == 6 :
        i += 1
        continue
    else :
        print(i)
        i += 1
else :
    print("END")
--------------输出结果-----------
1
2
3
4
5
7
8
9
END
复制代码

   一般情况下

复制代码
i = 1
while i < 10 :
    print(i)
    i += 1
else :
    print("END")
----------------输出结果-----------------
1
2
3
4
5
6
7
8
9
END
复制代码

  无限循环:如果条件判断语句为True或者条件表达式结果一直为真,循环将无限执行下去

复制代码
---------- 方法一:条件表达式为True ---------------
while True:
    print("周杰伦")
--------------输出结果-----------
周杰伦
周杰伦
周杰伦
……


--------- 方法二:条件表达式结果永远成立 ----------
while 1 :
    print("zjk")
-------------输出结果-------------
zjk
zjk
zjk
……
复制代码

  遇到0或null空,则不执行

复制代码
--------- 1.条件表达式为0 ------------
while 0 :
    print("zjk")
else :
    print("123")
-------------输出结果---------------
123


--------- 2.表达表达式为空字符 -------
while "" :
    print("zjk")
else :
    print("123")
-------------输出结果----------------
123
复制代码

 4.break和continue

  Python break语句,打破了最小封闭for或while循环。

  break语句用来终止循环语句,即循环条件没有False条件或者序列还没被完全递归完,也会停止执行循环语句。

  break语句用在while和for循环中。

  如果使用嵌套循环,break语句将停止执行最深层的循环,并开始执行下一行代码。

  Python continue 语句跳出本次循环,而break跳出整个循环。

  continue 语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环。

  continue语句用在while和for循环中。

posted @ 2018-07-31 17:10  最底层  阅读(762)  评论(0编辑  收藏  举报