# python实现:不同阶段的利润提成、查询平方数、模拟登录和兔子数量(长到第三个月后每个月又生一对兔子,假如兔子第六个月

python实现:不同阶段的利润提成、查询平方数、模拟登录和兔子数量(长到第三个月后每个月又生一对兔子,假如兔子第六个月死亡)

1、企业发放的奖金根据利润提成

  • 利润(I)低于或等于10万元时,奖金可提10%;

  • 利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%;

  • 20万到40万之间时,高于20万元的部分,可提成5%;

  • 40万到60万之间时高于40万元的部分,可提成3%;

  • 60万到100万之间时,高于60万元的部分,可提成1.5%;

  • 高于100万元时,超过100万元的部分按1%提成;

从键盘输入当月利润I,求应发放奖金总数?

def ques2(money):
    balance = [0, 10, 20, 40, 60, 100, 10000000000]
    percent = [0.1, 0.075, 0.05, 0.03, 0.015, 0.01]

    bonus = 0
    for i in range(1, len(balance)):
        if money < balance[i]:
            bonus += (money - balance[i - 1]) * percent[i - 1]
            break
        else:
            bonus += (balance[i] - balance[i - 1]) * percent[i - 1]
    print(bonus)
    pass
ques2(200)

2**、10000以内的整数,它加上100和加上268后都是一个完全平方数,请问该数是多少?**

def ques3():
    for i in range(-100, 10000):
        a = (i + 100) ** 0.5
        b = (i + 268) ** 0.5
        # 判断一个数字是整数还是浮点数
        if a % 1 == 0 and b % 1 == 0:
            print(i)
ques3()

3、模拟用户登录,检测用户输入的用户名和密码

  • 准备一个字典,保存用户名及对应的密码
  • 若用户名不存在,则提示’User Not Allowed’
  • 若用户名存在,但密码不正确,则提示’Authentication failure’
  • 若用户名和密码都正确,则登录成功,输出:xxx@localhost:~$
  • 当用户登录失败后可重试3次,每次重试需间隔5s钟,累计3次失败后,退出登录程序
import time


def ques4():
    user_dict = {"ls": "1234", "ww": "5678"}
    for i in range(3):
        name = input("请输入用户名:")
        password = input("请输入密码:")
        if name in user_dict:
            if password == user_dict.get(name):
                print("xxx@localhost:~$")
                break
            else:
                print("Authentication failure")
                if i < 2:
                    time.sleep(5)
        else:
            print("User Not Allowed")
            if i < 2:
                time.sleep(5)
    else:
        print("登录失败")
ques4()

4、有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子第六个月死亡,问每个月的兔子总数为多少?

def ques5(n):
    # 存在一个引用调用问题
    # rabbit = {"name": "tuzi", "age": 1}
    rabbit_num = 1
    rabbit_cage = [{"name": rabbit_num, "age": 1}]
    for i in range(n):
        # 记录死亡兔子的索引位置
        died_list = []
        for j in range(len(rabbit_cage)):
            rabbit_cage[j]['age'] += 1
            # 兔子死了 不能直接使用remove
            if rabbit_cage[j]['age'] == 6:
                died_list.append(rabbit_cage[j]['name'])
            if 3 <= rabbit_cage[j]['age'] < 6:
                rabbit_num += 1
                rabbit_cage.append({"name": rabbit_num, "age": 1})

        # 这样删除的话  后面的所有值 索引变
        # for j in died_list:
        #     rabbit_cage.remove(rabbit_cage[j])

        # 通过名称找到兔子 移除
        for num in died_list:
            for j in range(len(rabbit_cage)):
                if rabbit_cage[j]['name'] == num:
                    break
            rabbit_cage.remove(rabbit_cage[j])

    print(len(rabbit_cage))
    print(rabbit_cage)

    pass
ques5(9)
  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值