在程序的执行过程当中,常常要使用条件判断语句决定程序的执行流转,还要使用循环语句进行相同代码的重复执行,它们在任何语言中都是很是重要的组成部分,熟练掌握才能更好的控制程序。如下实现过程,本人在CentOS 7系统(默认是Python 2.7.5)中实现。python
博文大纲:
1、Python条件判断
1.if条件语句
2.条件表达式与关系运算符
3.if-else条件语句
4.多重if语句
5 if语句的常见问题
2、Python的循环
1.while循环
2.for循环
3.循环控制
1)break
2)continuemysql
条件语句是根据条件表达式的不一样计算结果,使程序流转到不一样的代码块。Python中的条件语句是if语句和if else语句。linux
if语句用于判断某个条件是否成立,若是成立,则执行语句内的程序,不然跳过if语句执行后面的内容,语法格式以下:程序员
if(条件): 语句块
if语句的执行过程时:若是条件的布尔值为True,则执行语句块;不然跳过语句块,继续执行后面的语句。语句块是一组程序语句,Python的语法中没有用Java等语言中的花括号表示一组语句,而是采用空格缩进的方式表示一组语句,一般用4个空格表示一组语句,使程序员在编码时减小了代码的工做量。sql
实例1以下:shell
[root@localhost ~]# vim 1.py #coding:utf-8 //因为是在Linux环境下,须要使用“utf8”声明一下,否则会出现中文乱码的状况 m=100 //定义一个变量 if(m>90): //进行判断,冒号结尾,若是输出如下内容 print "Double kill" print "Triple kill" //注意缩进空格(这两条语句都是一样的缩进状况,因此属于一个语句块) [root@localhost ~]# python 1.py //使用python命令执行脚本 Double kill Triple kill
实例2以下:vim
#coding:utf-8 score=input() //input()表示变量的内容等待从键盘输入 print score >= 60 //通过运算获得布尔值 if score >=60: //冒号结尾,若是知足条件输出“合格” print "合格" [root@localhost ~]# python 2.py //执行python脚本 80 True 合格
使用if语句是,后面要用到条件表示式和关系运算符,他们能够通过运算获得布尔值。语法以下:ide
操做数 关系运算符 操做数
两个操做数使用关系运算符进行比较,获得布尔值。
经常使用的关系运算符以下:函数
好比:学习
>>> print 10==9 False >>> print 10!=9 True
if语句还能够加上else关键字,根据条件判断,决定执行不一样的语句块,当条件为True时,执行语句块1,当条件为False是,执行语句2.语法以下:
if(条件): 语句块1 else: 语句块2
实例以下:
[root@localhost ~]# vim 3.py #coding:utf-8 print "请输入成绩" source=input() if source >= 60: print "合格" //知足条件打印这个语句块内容 else: print "不合格" //不知足时,打印这个语句块内容 [root@localhost ~]# python 3.py 请输入成绩 80 合格 [root@localhost ~]# python 3.py 请输入成绩 40 不合格
if-else语句是在须要根据条件决定程序须要执行的内容时使用。语法上要注意if和else后面都要使用冒号,他们前面的空格缩进都是相同的,表示它们是一个总体,而它们对应的语句块也是同级的,空格缩进也是相同的,总体的代码看起来比较简洁、易懂。
使用if-else经过条件判断程序可以有两条执行路径,但有时还须要更多条路径进行处理,这时能够加入elif关键字进行处理。语法以下:
if(条件1): 语法块1 elif(条件2) 语句块2 elif(条件3) 语句块3 …… else: 语句块
实例以下:
[root@localhost ~]# vim 4.py #coding:utf-8 score=input() if (score>=90): print '优秀' elif (score>=80): print'良好' elif (score>=70): print '合格' else: print '不合格' [root@localhost ~]# python 4.py 90 优秀 [root@localhost ~]# python 4.py 80 良好 [root@localhost ~]# python 4.py 70 合格 [root@localhost ~]# python 4.py 60 不合格
使用键盘输入不一样的值,输出的结果不一样,执行了不一样的语句块。其中else语句是一个可选项,能够有也能够没有,须要根据程序的须要灵活掌握。
[root@localhost ~]# vim 1.py #coding:utf-8 score=input() if score >=60: //条件的空格是能够省略的,没有问题 print '合格' if score >=70: print '良好' if score >=80: print '优秀' //没法实现最后想要的效果
注意:if语句的执行过程是,从上往下,找到即停!
实例1以下:
[root@localhost ~]# vim 1.py #coding:utf-8 score=input() if score >=90: print '优秀' //语句块没有注意缩进的问题
实例2以下:
#coding:utf-8 score=input() if score >=90: print '优秀' print 'ok' //同一个语句块,缩进的位置不一样
这两种状况,编译器就会直接报错!
必定要注意:条件表达式后的冒号,千万千万不要忘记!
编写程序时,常常有代码须要重复运行,Python提供了while和for进行循环。
while循环用于已知的循环次数(根据条件进行判断)!
(1)while循环能够根据条件进行判断,决定是否要循环执行语句块。语法以下:
while 循环条件: 循环操做语句
循环条件后也是使用冒号,而后缩进写循环操做语句,先判断条件是否成立,若是为True ,则执行循环操做语句,若是为False,则跳出循环。
实例1以下:
[root@localhost ~]# vim 1.py #coding:utf-8 count=0 while (count<5): count = count+1 print count [root@localhost ~]# python 1.py 1 2 3 4 5
实例2以下:
[root@localhost ~]# vim 2.py #coding:utf-8 i=1 sum=0 while i <=3: //循环条件 print '请输入第%d门课程的考试成绩' %i //%d表示格式化整数型。%i表示调取变量i的值赋值给%d sum = sum + input() //执行的循环操做 i = i + 1 avg = sum / (i-1) print '3门课程的平均成绩是%d' %avg //格式化整数型,%avg表示将avg的值赋值给%d [root@localhost ~]# python 2.py 请输入第1门课程的考试成绩 70 请输入第2门课程的考试成绩 80 请输入第3门课程的考试成绩 90 3门课程的平均成绩是80
字符串格式化中可使用的替代符除了“%d”,还有其余的替代符,如图:
替代符实例1以下:
[root@localhost ~]# vim 3.py #coding:utf-8 num=5 numStr="5" numF=5.55 print "第%d名" %num print "第%s名" %numStr print "分数是%f" %numF [root@localhost ~]# python 3.py 第5名 第5名 分数是5.550000
替代符实例2以下:
[root@localhost ~]# vim 4.py #coding:utf-8 first=1 second=2 print "第%d名和第%d名" %(first,second) //使用时,注意变量的顺序,位置不能放错 [root@localhost ~]# python 4.py 第1名和第2名
(2)python脚本中,“#”也是注释的意思跟shell脚本同样,可是python的注释要求是“#+空格”,其实“#”就已经能够了!
(3)while循环嵌套使用,好比:
[root@localhost ~]# vim 5.py #coding:utf-8 j=1 //初始化外层循环计数器j prompt = '请输入学生姓名' while j<=2: //定义外层循环 sum =0 //总成绩情零 i=1 //初始化内层循环计数器i name=raw_input(prompt) //raw_input表示:读取标准输入的字符串 while i<=3: //内层循环 print '请输入第%d门课程的成绩' %i sum = sum + input() i = i + 1 avg = sum / (i-1) print '%s的3门课程的平均成绩是:%d' %(name,avg) j = j + 1 print '学生成绩输入完成' [root@localhost ~]# python 5.py 请输入学生姓名lzj 请输入第1门课程的成绩 70 请输入第2门课程的成绩 80 请输入第3门课程的成绩 90 lzj的3门课程的平均成绩是:80 请输入学生姓名lzj1 请输入第1门课程的成绩 90 请输入第2门课程的成绩 80 请输入第3门课程的成绩 70 lzj1的3门课程的平均成绩是:80 学生成绩输入完成
for用于未知的循环次数(遍历元素的方式)!
语法结构:
for 变量 in 集合: 语句块
经常使用的几种使用方式。
(1)for循环对字符串进行遍历,逐个得到字符串中的每一个字符,好比:
[root@localhost ~]# vim 1.py #coding:utf-8 for i in 'python': print 'Current letter:%s' %i [root@localhost ~]# python 1.py Current letter:p Current letter:y Current letter:t Current letter:h Current letter:o Current letter:n
(2)for循环能够对列表或元组进行遍历,好比:
[root@localhost ~]# vim 2.py #coding:utf-8 j=['abc','cba','bca'] for i in j: print i [root@localhost ~]# python 2.py abc cba bca
(3)须要循环操做相同的内容时,能够用for循环和range()函数结合使用。好比:
[root@localhost ~]# vim 3.py #coding:utf-8 print range(0,5) print range(0,5,2) //range()函数的做用是初始值,终止值,递增的频率(如不指定,则表示1),默认不输出终止值 [root@localhost ~]# python 3.py [0, 1, 2, 3, 4] [0, 2, 4]
[root@localhost ~]# vim 4.py #coding:utf-8 sub=('python','mysql','linux') sum=0 for i in sub: print '请输入%s考试成绩:' %i score = input() sum += score //至关于sum+score avg = sum / len(sub) //len()表示求列表长度 print '平均成绩是%d' %avg [root@localhost ~]# python 4.py 请输入python考试成绩: 80 请输入mysql考试成绩: 90 请输入linux考试成绩: 85 平均成绩是85
如图:
实例以下:
[root@localhost ~]# vim 1.py #coding:utf-8 score = 180 if (score<0 or score>100): print '成绩错误,不能小于0或大于100' [root@localhost ~]# python 1.py 成绩错误,不能小于0或大于100 [root@localhost ~]# vim 2.py #coding:utf-8 score = 180 if (not (score>=0 and score<=100)): //使用not取反 print '成绩错误,不能小于0或大于100' [root@localhost ~]# python 2.py 成绩错误,不能小于0或大于100
以下:
[root@localhost ~]# vim 1.py #coding:utf-8 stu=['小明','小张'] sub=['python','mysql','linux'] for i in stu: //第一层循环对学生姓名进行遍历 sum = 0 for j in sub: //第二层循环学习科目进行遍历 print '请输入%s的%s考试成绩:' %(i,j) score=input() sum +=score avg = sum / len(sub) print '%s的平均成绩是%d' %(i,avg) [root@localhost ~]# python 1.py 请输入小明的python考试成绩: 90 请输入小明的mysql考试成绩: 80 请输入小明的linux考试成绩: 70 小明的平均成绩是80 请输入小张的python考试成绩: 80 请输入小张的mysql考试成绩: 70 请输入小张的linux考试成绩: 60 小张的平均成绩是70
当使用while和for循环操做时,有可能须要改变循环的正常顺序,这时就须要用循环控制语句实现,循环控制语句有break和continue。
在循环的语句块中使用break,能够跳出整个循环。好比:
[root@localhost ~]# vim 1.py #coding:utf-8 stu=['小明','小张'] sub=['python','mysql','linux'] for i in stu: //第一层循环 sum = 0 for j in sub: //第二层循环 print '请输入%s的%s考试成绩:' %(i,j) score=input() if (score<0 or score>100): //进行判断 print '成绩无效!' break //跳出整个二层循环 sum +=score avg = sum / len(sub) print '%s的平均成绩是%d' %(i,avg) [root@localhost ~]# python 1.py 请输入小明的python考试成绩: 180 成绩无效! 小明的平均成绩是0 请输入小张的python考试成绩: 180 成绩无效! 小张的平均成绩是0
continue循环只是跳过当前一轮循环体的剩余语句,从新测试循环状态,进行下一轮循环。好比:
[root@localhost ~]# vim 1.py #coding:utf-8 stus=['小明','小张'] subs=['python','mysql','linux'] for stu in stus: //第一层for循环 sum = 0 i=0 while (i<len(subs)): //第二层while循环 print '请输入%s的%s考试成绩:' %(stu,subs[i]) score=input() if (score<0 or score>100): print '成绩无效!' continue //跳到if语句从新进行判断 i = i + 1 sum +=score avg = sum / len(subs) print '%s的平均成绩是%d' %(stu,avg) [root@localhost ~]# python 1.py 请输入小明的python考试成绩: 180 成绩无效! //输出以后不跳出循环,等待继续输入 请输入小明的python考试成绩: 10 请输入小明的mysql考试成绩: 20 请输入小明的linux考试成绩: 30 小明的平均成绩是20 请输入小张的python考试成绩: 80 请输入小张的mysql考试成绩: 180 成绩无效! 请输入小张的mysql考试成绩: 10 请输入小张的linux考试成绩: 90 小张的平均成绩是60
———————— 本文至此结束,感谢阅读 ————————