0%

python003

分支结构

应用场景

  • 玩游戏,根据得分是否进入下一关,天天爱消除
  • 周末出入玩还是宅在家
  • 比赛根据得分对阵不同等级的人

if的使用

if elif else 作为关键字很显然不能用作变量
Python中利用缩进来判断是否属于统一代码块,而不是大括号

例子

分段求函数值

'''
        3x - 5 (x>1)
f(x) =  x + 2 (-1 <= x <= 1)
        5x + 3 (x < -1)
'''
x = float(input("please input a number:"))
if x > 1:
    y = 3 * x - 5
elif 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("please input a number:"))
if x > 1:
    y = 3 * x - 5
else:
    if x >= -1:
        y = x + 2
    else:
        y = 5 * x + 3
print("f(%.2f) = %.2f" % (x,y))

说明:Flat is better than nested “扁平化”

练习

英制单位与公制单位转换(英寸和厘米)

1英寸 = 1厘米 * 2.54

length = float(input("请输入长度:"))
unit = input("请输入单位:")
if unit == 'in' or unit == "英寸":
    print("%f英寸 = %f厘米" % (value, value * 2.54))
elif unit == "cm" or unit == "厘米":
    print("%f厘米 = %f英寸" % (value, value / 2.54))
else:
    print("输入单位有误")

掷骰子决定做什么

from random import randint
face = randint(1,6)
if face == 1:
    reslut = "唱首歌"
elif face == 2:
    result = "跳个舞"
elif face == 3:
    result = "学猫叫"
elif face == 4:
    result = "绕口令"
elif face == 5:
    result = "讲笑话"
else:
    result = "俯卧撑"
print(result)

百分制成绩转等级制

'''
90分以上    --> A
80分~89分    --> B
70分~79分       --> C
60分~69分    --> D
60分以下    --> E
'''
score = float(input('请输入成绩: '))
if score >= 90:
    grade = 'A'
elif score >= 80:
    grade = 'B'
elif score >= 70:
    grade = 'C'
elif score >= 60:
    grade = 'D'
else:
    grade = 'E'
print('对应的等级是:', grade)

输入三条边长判断能否构成三角形并计算周长和面积

import math
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("周长为:%f" % (a + b + c))
    p = (a + b + c) / 2
    print("面积为:%f" % (math.sqrt(p * (p - a) * (p - b) * (p - c))))
else:
    print("n不能构成三角形")

个人所得税计算

salary = float(input('本月收入: '))
insurance = float(input('五险一金: '))
diff = salary - insurance - 3500
if diff <= 0:
    rate = 0
    deduction = 0
elif diff < 1500:
    rate = 0.03
    deduction = 0
elif diff < 4500:
    rate = 0.1
    deduction = 105
elif diff < 9000:
    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))