基于python的-用函数将4种功能整合在一起

'''


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


'''


def bmi():
    while True:
        height = input('请输入您的身高(m:')
        weight = input('清输入您的体重(kg:')
        height = float(height)
        weight = float(weight)
        if height <= 0 or weight <= 0 :
            print('输入有误,请重新输入!')
            continue
        bmi = weight / (height*height)
        '''
        过轻:低于18.5
        正常:18.5-23.9
        过重:24-27
        肥胖:28-32
        非常肥胖:高于32
        '''
        if 0 < bmi < 18.5:
            print('体重过轻')
        elif 18.5 <= bmi <= 23.9:
            print('标准身材')
        elif 24 <= bmi <= 27:
            print('过重')
        elif 28 <= bmi <= 32:
            print('大胖子')
        else:
            print('超级大胖子')
        print('-------------------------------------')
        print('1.继续使用')
        print('2.退出程序')
        print('-------------------------------------')
        res1 = input('请选择您的操作:')
        while res1 != '1' and res1 != '2':
            res = input('选项不存在,请重新选择:')
        if res1 == '1':
            continue
        else:
            break


def taxi():
    while True:
        mile = input('请输入公里数(km)')
        mile = float(mile)
        start = 8
        price = 0
        if mile <= 2:
            price = start
        elif 2 <= mile <= 12:
            price = start + (1.2 * (mile - 2))
        else:
            price = start + (1.5 * (mile - 12))
        print('共行驶%.2f公里,车费为%.2f' % (mile, price))

        print('-------------------------------------')
        print('1.继续使用')
        print('2.退出程序')
        print('-------------------------------------')
        res1 = input('请选择您的操作:')
        while res1 != '1' and res1 != '2':
            res = input('选项不存在,请重新选择:')
        if res1 == '1':
            continue
        else:
            break


def shuie():
    while True:
        money = float(input('请输入您的工资:'))
        pay = 0
        if money < 7662:
            pay = money * 0.225
        else:
            pay = 7662 * 0.225
        coin = money - pay - 3500
        tax = 0
        if coin <= 0:
            get_money_two = money - pay
            pay = 0
        elif 0 < coin <= 1500:
            tax = coin * 0.03
        elif 1500 < coin <= 4500:
            tax = coin * 0.1 - 105
        elif 4500 < coin <= 9000:
            tax = coin * 0.2 - 555
        elif 9000 < coin <= 35000:
            tax = coin * 0.25 - 1005
        elif 35000 < coin <= 55000:
            tax = coin * 0.3 - 2755
        elif 55000 < coin <= 80000:
            tax = coin * 0.35 - 5505
        else:
            tax = coin * 0.45 - 13505
        get_money = money - pay - tax
        print('将缴纳的五险一金金额为:%.2f元,税额为:%.2f元,到手工资为:%.2f' % (pay, tax, get_money))

        print('-------------------------------------')
        print('1.继续使用')
        print('2.退出程序')
        print('-------------------------------------')
        res1 = input('请选择您的操作:')
        while res1 != '1' and res1 != '2':
            res = input('选项不存在,请重新选择:')
        if res1 == '1':
            continue
        else:
            break


def game():
    import random
    ran = random.randint(0, 100)
    i = 1
    while True:
        num = int(input('请输入0-100的数字:'))
        if i == 5:
            print('您的次数用完了')
            print('-------------------------------------')
            print('1.继续玩')
            print('2.退出程序')
            print('-------------------------------------')
            res = input('请选择您的操作:')
            while res != '1' and res != '2':
                res = input('选项不存在,请重新选择:')
            if res == '1':
                ran = random.randint(0, 100)
                i = 1
            else:
                break
        else:
            if num < 0 or num > 100:
                print('输入有误,请重新输入')
            elif num < ran:
                a = 5 - i
                i += 1
                print('猜小了,您还有%s次机会' % a)
            elif num > ran:
                a = 5 - i
                i += 1
                print('猜大了,您还有%s次机会' % a)

            else:
                print('您猜对了')
                print('-------------------------------------')
                print('1.继续玩')
                print('2.退出程序')
                print('-------------------------------------')
                res = input('请选择您的操作:')
                while res != '1' and res != '2':
                    res = input('选项不存在,请重新选择:')
                if res == '1':
                    ran = random.randint(0, 100)
                    i = 1
                else:
                    break


while True:
    print('-------------------------------------')
    print('1.BMI指数计算器')
    print('2.出租车费用计算器')
    print('3.税额计算器')
    print('4.猜数字游戏')
    print('0.退出程序')
    print('-------------------------------------')
    put = input('请输入您要选择的功能:')
    if put == '1':
        bmi()
    elif put == '2':
        taxi()
    elif put == '3':
        shuie()
    elif put == '4':
        game()
    elif put == '0':
        print('感谢您的使用,再见!')
        break
    else:
        print('输入有误,请重新输入')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是将三个目标函数整合一起的代码: ```python def objective(x): # 假设有3个任务,每个任务需要的时间为t1, t2, t3,对应的执行时间为x1, x2, x3 t = [10, 20, 30] # 任务需要的时间 d = [40, 50, 60] # 任务的交货期 e = [100, 200, 300] # 任务需要的能量 p = [10, 20, 30] # 加工机器的功率 # 目标1:最大完工时间 c = [0, 0, 0] # 完成任务的时间 # 计算完成每个任务的时间 c[0] = x[0] + t[0] c[1] = max(c[0], x[1]) + t[1] c[2] = max(c[1], x[2]) + t[2] # 最大完工时间 max_time = max(c) # 目标2:加工机器的总能耗 # 计算每个任务执行时的功率 power = [0, 0, 0] for i in range(3): if x[i] > 0: power[i] = p[i] # 计算总能耗 energy = 0 for i in range(3): energy += power[i] * x[i] * e[i] # 目标3:交货期满意度 # 计算每个任务的延迟时间 delay = [0, 0, 0] for i in range(3): if x[i] > d[i]: delay[i] = x[i] - d[i] # 计算总延迟时间 total_delay = sum(delay) # 计算交货期满意度,假设最大延迟时间为M M = 20 satisfaction = 1 - total_delay / (M * len(d)) # 返回三个目标函数的值 return [max_time, energy, satisfaction] ``` 在这个目标函数中,我们将三个目标函数整合一起,包括最大完工时间、加工机器的总能耗和交货期满意度。我们假设有3个任务,每个任务需要的时间为t1, t2, t3,对应的执行时间为x1, x2, x3,同时还有任务的交货期和需要的能量,以及加工机器的功率。对于每个目标函数,我们都按照前面的示例进行计算,最后返回三个目标函数的值。 需要注意的是,这只是一个简单的目标函数示例,实际上目标函数的形式和具体实现方式可能会根据具体问题而有所不同。因此,在使用NSGA2算法进行优化时,需要仔细设计和选择目标函数,以确保能够有效地解决目标问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值