设为首页 收藏本站
查看: 499|回复: 0

[经验分享] Python日志之Python控制流(顺序,分支,循环)

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-7-21 08:51:42 | 显示全部楼层 |阅读模式
Python控制流:
所有程序都是在IDLE中运行
1.Python的三种控制流
(1).什么是控制流
    Python中程序代码执行是有序的,有的代码程序会从上倒下按顺序执行,有的程序会跳转着执行,有的程序代码会选择不同的分支去执行,有的程序代码会循环的去执行。那么到底什么样的程序会自上而下执行,哪些会选择分支执行,什么样的可以循环执行呢?在Python中是有相应的控制语句进行标识的,控制语句他能控制某些代码段的执行方式,我们把这些不同功能的控制语句称为控制流

(2).Python里面有哪些控制流
#实例:
#控制流功能
#要实现:重复执行3段同样的程序
#方式一:
1
2
3
4
5
6
7
8
9
10
11
12
i=0
print i
i=i+1
print i
i=0
print i
i=i+1
print i
i=0
print i
i=i+1
print i



自上而下运行
#方式二:
1
2
3
4
5
for k in range(0,3): #重复语句
    i=0
    print i
    i=i+1
    print i



#输出结果:
1
2
3
4
5
6
0
1
0
1
0
1




#再比如,要实现:如果小明吃了饭了,输出小明很乖,如果小明没吃饭,输出小明不乖的功能。
#平常情况按顺序执行的话,无法实现这样的功能,我们可以用控制流中的分支结构
1
2
3
4
5
xiaoming="eat"
if xiaoming=="eat":
    print "小明很乖"
else:
    print "小明不乖"



#输出结果:
小明很乖

#控制流的类型
#控制流的类型有三种,一种是顺序结构,一种是分支结构,一种是循环结构
#顺序结构:
1
2
3
4
5
6
a=7
print a
a=a-1
print a
a=a+6
print a



#输出结果:
1
2
3
7
6
12



#分支结构:
1
2
3
4
5
a=7
if a==8:
    print "She"
else:
    print "He"



#输出结果:
1




#循环结构:
1
2
3
4
a=7 #不为0则为真
while a:  #当a为真时一直执行
    print "helloo"
    a=a-1 #a=0时停止循环



#输出结果:
1
2
3
4
5
6
7
helloo
helloo
helloo
helloo
helloo
helloo
helloo




2.认识分支结构-if

(1).认识if语句
Python中if语句是用来判断选择执行那个语句块的,下面我们通过实例认识if语句
#实例:
#if语句
#if语句的格式用法:
if 是这样:
    执行该部分语句

elif 或者是这样:
    执行elif部分语句
else 或者以上情况都不是:
    执行该部分语句

(2).if语句使用实例:
#一种情况的if用法
1
2
3
a=8
if a==8:                         #这里的等号注意是==
    print "hello"



#输出结果:
1
hello



1
2
3
a=8
if a!=8:
    print "hehe"



#输出结果:
1
2
>>>
>>>



不执行
#两种选择情况下的if用法
1
2
3
4
5
a=8
if a==8:
    print "She"
else:
    print "He"



#输出结果:
1
She




#三种选择情况下的if用法
1
2
3
4
5
6
7
8
9
a=5
if a==7:
    print "I"
elif a>7:
    print "he"
elif a<6:
    print "hello"
else:
    print "she"



#输出结果:
1
hello



#if语句使用要点
要点:各分支尽量不重复,并且尽量包含全部可能性
'''
比如我们要按成绩高低分为优良差,比如这样划分的条件是比较合理的0<=成绩<80为差,80<=成绩<90为良,
90<=成绩<=100为优。
而这样划分的条件是不合理的:0<成绩<80为差,80<=成绩<90为良,90<=成绩<100。比如如果一个人成绩是0分、100分、80分、90分这种临界条件的时候就没办法判断执行哪部分语句了。
'''
临界点不重复
1
2
3
4
5
a=80
if 80<a<=100:
    print "好"
elif 0<a<=80:
    print "差"




#输出结果:
1





3.认识循环结构while
(1).什么是while语句
Python中的while语句也是用来控制一段语句重复执行的

#while语句使用结构
'''
while 条件为真:
    循环执行“该部分语句”直到条件不满足真
else:
    如果条件为假,执行该部分语句
#else部分可以省略
'''
(2).while语句的使用
#两个简单的while语句实例
#第一个是最简单没有else部分的
1
2
3
a=True
while a:
    print "ABC"



#输出结果:
1
无限个ABC




#第二个是有else部分的
1
2
3
4
5
b=False
while b:
    print "ABC"#循环部分,为真一直循环
else:
    print "DEF"#else部分不循环,运行一次就终止了



#输出结果:
1
DEF




#我们再来看一下比较复杂一点的有嵌套的while语句
1
2
3
4
5
6
7
8
9
a=1
while a<10:
    if a<=5:    #循环部分,通过if分支选择
        print a
    else:
        print "hello"
    a=a+1       #循环部分,通过if分支选择
else:
    print "test"



#输出结果:
1
2
3
4
5
6
7
8
9
10
1
2
3
4
5
hello
hello
hello
hello
test




