if语句的使用
在Python中,要构造分支结构可以使用if、elif和else关键字。
所谓关键字就是有特殊含义的单词,像if和else就是专门用于构造分支结构的关键字,很显然你不能够使用它作为变量名
下面的例子中演示了如何构造一个分支结构
"""
分段函数求值:
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:
y = 5 * x + 3
else:
y = x + 2
print('y={:.2f}'.format(y))
当然根据实际开发的需要,分支结构是可以嵌套的
在if的内部构造出一个新的分支结构,同理elif和else中也可以再构造新的分支,我们称之为嵌套的分支结构
注意
if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elif和else,所以,请测试并解释为什么下面的程序打印的是teenager
age=20
if age>6:
print('teenager')
# 可以改成if 查看结果
elif age>18:
print('adult')
else:
print('kid')
练习
练习1:英制单位与公制单位互换
进度1in=2.54cm
value = float(input('请输入长度: '))
unit = input('请输入单位: ')
if unit in ['in', '英寸']:
print('%f英寸 = %f厘米' % (value, value * 2.54))
elif unit in ['cm', '厘米']:
print('%f厘米 = %f英寸' % (value, value / 2.54))
else:
print('请输入有效的单位')
请输入长度: 5
请输入单位: in
5.000000英寸 = 12.700000厘米
练习2:百分制成绩转等级制
百分制成绩转等级制成绩
90分以上 --> A
80分~89分 --> B
70分~79分 --> C
60分~69分 --> D
60分以下 --> E
score = float(input('请输入成绩: '))
if score > 100:
grade = '优秀'
print('你不会这么聪明吧')
elif score >= 90:
grade = 'A'
elif score >= 80:
grade = 'B'
elif score >= 70:
grade = 'C'
elif score >= 60:
grade = 'D'
else:
grade = 'E'
print('对应的等级是:', grade)
请输入成绩: 105
你不会这么聪明吧
对应的等级是: 优秀
练习3:实现一个个人所得税计算器
输入月收入和五险一金计算个人所得税
起征点5000元
含税级距 | 税率 |
---|---|
应纳税额≤3000 | 3% |
3000<应纳税额≤12000 | 10% |
12000<应纳税额≤25000 | 20% |
25000<应纳税额≤35000 | 25% |
35000<应纳税额≤55000 | 30% |
55000<应纳税额≤80000 | 35% |
应纳税额>80000 | 45% |
salary = float(input('本月收入: '))
insurance = float(input('五险一金: '))
diff = salary - insurance - 5000
if diff <= 0:
rate = 0
deduction = 0
elif diff <= 3000:
rate = 0.03
deduction = 0
elif diff <= 12000:
rate = 0.1
deduction = 105
elif diff <= 25000:
rate = 0.2
deduction = 555
elif diff <= 35000:
rate = 0.25
deduction = 1005
elif diff <= 55000:
rate = 0.3
deduction = 2755
elif diff <= 80000:
rate = 0.35
deduction = 5505
else:
rate = 0.45
deduction = 13505
tax = abs(diff * rate - deduction)
print('个人所得税: ¥%.2f元' % tax)
print('实际到手收入: ¥%.2f元' % (diff + 3500 - tax))
微信关注.png
网友评论