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)