判断
前言
python语句在执行的时候都是顺序结构,根据我们编辑的一条一条语句依次执行,但是有时候我们可能需要在本页任务代码执行结束的时候让用户选择重复执行还是继续下一步执行。例如在游戏场景里如果我们在成功通关后想要再玩一遍呢?或者返回上一关?当然正常人的选择总是正常的。在这里就会有分支,常常解决这种分支的机制就是判断输入根据输入选择执行。
1.判断
在python中,构造分支结构要使用到if、elif和else这三个关键字。判断其实很好理解,整一个例子吧。
year = int(input('请输入年份:'))
leap = year % 4 == 0 and year % 100 != 0 or year % 400 == 0
# 判断leap如果为真,则print('1')否则print('2')
if leap:
print('%d是闰年' % year)
else:
print('%d不是闰年' % year)
在此需要说明python和C、C++、Java等语言不同,python使用了缩进的的方式来表示代码层次结构,在初学python的时候很多人根据自己对其他语言的了解对python代码进行编写往往会造成很多报错,简单来说我们用等级来形容python的话,在同一列里缩进一致的代码等级是一样的,连续的代码保持一致的缩进这很重要。缩进可以使用任意空格,根据自身习惯,但最好的区分是使用“tab”键。
3 * x -5 (x>1)
f(x) = x + 2 (1>=x>=-1)
5 * x + 3 (x<-1)
x = float(input('x = '))
if x > 1:
y = 3 * x -5
elif x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.1f) = %.1f' %(x,y))
2.判断分支嵌套
在实际的开发环境中,根据实际换进进行嵌套,根据上面的例子更改代码实现嵌套。
3 * x -5 (x>1)
f(x) = x + 2 (1>=x>=-1)
5 * x + 3 (x<-1)
x = float(input('x = '))
if x > 1:
y = 3 * x -5
else:
if x >= -1:
y = x + 2
else:
y = 5 * x + 3
print('f(%.1f) = %.1f' %(x,y))
那至于嵌套与水平化谁更好,除了个人习惯以外,在正规化的编写过程中我们最好理解“Flat is better than nested.”。
3.练习
print('英制英寸与公制厘米相互转换')
value = float(input('请输入转换长度:'))
unit = input('转换单位:')
if unit == '英寸' or unit == 'inch':
centimeter = value * 2.54
print('%.2f英寸等于%.2f厘米' %(value,centimeter))
elif unit == '厘米' or unit == 'centimeter':
inch = value / 2.54
print('%.2f厘米等于%.2f英寸' %(value,inch))
else:
print('你输入的内容不正确')
print('根据输入的三条边长判断三角形并计算周长和面积')
a = float(input('a= '))
b = float(input('b= '))
c = float(input('c= '))
if a + b >c and a + c > b and b + c > a:
# 使用海伦公式求三角形面积
p = (a+b+c)/2
s = p*(p-a)*(p-b)*(p-c)**0.5
print('三角形周长为%.2f,三角形面积为%.2f'%(a+b+c,s))
else:
print('无法构成三角形')