Pythn条件与循环
一:Python条件判断
条件语句是指根据条件表达式的不同计算结果,使程序流转到不同的代码块。
1:if条件语句
if语句用于判断某个条件是否成立,如果成立,则执行语句内的程序,否则跳过if语句执行后面的内容。其语法格式为:
if(条件)
语句块
语句块是一组程序语句,在python采用空格缩进的方式表示一组语句,通常4个空格表示一组语句,使程序员在编码时减少代码量。
例1:
>>> money=100
>>> if (money>99):
print ("语句1")
print ("语句2")
语句1
语句2
例2:在编辑模式中输入下列代码,并执行脚本
print ('请输入考试成绩:')
score=int(input())
if score>=60:
print ('合格')
if score<60:
print ('不合格')
2:条件表达式与关系运算符
使用if语句时,要用到条件表达式和关系运算符,他们可以经过运算得到布尔值。
常用的关系运算符:
关系运算符 |
说明 |
== |
等于 |
!= |
不等于 |
> |
大于 |
< |
小于 |
>= |
大于等于 |
<= |
小于等于 |
例:
>>> print (10==9)
False
>>> print (10!=9)
True
3:if-else条件语句
if语句可以加上else关键字,根据条件判断,决定执行不同的语句块。当条件为真时,执行语句块1;当条件为假时,执行语句块2。语法如下:
if(条件)
语句块1
else
语句块2
例:(在编辑模式中编辑)
print ('请输入成绩:')
score=int(input())
if score>=60:
print ('合格')
else:
print ('不合格')
4:多重if语句
if-else语句通过条件判断程序时可以由两个语句块,但是有时需要更多的路径进行处理,这时可以加入elif关键字来处理。语法为:
if(条件1):
语句块1
elif(条件2):
语句块2
elif(条件3):
语句块3
......
else
语句块
例:(在编辑模式中输入代码)
print ('请输入成绩:')
score=int(input())
if score>=90:
print ('优秀')
elif score>=70:
print ('良好')
elif score>=60:
print ('合格')
else:
print ('不及格')
5:if语句的注意事项
(1) 使用if-elif-else语句时,条件时由上向下判断,如果条件成立,后面的判断将不再执行
(2) if语句中语句块没有缩进也是经常犯的错误
(3) 表达式后面要加上冒号
二:while循环
1:while循环可以根据条件进行判断,决定是否要循环执行语句块。
语法格式为:
while 循环条件
循环操作语句
注意:循环条件后面也要使用冒号,然后缩进写循环操作语句,先判断条件是否成立,如果为true,则执行循环操作语句如果为false,则跳出循环。
例:(在编辑模式中输入代码)
i=1
sum=0
while i<=5:
print ('请输入第%d门课程的成绩' %i)
sum=sum+int(input())
i=i+1
avg=sum/(i-1)
print ('5门课的平均成绩是%d' %avg)
执行结果为:
>>>
请输入第1门课程的成绩
56
请输入第2门课程的成绩
60
请输入第3门课程的成绩
88
请输入第4门课程的成绩
90
请输入第5门课程的成绩
100
5门课的平均成绩是78
>>>
2:字符串的格式化输出
字符串格式化输出是将若干个值插入带有%替代符的字符串中,从而可以动态的输出字符串,
字符串中的%d,表示插入的是一个整型数据
%s,表示值为字符串
%f,表示浮点数字
3:while循环的嵌套使用
例:
j=1
prompt='请输入学生姓名:'
while j<=2:
sum=0
i=1
name=input(prompt)
while i<=5:
print ('请输入第%d门课程的成绩' %i)
sum=sum+int(input())
i=i+1
avg=sum/(i-1)
print ('%s的5门课程的平均成绩是:%d'%(name,avg))
j=j+1
print ('学生的成绩输入完成')
执行结果:(需要输入两个学生信息,外层循环定义学生人数,内存循环定义课程数量)
>>>
请输入学生姓名:张三
请输入第1门课程的成绩
33
请输入第2门课程的成绩
55
请输入第3门课程的成绩
66
请输入第4门课程的成绩
77
请输入第5门课程的成绩
88
张三的5门课程的平均成绩是:63
请输入学生姓名:李四
请输入第1门课程的成绩
44
请输入第2门课程的成绩
55
请输入第3门课程的成绩
66
请输入第4门课程的成绩
77
请输入第5门课程的成绩
88
李四的5门课程的平均成绩是:66
学生的成绩输入完成
>>>
三:for循环语句
while是使用条件判断执行循环,而for是使用便利元素方式进行循环。
1:for循环的几种方式
(1) for循环可以对字符串进行遍历,逐个获得字符串的每个字符
例:
for letter in 'Python':
print ('Current letter:%s'%letter)
执行结果:
>>>
Current letter:P
Current letter:y
Current letter:t
Current letter:h
Current letter:o
Current letter:n
(2) for循环对列表和元组进行遍历
例:
fruits=['西瓜','苹果','葡萄']
for fruit in fruits:
print (fruit)
输出结果:
>>>
西瓜
苹果
葡萄
(3) for循环和range()函数结合使用
range(0,5,2) 表示从0开始累加2,累加后的值是列表的值,但值不能超过5,2是累加数
range(0,5) 表示列表的值从0到5,没有累加数表示累加1
例1:
>>> for i in range(0,5):
print (i)
0
1
2
3
4
>>> for i in range(0,5,2):
print (i)
0
2
4
例2:
>>> for i in range(0,5):
print ('你好')
你好
你好
你好
你好
你好
(4) for循环的嵌套
例:输出张三和李四的平均成绩
students=['张三','李四']
subjects=('python','mysql','linux')
for student in students:
sum=0
for subject in subjects:
print ('请输入%s的%s考试成绩:'%(student,subject))
score=int(input())
sum+=score
avg=sum/len(subjects)
print ('%s的平均成绩是%d' %(student,avg))
执行结果:
>>>
请输入张三的python考试成绩:
66
请输入张三的mysql考试成绩:
77
请输入张三的linux考试成绩:
88
张三的平均成绩是77
请输入李四的python考试成绩:
22
请输入李四的mysql考试成绩:
33
请输入李四的linux考试成绩:
44
李四的平均成绩是33
(5) 乘法口诀
op1=(1,2,3,4,5,6,7,8,9)
op2=(1,2,3,4,5,6,7,8,9)
for i in op1:
for j in op2:
print(i,"*",j,"=",i*j,end=' ')
if j>=i:
print(end=' ')
break
2:循环控制
当使用while和for做循环操作时,由可能需要改变循环的正常执行顺序,这时要用循环控制语句来实现,循环控制语句由break和continue。
(1) break
在循环的语句块中使用break语句,可以跳出整个循环。
例1:输出平均成绩,当成绩无效时,使用break退出循环
students=['张三','李四']
subjects=('python','mysql','linux')
for student in students:
sum=0
for subject in subjects:
print ('请输入%s的%s考试成绩:'%(student,subject))
score=int(input())
if(score<0 or score>100):
print ('输入的成绩超出范围,循环退出')
break;
sum+=score
avg=sum/len(subjects)
print ('%s的平均成绩是%d' %(student,avg))
上面案例在执行时,可以输入一个超出成绩范围的数字,以演示循环的退出。
(2) continue
continue的作用和break的作用不同,它不是结束整个循环,而是跳过当前一轮循环体的剩余语句,重新测试循环状态,准备进入下一轮循环。
例:
students=['张三','李四']
subjects=('python','mysql','linux')
for student in students:
sum=0
i=0
while (i<len(subjects)):
print ('请输入%s的%s考试成绩:'%(student,subjects[i]))
score=int(input())
if (score<0 or score>100):
print ('输入的成绩超出范围,请重新输入')
continue;
sum+=score
i=i+1
avg=sum/len(subjects)
print ('%s的平均成绩是%d' %(student,avg))