1.选择结构程序的定义:根据条件表达式的值是True/非零还是False/零做出决策,控制代码块的执行。
一、表达式与表达式的值
典型的表达式一般由运算符和操作数/操作对象组成。
运算符:对操作数/操作对象进行运算处理的符号。
操作数/操作对象:运算符处理的数据。
在条件表达式中常用的运算符如下:
(1)算术运算符:+ - * / // % ** ~
(2)关系运算符:> < == != <> <= >=
(3)测试运算符:in,not in, is, not is
(4)逻辑运算符:and, or, not
1.算数表达式及值
算数表达式的运算结果为数值型,可将非零值看作True,零值看作False,即也可以看作布尔运算的结果。
2.关系表达式及值
(1)用两个等号比较两个操作数是否相等,结果将得出True或者是False
>>>3==3
True
>>>3==4
False
(2)进行比较的两个对象可以是数值、字符串、列表、字典等。
>>>"abc"=="abc"
True
>>>a=[1,2,3]
>>>b=[1,2,3]
>>>a==b
True
(3)用!=表示不等号
>>>3==3
True
>>>3!=3
False
>>>3!=4
True
3.测试表达式
(1)成员测试
成员测试使用云字符in和not in,在表达式中返回逻辑值。
>>>a=[1,2,3]
>>>1 in a
True
>>>5 in a
False
>>>5 not in a
True
>>>s="abcde"
>>>"a" in s
True
>>>"ab" in s
True
>>>"ac" in s
False
(2)同一性测试
同一性测试使用运算符is和 not is,在表达式中返回逻辑值。
>>>a=[1,2,3]
>>>b=a
>>>a==b
True #a,b引用相同对象,所以相同。
>>>b=[1,2,3]
>>>a==b
True
>>>a is b #a,b引用不同对象,虽然相等,但并不相同。
False
4.逻辑表达式及值
(1)and(和)
表示and左侧的运算、值或者对象为true/非零值,接着对右侧表达式求值的到最后结果。如果左侧为false/零值,则最终结果为false,并停止对右侧表达式的运算。
(2)or(或)
表示对左侧表达式求值,如果结果为false/零值,继续对右侧表达式求值,得最后结果。如果左边表达式为true/非零值,则最终结果为true,并停止运算右侧表达式。
(3)not(非)
在需要对表达式求相反条件时,用not运算符,关系表达式的值为布尔型。
二、复合表达式
1.复合表达式
当做一个判断需考虑两个或两个以上的条件/因素时,此时需要对条件进行合理的逻辑组合运算。
2.复合表达式的混合运算
在进行混合运算时,需要按照运算符的优先级顺序进行运算。
三、选择结构
1.单分支语句
格式:
if 表达式:
语句块
例如:比较两个数大小,按从小到大的顺序输出
a=3
b=5
if a>b:
a,b=b,a
print ("从小到大输出:")
print a,b
运行结果:
从小到大输出:3 5
PS: 1.分支结构中的表达式一般是逻辑表达式,也可以为任何合法的表达式。
2.分支结构中执行的语句可以是一条语句,也可以是多条语句组合而成的复合语句,或者称语句块。在python中用缩进结构来表示,具有相同的连续的缩进量的语句构成复合语句。
例 从键盘输入圆的半径,如果半径大于等于0,则计算圆面积。
import math
r=input("请输入圆的半径:")
if r>=0:
s=r*r*math.pi
print "s=pi*r*r=",s
输出结果:
请输入圆的半径:4
s=pirr=50.26548245743669
请输入圆的半径:-2
2.双分支语句
格式:
if 表达式:
语句块1
else :
语句块2
例:从键盘上输入一个整数,如果是偶数则输出”偶数“,如果是奇数则输出”奇 数“。
x=input('请输入一个整数:')
if x%2==0:
print ('偶数');
else :
print ('奇数')
运行结果:
请输入一个整数:2
偶数
3.多分支语句
格式:
if 表达式1:
语句1
elif 表达式2:
语句2
…
else :
语句n
例:由计算机对学生的成绩进行分级(补考,及格,中,良,优),其划分标准为:小于60分为补考;6070分为及格;7080分为良;8090分为中;90100分为优。最终输出等级信息。
score=input('请输入你的成绩:')
if score<0 or score>100:
print 'error'
elif score<60:
print '补考'
elif score<70:
print '及格'
elif score<80:
print '良'
elif score<90:
print '中'
else :
print '优'
运行结果:
请输入你的成绩:-1
error
请输入你的成绩:95
优
4.选择结构的嵌套
格式:
if 表达式1:
#语句块1
…
if 表达式11:
语句块11…
else :
语句块12…
…
else :
语句块2
例:购买地铁车票的规定如下:乘14站,3元/位;乘59站,4元/位;乘9站以上,5元/位。输入人数、站数,输出应付款。
m,n=input('请输入站数、人数:')
if m<=4:
pay=3*n
else :
if m<=9:
pay=4*n
else :
pay=5*n
print '应付款:',pay
输出结果:
请输入站数、人数:5,3
应付款:20