'''
    写四个函数  分别包含 bmi体重指数计算器,出租车费用计算器
    个税计算器,猜数字游戏

'''
# 体重计算器函数
def bmi():
    # 实现计算器的功能代码
    # 声明变量  身高、体重
    # 声明变量  身高、体重
    # 声明变量  身高、体重
    while True:
        height = input('请输入您的身高(m)')
        height = float(height)
        if height <= 0:
            print('输入错误,请重新输入')
            continue
        weight = input('请输入您的体重(kg)')
        weight = float(weight)
        if weight <= 0:
            print('输入错误,请重新输入')
            continue
        # 体质指数(BMI)=体重(kg)÷身高^2(m)
        bmi = weight / (height * height)
        print('您的bmi指数为:', bmi)
        # 过轻:低于18.5
        # 正常:18.5-23.9
        # 过重:24-27
        # 肥胖:28-32
        # 非常肥胖, 高于32
        if bmi < 18.5:
            print('体重过轻')
        elif 18.5 <= bmi <= 23.9:
            print('标准身材')
        elif 24 <= bmi <= 27:
            print('过重')
        elif 28 <= bmi <= 32:
            print('大胖子')
        else:
            print('超级大胖子')
        con = input('输入0退出游戏,其它任意键继续游戏:')
        if con == '0':
            break


def taxi():
    '''
    1.输入一个公里数
    2.将公里数转换为float类型
    3.根据不同他的公里数计算需要的车费
        3.1 起步价8元 包含两公里
        3.2 超出两公里至12公里的部分 按每公里1.2元计算
        3.3 超出12公里的部分 按每公里1.5元计算
    '''
    while True:
        num = input('请输入公里数')
        num = float(num)
        if 0 < num < 2:
            print('车费8元')
        elif 2 < num <= 12:
            price = ( num - 2 ) * 1.2 + 8
            print('车费' , price)
        elif num > 12:
            price = ( num - 12 ) * 1.5 + 20
            print('车费' , price)
        else:
            print('请输入正确的公里数')
            continue
        # 占位符 %f  专门给float类型的数据做占位符
        con = input('输入0退出游戏,其它任意键继续游戏:')
        if con == '0':
            break


def geshui():
    '''
    1.税额计算器
        1.输入工资,如果工资为0,结束循环
        2.根据工资计算缴纳的五险一金(工资缴纳上限:7662),计算公式如下:
            2.1 如果工资大于或者等于7662 五险一金=7662*五险一金的比例(0.225)
            2.2 如果工资小于7662  五险一金 = 工资*五险一金比例
        3.计算应纳税所得额应纳税所得额 = 工资 - 五险一金 - 起征点(3500)
        4.根据应纳税所得额所在的阶梯,计算税额,税额 = 应纳税所得额*阶梯税率-速算扣除数
        5.将缴纳的五险一金金额、税额、集到手工资输出 到手工资 = 工资 - 五险一金 - 税额
    '''

    while True:
        money = input('请输入您的工资:')
        money = float(money)
        if money <= 0:
            print('您不用交五险一金,不用交税')
            con = input('输入0退出游戏,其它任意键继续游戏:')
            if con == '0' :
                break
            else:
                continue
        elif money >= 7662:
            pay = 7662 * 0.225
        else:
            pay = money * 0.225

        pay_a = money - pay - 3500

        if 0 < pay_a < 1500:
            tax = pay_a * 0.03 -0
            last = money - pay - tax
            print('五险一金金额:',pay,'税额:',tax,'到手工资:',last)
        elif 1500 <= pay_a <4500:
            tax = pay_a * 0.1 - 105
            last = money - pay - tax
            print('五险一金金额:', pay, '税额:', tax, '到手工资:', last)
        elif 4500 <= pay_a <9000:
            tax = pay_a * 0.2 - 555
            last = money - pay - tax
            print('五险一金金额:', pay, '税额:', tax, '到手工资:', last)
        elif 9000 <= pay_a <35000:
            tax = pay_a * 0.25 - 1005
            last = money - pay - tax
            print('五险一金金额:', pay, '税额:', tax, '到手工资:', last)
        elif 35000 <= pay_a <55000:
            tax = pay_a * 0.3 - 2755
            last = money - pay - tax
            print('五险一金金额:', pay, '税额:', tax, '到手工资:', last)
        elif 55000 <= pay_a <80000:
            tax = pay_a * 0.35 - 5505
            last = money - pay - tax
            print('五险一金金额:', pay, '税额:', tax, '到手工资:', last)
        elif pay_a > 80000:
            tax = pay_a * 0.45 - 13505
            last = money - pay - tax
            print('五险一金金额:', pay, '税额:', tax, '到手工资:', last)
        else:
            last = money - pay
            print('五险一金金额:', pay, '您不用交税,请加油', '到手工资:', last)
        con = input('输入0退出游戏,其它任意键继续游戏:')
        if con == '0':
            break


def suiji():
    '''
    2.猜数字游戏
        1.随机产生一个0~100包含0和100的整数
        2.在while循环中:
            2.1 输入一个0~100的整数
            2.2 转换为整数类型
            2.3 和正确答案数字作对比

    import random
    num = random.randint(0,100)
    添加过关功能,第一关猜10次,第二关7次,。。。。
    '''
    import random
    number = random.randint(0,100)
    i = 1
    print('欢迎来到猜数字游戏,数字范围0~100')
    while True:
        # print(number)
        num = input('请输入您猜测的数字:')
        num = float(num)
        if i == 5:
            print('您的机会用完了')
            con = input('输入0退出游戏,其它任意键继续游戏:')
            if con == '0':
                break
            else:
                number = random.randint(0,100)
                i = 1
        elif num < 0 or num > 100:
            print('请输入0~100的数字:')
        elif num < number:
            time = 5 - i
            i = i + 1
            print('猜小了,请重新猜测,您还有%s机会'%time)
        elif num > number:
            time = 5 - i
            i = i + 1
            print('猜大了,请重新猜测,您还有%s机会:' % time)
        else:
            print('恭喜您猜对了')
            con = input('输入0退出游戏,其它任意键继续游戏:')
            if con == '0':
                break
            else:
                number = random.randint(0, 100)
                i = 1


while True:
    print('~~~~~~~~~~~~~~~~~~~~~~~')
    print('1.体重指数计算器')
    print('2.出租车费用计算器')
    print('3.税额计算器')
    print('4.猜数字游戏')
    print('0.退出游戏')
    print('~~~~~~~~~~~~~~~~~~~~~~')
    num = input('请输入您的操作')
    if num == '1':
        bmi()
    elif num == '2':
        taxi()
    elif num == '3':
        geshui()
    elif num == '4':
        suiji()
    elif num == '0':
        break
    else:
        print('请输入正确的选项')