鱼C论坛

 找回密码
 立即注册
查看: 1589|回复: 14

[已解决]代码报错原因求助

[复制链接]
发表于 2023-5-18 21:23:51 | 显示全部楼层 |阅读模式

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

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

x
小甲鱼课后作业第014讲:了不起的分支和循环(I)动动手求利润的那一题,我写的代码如图所示。每次都是那个位置报错,求助各位是什么原因导致的。谢谢
最佳答案
2023-5-18 21:35:27
本帖最后由 liuhongrun2022 于 2023-5-18 21:36 编辑
ansire 发表于 2023-5-18 21:32
n=int(input("请输入今年的利润:"))
if n


改成这样
python不能用百分数,变成小数就好了
  1. n=int(input("请输入今年的利润:"))
  2. if n<=10:
  3.     print("应该发放的奖金总数是:",n*0.1)
  4. elif 10<n<=20:
  5.     m=1+(n-10)*0.075
  6.     print("应该发放的奖金总数是:",m)
  7. elif 20<n<=40:
  8.     print("应该发放的奖金总数是:",1.75+(n-20)*0.05)
  9. elif 40<n<=60:
  10.     print("应该发放的奖金总数是:",2.75+(n-60)*0.03)
  11. elif 60<n<=100:
  12.     print("应该发放的奖金总数是:",3.35+(n-60)*0.015)
  13. else:
  14.     print("应该发放的奖金总数是:",3.95+(n-100)*0.01)
复制代码
利润代码报错.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-18 21:24:06 | 显示全部楼层

回帖奖励 +1 鱼币

你好,根据你提供的截图,代码报错的原因是因为第9行代码中的变量名写错了,应该是“profilt”而不是“profit”,因此Python无法找到该变量并报错。

你可以将第9行代码修改为:
  1. profit = (selling_price - cost_price) * 100
复制代码

这样就可以解决问题了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:26:43 | 显示全部楼层
isdkz 发表于 2023-5-18 21:24
你好,根据你提供的截图,代码报错的原因是因为第9行代码中的变量名写错了,应该是“profilt”而不是“prof ...

胡说八道的chatgpt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:29:50 | 显示全部楼层
第五行的7.5%改成0.75就没问题咯
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-18 21:30:09 | 显示全部楼层
isdkz 发表于 2023-5-18 21:24
你好,根据你提供的截图,代码报错的原因是因为第9行代码中的变量名写错了,应该是“profilt”而不是“prof ...

你是搞笑吗。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-18 21:31:06 | 显示全部楼层
liuhongrun2022 发表于 2023-5-18 21:29
第五行的7.5%改成0.75就没问题咯

不行,还是报错
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:31:37 | 显示全部楼层
ansire 发表于 2023-5-18 21:31
不行,还是报错

把你现在的代码发给我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-18 21:32:02 | 显示全部楼层
liuhongrun2022 发表于 2023-5-18 21:31
把你现在的代码发给我

n=int(input("请输入今年的利润:"))
if n<=10:
    print("应该发放的奖金总数是:",n*10%)
elif 10<n<=20:
    m=1+(n-10)*0.75
    print("应该发放的奖金总数是:",m)
elif 20<n<=40:
    print("应该发放的奖金总数是:",1.75+(n-20)*5%)
elif 40<n<=60:
    print("应该发放的奖金总数是:",2.75+(n-60)*3%)
elif 60<n<=100:
    print("应该发放的奖金总数是:",3.35+(n-60)*1.5%)
else:
    print("应该发放的奖金总数是:",3.95+(n-100)*1%)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-18 21:33:14 | 显示全部楼层
ansire 发表于 2023-5-18 21:32
n=int(input("请输入今年的利润:"))
if n

第一个用了m是为了测试print是不是不支持括号里面写公式,结果发现根本不是这个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:34:21 | 显示全部楼层

我的脚本没有接入识别图片,没办法
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:35:27 | 显示全部楼层    本楼为最佳答案   
本帖最后由 liuhongrun2022 于 2023-5-18 21:36 编辑
ansire 发表于 2023-5-18 21:32
n=int(input("请输入今年的利润:"))
if n


改成这样
python不能用百分数,变成小数就好了
  1. n=int(input("请输入今年的利润:"))
  2. if n<=10:
  3.     print("应该发放的奖金总数是:",n*0.1)
  4. elif 10<n<=20:
  5.     m=1+(n-10)*0.075
  6.     print("应该发放的奖金总数是:",m)
  7. elif 20<n<=40:
  8.     print("应该发放的奖金总数是:",1.75+(n-20)*0.05)
  9. elif 40<n<=60:
  10.     print("应该发放的奖金总数是:",2.75+(n-60)*0.03)
  11. elif 60<n<=100:
  12.     print("应该发放的奖金总数是:",3.35+(n-60)*0.015)
  13. else:
  14.     print("应该发放的奖金总数是:",3.95+(n-100)*0.01)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:37:01 | 显示全部楼层
改成这样
python不能用百分数,变成小数就好了
  1. n=int(input("请输入今年的利润:"))
  2. if n<=10:
  3.     print("应该发放的奖金总数是:",n*0.1)
  4. elif 10<n<=20:
  5.     m=1+(n-10)*0.075
  6.     print("应该发放的奖金总数是:",m)
  7. elif 20<n<=40:
  8.     print("应该发放的奖金总数是:",1.75+(n-20)*0.05)
  9. elif 40<n<=60:
  10.     print("应该发放的奖金总数是:",2.75+(n-60)*0.03)
  11. elif 60<n<=100:
  12.     print("应该发放的奖金总数是:",3.35+(n-60)*0.015)
  13. else:
  14.     print("应该发放的奖金总数是:",3.95+(n-100)*0.01)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:37:12 | 显示全部楼层
ansire 发表于 2023-5-18 21:33
第一个用了m是为了测试print是不是不支持括号里面写公式,结果发现根本不是这个问题

代码中 `n*10%` 和 `(n-20)*5%` 都缺少数字。正确的写法应该是 `n*0.1` 和 `(n-20)*0.05`。修改后的代码如下:


  1. n = int(input("请输入今年的利润:"))
  2. if n <= 10:
  3.     print("应该发放的奖金总数是:", n * 0.1)
  4. elif 10 < n <= 20:
  5.     m = 1 + (n - 10) * 0.75
  6.     print("应该发放的奖金总数是:", m)
  7. elif 20 < n <= 40:
  8.     print("应该发放的奖金总数是:", 1.75 + (n - 20) * 0.05)
  9. elif 40 < n <= 60:
  10.     print("应该发放的奖金总数是:", 2.75 + (n - 60) * 0.03)
  11. elif 60 < n <= 100:
  12.     print("应该发放的奖金总数是:", 3.35 + (n - 60) * 0.015)
  13. else:
  14.     print("应该发放的奖金总数是:", 3.95 + (n - 100) * 0.01)
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-18 21:38:29 | 显示全部楼层
sfqxx 发表于 2023-5-18 21:37
代码中 `n*10%` 和 `(n-20)*5%` 都缺少数字。正确的写法应该是 `n*0.1` 和 `(n-20)*0.05`。修改后的代码 ...

我一个大活人竟然抢过了chatgpt
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-18 21:42:21 | 显示全部楼层
liuhongrun2022 发表于 2023-5-18 21:35
改成这样
python不能用百分数,变成小数就好了

学习了,谢谢,这一点好奇怪啊。还有一点想请教一下,python报错的位置为什么不是我代码的错误位置呢,如图,我上面用了百分数,结果报错位置在下面,参考图中标出来的位置。

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-20 11:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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