总结:可以利用缩进位置来判断前后的一致性,如上面出现的两个else的位置不同,对应的结构也不同

4.认识循环结构的for语句
(1).什么是for语句
另外一种形式的循环语句,可用来遍历某一对象,还具有一个附带的可选的else块,主要用于处理for语句中包含的break语句。如果for循环未被break终止,则执行else块中的语句。
break 在需要时终止for循环,continue 跳过位于其后的语句,开始下一轮循环。

for语句的格式如下:
>>>for <i> in <对象集合>:
       if <条件>:
           (break)
       if <条件>:
           (continue)
        <其他语句>
   else:
       <>

(2).for语句的使用
#for语句
'''
for语句格式:
for i in 集合:
    执行该部分
else:
    执行该部分
'''
#实例:
#第一个for语句
1
2
for i in [1,2,8,9,0]:
    print i



#输出结果:
1
2
3
4
5
1
2
8
9
0



#学会使用range函数,第二个for语句,生成一个集合序列,从头到尾
1
2
for i in range(1,7):  #range的集合是从1到n-1,不包括末尾
    print "hello"



#输出结果:
6个hello,而不是7个
1
2
for i in range(1,10,3):#(1,10,3)从1到10,3为步长,就是隔得数字大小,默认为1
    print  i           #就是取1,4,7,取不到末尾



#输出结果:
1
2
3
1
4
7




#最后看一个带嵌套的for语句
1
2
3
4
5
6
7
for i in range(1,10):#循环9次
    if i%2==0:
        print i
        print "偶数"
    else:
        print i
        print "奇数"



#输出结果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
1
奇数
2
偶数
3
奇数
4
偶数
5
奇数
6
偶数
7
奇数
8
偶数
9
奇数




5.Break语句
功能:打破程序的执行,常用语循环结构,当循环结构中出现break时应该强行停止中止循环,然后退出循环
(1).Break语句的使用
#break语句用法
break语句是强制停止循环执行的意思,break语句用在循环语句中,出现break的地方将直接停止该循环地执行。

#break语句用在while循环中
1
2
3
4
5
6
a=1
while a:
    print a
    a=a+1    #循环体
    if a==10:
        break  #没有break的话就会陷入死循环



#输出结果:
从1到9,当a=9时就break

#break语句在for循环中
1
2
3
4
for i in range(5,9):
    print i
    if i>6:
        break#当达到break条件的时候,当前条件仍会执行一次,然后再停止



#输出结果:
5,6

#break语句在双层循环语句中
1
2
3
4
5
6
7
a=10
while a<=12:            #外循环
    a=a+1
    for i in range(1,7):
        print i         #内循环
        if i==5:
            break



#输出结果:
内循环被外循环重复三次:a=10,a=11,a=12
重复三次i:1,2,3,4,5
1
2
3
4
5
6
7
8
9
a=10
while a<=12:
    a=a+1
    for i in range(1,7):
        print i
        if i==5:
            break
    if a==11:#a=11就停止了
        break



#输出结果:
1
2
3
4
5
1
2
3
4
5




6.continue语句
(1).什么是continue语句
强行停止了这次循环的这一次执行,直接跳到下一次,也就是停止这一次,执行下一次
不像Break直接停止之后的所有循环

(2).continue语句的使用方法
#continue语句的使用
'''
continue语句是放在循环语句中的,用来结束本次循环的语句。
'''
#continue语句在while循环中
#首先我们得知道循环是分很多次的,而continue语句是终止该次循环,而不是终止该循环。
1
2
3
4
5
6
a=1
while a<7:
    a=a+1
    if a==3:
        continue
    print a



#输出结果:
1
2
3
4
2
4
5
6



#continue语句在for循环中,并比较以下两个程序a和程序b
#程序a
1
2
3
4
for i in range(1,7):
    if i==3:
        continue
    print i



#输出结果:
1
2
3
4
5
1
2
4
5
6




#程序b
1
2
3
4
for i in range(1,7):
    print i
    if i==3:
        continue



#输出结果:
1
2
3
4
5
6
1
2
3
4
5
6



#continue语句在双层循环语句中
1
2
3
4
5
6
7
8
9
a=1
while a<7:
    a=a+1
    if a==4:   #a=1,a=2,a=3,a=5,a=6
        continue
    for i in range(7,10):
        if i==9:
            continue
        print i



#输出结果:
输出5次7,8

(3).Break语句和Continue语句的区别
#continue语句与break语句的区别
'''
continue语句指的是结束执行本次循环中剩余的语句,然后继续下一轮的循环。
而break语句指的是直接结束这个循环,包括结束执行该循环地剩余的所有次循环。
'''
#区分程序c和程序d

#程序c
1
2
3
4
for i in range(10,19):
    if i==15:
        continue
    print i



#输出结果:
10,11,12,13,14,16,17,18

#程序d
1
2
3
4
for i in range(10,19):
    if i==15:
        break
    print i



#输出结果:
10,11,12,13,14,15



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-88889-1-1.html 上篇帖子: python特殊函数之lambda和map 下篇帖子: python之简单邮件发送(带附件、图片)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表