条件判断语句,是指满足某些条件,才能做某件事情,而不满足条件时是不允许做的。条件语句在各类编程语言中均作为基本的语法或者基本语句使用,Python语言也不例外。有三种基本形式:if…,if…else…,if…elif…else…。作为一个入门例子,这里先介绍最基础的if。
条件语句if…,其使用方式如下:
if 条件:
执行代码块
注意条件后面的冒号(英文格式输入),同时执行代码块均需要缩进并对齐。
list_2=['张','明','P','y','t','h','o','课','程','成','绩',95] #列表for i in [0,1,2,3,4,5,6,7,8,9,10,11]:if i==7:breakprint('i=',i,'元素值=',list_2[i])
i= 0 元素值= 张i= 1 元素值= 明i= 2 元素值= Pi= 3 元素值= yi= 4 元素值= ti= 5 元素值= hi= 6 元素值= o
在Python程序设计课程记录(一)中介绍过for循环语句,这里结合for循环、条件语句和关键词break,进行介绍。i作为循环变量,它的值从列表[0,1,2,3,4,5,6,7,8,9,10,11]中依次提取,直到循环结束。3~5行是for循环体的语句块,每执行一次循环,就会完整地执行一次这个语句块。第一次循环的时候i=0(0作为值赋给i),先执行i==7这个程序语句,但是事实上i==0,不满足i==7这个条件,因此if中的语句块(if的语句块对于if来说是整体缩进,并且左对齐,可以看出if中的语句块其实只有一句,就是break,而第5行不是if的语句块)不会执行。按顺序执行到第5行,这时的i==0,同时i作为索引提取list_2[i]中的元素,即list_2[0]的值“张”。因此第一次循环输出的结果是:
i= 0 元素值= 张主要print()函数输出其括号中内容,如果是字符串,则直接输出,如果是变量,则输出实际的变量值,如果变量没有赋值,则会报错。for循环体执行的第2~7次循环,与第一次循环的执行逻辑一样,其输出内容变化的地方在循环变量值和基于循环变量值作为索引提取的list_2中的元素值。因此第2~7次循环体执行的输出结果是:
i= 1 元素值= 明i= 2 元素值= Pi= 3 元素值= yi= 4 元素值= ti= 5 元素值= hi= 6 元素值= o
第8次执行循环体的时候,循环变量i==7,满足了if语句块的条件,则执行break这个语句。由于if语句及它的语句块,是作为一个整体的,这个整体就是3~4行,是作为for循环体中的语句块的一部分。这里的break语句,起到中断for循环的作用。即在第8次循环的时候,i==7,满足if i==7这个条件,执行它的语句块中的语句break,循环中断,循环体中的语句块第5行由于在break后面,其循环已经中断,也不再执行。如果第5行的位置调整如下:
for i in [0,1,2,3,4,5,6,7,8,9,10,11]:print('i=',i,'元素值=',list_2[i])if i==7:break
或者如下:
for i in [0,1,2,3,4,5,6,7,8,9,10,11]:if i==7:print('i=',i,'元素值=',list_2[i])break
以上的两种情况,都会执行print()输出,因为这个语句在中断循环之前就执行了。
这里介绍另外一个关键词continue,遇到这个关键词,意味着for循环体中的语句块之后的内容在本次循环中不执行了,转入下一次循环。例子如下:
for i in [0,1,2,3,4,5,6,7,8,9,10,11]:if i==7:continueprint('i=',i,'元素值=',list_2[i])
i= 0 元素值= 张i= 1 元素值= 明i= 2 元素值= Pi= 3 元素值= yi= 4 元素值= ti= 5 元素值= hi= 6 元素值= oi= 8 元素值= 程i= 9 元素值= 成i= 10 元素值= 绩i= 11 元素值= 95
可以看出,i==7的时候,满足条件,执行continue,就跳过了循环体后面的语句print('i=',i,'元素值=',list_2[i]) ,进入下一次循环了。但是如果我们print这一句调整到if前面,则不受影响,因为continue后面没有任何内容了。
for i in [0,1,2,3,4,5,6,7,8,9,10,11]:print('i=',i,'元素值=',list_2[i])if i==7:continue
i= 0 元素值= 张i= 1 元素值= 明i= 2 元素值= Pi= 3 元素值= yi= 4 元素值= ti= 5 元素值= hi= 6 元素值= oi= 7 元素值= 课i= 8 元素值= 程i= 9 元素值= 成i= 10 元素值= 绩i= 11 元素值= 95
小实践练习:
A班级成绩:['小明','语文',95,'小李','语文',85,'小江','语文',98,'小记','语文',90,'小红','语文',88,'小涛','语文',73,'小黄','语文',86,'小文','语文',75]B班语文成绩:{'A同学':95,'B同学':96,'C同学':87,'D同学':96,'E同学':83,'F同学':91,'G同学':89,'H同学':78,'I同学':93,'J同学':75,'K同学':95,'L同学':89}任务如下(结合循环及条件语句知识点):1.计算A班和B班同学的语文平均成绩2.计算A班和B班同学中,90分以上的人数3.计算A班和B班同学中,80分以下的人数
示例代码:
A=['小明','语文',95,'小李','语文',85,'小江','语文',98,'小记','语文',90,'小红','语文',88,'小涛','语文',73,'小黄','语文',86,'小文','语文',75]A_sum=0k=0k_90=0k_80=0for i in list(range(2,24,3)):A_sum=A_sum+A[i]k=k+1# >= <= == !=if A[i]>=90:k_90=k_90+1if A[i]<80:k_80=k_80+1avg_A=A_sum/kprint('A班的平均分:',avg_A)print('A班90分以上人数:',k_90)print('A班80分以下人数:',k_80)
A班的平均分: 86.25A班90分以上人数: 3A班80分以下人数: 2
B={'A同学':95,'B同学':96,'C同学':87,'D同学':96,'E同学':83,'F同学':91,'G同学':89,'H同学':78,'I同学':93,'J同学':75,'K同学':95,'L同学':89}b_key=list(B.keys())B_sum=0k=0k_90=0k_80=0for i in range(0,12):B_sum=B_sum+B[b_key[i]]k=k+1# >= <= == !=if B[b_key[i]]>=90:k_90=k_90+1if B[b_key[i]]<80:k_80=k_80+1avg_B=B_sum/kprint('B班的平均分:',avg_B)print('B班90分以上人数:',k_90)print('B班80分以下人数:',k_80)
B班的平均分: 88.91666666666667B班90分以上人数: 6B班80分以下人数: 2