鱼C论坛

 找回密码
 立即注册
查看: 3567|回复: 3

[已解决]麻烦高手将下面的语句逐条解释下。

[复制链接]
发表于 2019-8-20 10:09:24 From FishC Mobile | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
麻烦高手将下面的语句逐条解释下。

profit=int(input('Show me the money: '))
bonus=0
thresholds=[100000,100000,200000,200000,400000]
rates=[0.1,0.075,0.05,0.03,0.015,0.01]
for i in range(len(thresholds)):
    if profit<=thresholds[i]:
        bonus+=profit*rates[i]
        profit=0
        break
    else:
        bonus+=thresholds[i]*rates[i]
        profit-=thresholds[i]
bonus+=profit*rates[-1]
print(bonus)
最佳答案
2019-8-20 15:21:11
profit=int(input('Show me the money: '))  #将用户给的值赋给profit变量
bonus=0  #初始化bonus变量
thresholds=[100000,100000,200000,200000,400000]  #创建thresholds列表
rates=[0.1,0.075,0.05,0.03,0.015,0.01]  #创建rates列表
for i in range(len(thresholds)):  # 同等于for i in range(0, 5),因为thresholds列表里有5个元素
    if profit<=thresholds[i]:  # 如果profit小于等于threshold列表里的i个元素(第一次循环就是第0个元素)
        bonus+=profit*rates[i]  # 将bonus加上profit乘以rates列表里的第i个元素,把最终的值在赋给bonus
        profit=0  # 把profit的数据清空
        break  # 跳出for循环
    else:
        bonus+=thresholds[i]*rates[i]  # if条件不成立时,bonus = bonus + thresholds的第i个元素乘以rates的第i个元素
        profit-=thresholds[i]  # 将profit的值减去threshold的第i个元素,并把值赋给profit
bonus+=profit*rates[-1]  # 最后将bonus的值加上profit的值乘以rates列表的最后一个元素,再把值赋给bonus
print(bonus)  # 最后把bonus的纸打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-20 10:27:29 | 显示全部楼层
range(start,end,step)
start 起始值(包含),end 终止值(不包含),step 步长。
range(start,end)——省却step时,默认步长为1;
range(end)——省却step、start时,默认步长为1,起始值为0
例子:list(range(0,10,1))
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

len() 方法返回对象(字符、列表、元组等)长度或项目个数。
剩下的就是运算了
自己再琢磨一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 2019-8-20 10:55:37 | 显示全部楼层
输入利润算奖金
补充:
bonus+=profit*rates[i]------》bonus=bonus+profit*rates[i]
rates[-1]是该列表最后一个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-20 15:21:11 | 显示全部楼层    本楼为最佳答案   
profit=int(input('Show me the money: '))  #将用户给的值赋给profit变量
bonus=0  #初始化bonus变量
thresholds=[100000,100000,200000,200000,400000]  #创建thresholds列表
rates=[0.1,0.075,0.05,0.03,0.015,0.01]  #创建rates列表
for i in range(len(thresholds)):  # 同等于for i in range(0, 5),因为thresholds列表里有5个元素
    if profit<=thresholds[i]:  # 如果profit小于等于threshold列表里的i个元素(第一次循环就是第0个元素)
        bonus+=profit*rates[i]  # 将bonus加上profit乘以rates列表里的第i个元素,把最终的值在赋给bonus
        profit=0  # 把profit的数据清空
        break  # 跳出for循环
    else:
        bonus+=thresholds[i]*rates[i]  # if条件不成立时,bonus = bonus + thresholds的第i个元素乘以rates的第i个元素
        profit-=thresholds[i]  # 将profit的值减去threshold的第i个元素,并把值赋给profit
bonus+=profit*rates[-1]  # 最后将bonus的值加上profit的值乘以rates列表的最后一个元素,再把值赋给bonus
print(bonus)  # 最后把bonus的纸打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-13 02:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表