ansire 发表于 2023-5-18 21:23:51

代码报错原因求助

小甲鱼课后作业第014讲:了不起的分支和循环(I)动动手求利润的那一题,我写的代码如图所示。每次都是那个位置报错,求助各位是什么原因导致的。谢谢

isdkz 发表于 2023-5-18 21:24:06

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

你可以将第9行代码修改为:

profit = (selling_price - cost_price) * 100


这样就可以解决问题了。

liuhongrun2022 发表于 2023-5-18 21:26:43

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

胡说八道的chatgpt

liuhongrun2022 发表于 2023-5-18 21:29:50

第五行的7.5%改成0.75就没问题咯

ansire 发表于 2023-5-18 21:30:09

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

你是搞笑吗。。。。

ansire 发表于 2023-5-18 21:31:06

liuhongrun2022 发表于 2023-5-18 21:29
第五行的7.5%改成0.75就没问题咯

不行,还是报错

liuhongrun2022 发表于 2023-5-18 21:31:37

ansire 发表于 2023-5-18 21:31
不行,还是报错

把你现在的代码发给我

ansire 发表于 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%)

ansire 发表于 2023-5-18 21:33:14

ansire 发表于 2023-5-18 21:32
n=int(input("请输入今年的利润:"))
if n

第一个用了m是为了测试print是不是不支持括号里面写公式,结果发现根本不是这个问题

isdkz 发表于 2023-5-18 21:34:21

liuhongrun2022 发表于 2023-5-18 21:26
胡说八道的chatgpt

我的脚本没有接入识别图片,没办法{:10_277:}

liuhongrun2022 发表于 2023-5-18 21:35:27

本帖最后由 liuhongrun2022 于 2023-5-18 21:36 编辑

ansire 发表于 2023-5-18 21:32
n=int(input("请输入今年的利润:"))
if n

改成这样
python不能用百分数,变成小数就好了
n=int(input("请输入今年的利润:"))
if n<=10:
    print("应该发放的奖金总数是:",n*0.1)
elif 10<n<=20:
    m=1+(n-10)*0.075
    print("应该发放的奖金总数是:",m)
elif 20<n<=40:
    print("应该发放的奖金总数是:",1.75+(n-20)*0.05)
elif 40<n<=60:
    print("应该发放的奖金总数是:",2.75+(n-60)*0.03)
elif 60<n<=100:
    print("应该发放的奖金总数是:",3.35+(n-60)*0.015)
else:
    print("应该发放的奖金总数是:",3.95+(n-100)*0.01)

liuhongrun2022 发表于 2023-5-18 21:37:01

改成这样
python不能用百分数,变成小数就好了
n=int(input("请输入今年的利润:"))
if n<=10:
    print("应该发放的奖金总数是:",n*0.1)
elif 10<n<=20:
    m=1+(n-10)*0.075
    print("应该发放的奖金总数是:",m)
elif 20<n<=40:
    print("应该发放的奖金总数是:",1.75+(n-20)*0.05)
elif 40<n<=60:
    print("应该发放的奖金总数是:",2.75+(n-60)*0.03)
elif 60<n<=100:
    print("应该发放的奖金总数是:",3.35+(n-60)*0.015)
else:
    print("应该发放的奖金总数是:",3.95+(n-100)*0.01)

sfqxx 发表于 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`。修改后的代码如下:


n = int(input("请输入今年的利润:"))
if n <= 10:
    print("应该发放的奖金总数是:", n * 0.1)
elif 10 < n <= 20:
    m = 1 + (n - 10) * 0.75
    print("应该发放的奖金总数是:", m)
elif 20 < n <= 40:
    print("应该发放的奖金总数是:", 1.75 + (n - 20) * 0.05)
elif 40 < n <= 60:
    print("应该发放的奖金总数是:", 2.75 + (n - 60) * 0.03)
elif 60 < n <= 100:
    print("应该发放的奖金总数是:", 3.35 + (n - 60) * 0.015)
else:
    print("应该发放的奖金总数是:", 3.95 + (n - 100) * 0.01)

liuhongrun2022 发表于 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

ansire 发表于 2023-5-18 21:42:21

liuhongrun2022 发表于 2023-5-18 21:35
改成这样
python不能用百分数,变成小数就好了

学习了,谢谢,这一点好奇怪啊。还有一点想请教一下,python报错的位置为什么不是我代码的错误位置呢,如图,我上面用了百分数,结果报错位置在下面,参考图中标出来的位置。‪C:\Users\86188\Desktop\报错位置.png
页: [1]
查看完整版本: 代码报错原因求助