应用场景
之前所有的语句都是顺序执行的,若是碰到需要判断进行多分支处理的情况就无能为力了。程序中为此出现了分支结构或选择结构来处理这样的问题。
if语句的使用
在python中,使用if、elif和else关键字来构造分支结构。
"""
用户身份验证
"""
username=input('请输入用户名:')
password=input('请输入口令:')
if username == 'admin' and password == '123456':
print('身份验证成功!')
else:
print('身份验证失败!')
Python中使用缩进的方式来表示代码的层次结构这和C/C++是不一样的。如果要执行多个语句,宇通保持相同的缩进即可。
多分支的分段函数处理
[f(x)=egin{cases} 3x-5& ext{(x>1)}\x+2& ext{(-1}leq ext{x}leq ext{1)}\5x+3& ext {(x<-1)}end{cases}
]
"""
分段函数求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
x = float(input('x = '))
if x > 1:
y = 3*x-5
elif x >= -1 and x <= 1:
y = x+2
else:
y = 5*x + 3
print('f(%.2f)=%.2f' % (x, y))
在实现的时候也可以用嵌套的方式来进行处理。
"""
分段函数求值
3x - 5 (x > 1)
f(x) = x + 2 (-1 <= x <= 1)
5x + 3 (x < -1)
"""
x = float(input('x = '))
if x > 1:
y = 3*x-5
elif x <=1:
if x>=-1:
y=x+2
else:
y=5*x+3
print('f(%.2f)=%.2f' % (x, y))
练习
练习一
英制单位英寸与公制单位厘米互换。 1英寸 = 2.54厘米
"""
英制单位英寸与公制单位厘米互换。 1英寸 = 2.54厘米
"""
value = float(input('请输入长度:'))
unit = input('请输入单位')
if unit == '英寸' or unit == 'in':
print('%.2f英寸 = %.2f厘米' % (value, value*2.54))
elif unit == '厘米' or unit == 'cm':
print('%.2f厘米 = %.2f英寸' % (value, value/2.54))
else:
print('单位无效!')
练习二
百分制成绩转换为等级制成绩
要求:如果输入的成绩在90分以上(含90分)输出A;80分-90分(不含90分)输出B;70分-80分(不含80分)输出C;60分-70分(不含70分)输出D;60分以下输出E。
"""
百分制成绩转换为等级制成绩
"""
score = float(input('请输入成绩'))
if score>=90:
print('A')
elif score>=80:
print('B')
elif score>=70:
print('C')
elif score>=60:
print('D')
else:
print('E')
练习三
输入三条边长,如果能构成三角形就计算周长和面积
"""
判断输入的边长能否构成三角形,如果能则计算出三角形的周长和面积
"""
a= float(input('a='))
b= float(input('b='))
c= float(input('c='))
if a+b>c and a+c>b and b+c>a:
print('周长:%.2f' % (a+b+c))
p=(a+b+c)/2
area=(p*(p-a)*(p-b)*(p-c)) ** 0.5 # 海伦公式
print('面积:%.2f'%(area))
else:
print('不能构成三角形')