鱼C论坛

 找回密码
 立即注册
查看: 1165|回复: 8

[已解决]新人求教

[复制链接]
发表于 2017-12-18 17:33:14 | 显示全部楼层 |阅读模式

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

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

x

题目:企业发放的奖金根据利润提成。利润(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,求应发放奖金总数?


#python2
i=int(raw_input('净利润:'))
I=[1000000,600000,400000,200000,100000,0]
r=[0.01,0.015,0.03,0.05,0.075,0.1]
for j in range(len(I)):
    if i>I[j]:
        b=[0,0,0,0,0,0]
        b[j]=i-I[j]
        for k in range(j,len(I)):
            b[k]=I[k]
        bonus=sum(map(lambda (i1,i2): i1*i2, zip(b,r)))
        break
print('奖金:',bonus)


#在python3下如何修改bonus=sum(map(lambda (i1,i2): i1*i2, zip(b,r)))这一句,我修改了好多遍老是不对,现在请求大家的指教。
最佳答案
2017-12-18 20:20:13
来钓鱼 发表于 2017-12-18 20:04
惭愧,这是菜鸟教程python100例中网友给的答案,我没python2,但是我想该他的代码,但没成功,所以我就想 ...

这个 zip() 和 map() 函数在python3中都改了,还有这个lambda 后面接里面是元组的列表不可以计算吧,这个答案我怎么感觉有点奇怪啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-12-18 17:44:59 From FishC Mobile | 显示全部楼层
报错信息是什么
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-18 17:49:47 | 显示全部楼层

TypeError: <lambda>() missing 1 required positional argument: 'i2'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-18 19:43:30 | 显示全部楼层
你这个程序在python2里能运行吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-18 20:04:21 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-18 19:43
你这个程序在python2里能运行吗?

惭愧,这是菜鸟教程python100例中网友给的答案,我没python2,但是我想该他的代码,但没成功,所以我就想问问大家能否用python3解决这个lambda这个问题。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-18 20:20:13 | 显示全部楼层    本楼为最佳答案   
来钓鱼 发表于 2017-12-18 20:04
惭愧,这是菜鸟教程python100例中网友给的答案,我没python2,但是我想该他的代码,但没成功,所以我就想 ...

这个 zip() 和 map() 函数在python3中都改了,还有这个lambda 后面接里面是元组的列表不可以计算吧,这个答案我怎么感觉有点奇怪啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-12-18 20:41:37 | 显示全部楼层
°蓝鲤歌蓝 发表于 2017-12-18 20:20
这个 zip() 和 map() 函数在python3中都改了,还有这个lambda 后面接里面是元组的列表不可以计算吧,这个 ...

其实我也觉得这题怪怪的,我也知道他们在python3改了,怪我对这些方法不精,待我在多多学习再说,说不定到时就会了,感谢你的回复。给你个最佳答案好了,不在这里耗时间了,谢谢你啦。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-18 20:45:31 | 显示全部楼层
来钓鱼 发表于 2017-12-18 20:41
其实我也觉得这题怪怪的,我也知道他们在python3改了,怪我对这些方法不精,待我在多多学习再说,说不定 ...

不客气
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-12-18 22:35:33 | 显示全部楼层
  1. while True:
  2.    i=int(input('净利润:'))
  3.    I=[1000000,600000,400000,200000,100000,0]
  4.    r=[0.01,0.015,0.03,0.05,0.075,0.1]
  5.    sum = 0
  6.    b = [0,0,0,0,0,0]
  7.    IL = len(I)
  8.    
  9.    for j in range(IL):                  
  10.       if i > I[j]:
  11.          b[j] = i - I[j]
  12.          i = I[j]                              
  13.          continue
  14.    BL = len(b)   
  15.    for k in range(BL):
  16.       sum = sum + b[k]*r[k]
  17.    print("奖金:"sum)
  18.    
复制代码


这是我写的,希望对你有帮助
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-26 13:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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