Python 编码练习:Timbits修复bug并通过所有测试

Python 编码练习:Timbits修复bug并通过所有测试,python,Python,我已经研究这个程序有一段时间了,我似乎找不到代码的错误。我查过了号码,没问题。我几乎认为这是一个引号或括号。我将非常感谢你的帮助。代码如下: # step 1: get the input timbitsLeft = int(input()) # step 2: initialize the total cost totalCost = 0 # step 3: buy as many large boxes as you can bigBoxes = int(ti

我已经研究这个程序有一段时间了,我似乎找不到代码的错误。我查过了号码,没问题。我几乎认为这是一个引号或括号。我将非常感谢你的帮助。代码如下:

# step 1: get the input
timbitsLeft = int(input())

# step 2: initialize the total cost

totalCost = 0             

# step 3: buy as many large boxes as you can
bigBoxes = int(timbitsLeft / 40)

totalCost = totalCost + bigBoxes * 6.19    # update the total price

timbitsLeft = timbitsLeft - 40 * bigBoxes  # calculate timbits still needed
# step 4, can we buy a medium box?

if timbitsLeft >= 20:                

    totalCost = totalCost + 3.39
    timbitsLeft = timbitsLeft - 20

if timbitsLeft > 10:                # step 5, can we buy a small box?

    totalCost = totalCost + 1.99
    timbitsLeft = timbitsLeft - 20
# step 6

totalCost = totalCost + timbitsLeft * 20 

print(totalCost)                         
这是我得到的错误: 没有通过测试。请检查下面的详细信息,然后重试。 测试用例1(共11个)的结果

输入: 10 程序在没有崩溃的情况下执行

程序输出: 200.0

预期此正确输出: 1.99


评分结果:输出行1的值为200.0,与预期值1.99不匹配。嗯,看起来您的错误是

if timbitsLeft > 10:
你的输入是10,所以你还有10个音色, 但是你需要超过10个才能深入到if声明中, 因此,除了:

totalCost = totalCost + timbitsLeft * 20 
基本上就是这样

totalCost = 0 + 10 * 20
这确实是200

你可能需要

if timbitsLeft >= 10:  

你的产量是200,因为你没有足够的钱买一个大盒子或中盒子。然后检查是否可以购买一个小盒子,但您只有10个音位,因此if语句,
if timbitsleet>10:#步骤5,我们可以购买一个小盒子吗?
,不是真的,因此您也不能购买小盒子。然后进行计算,得出值为200

您没有阅读提供给您的所有信息

小盒子的数字和一盒的价格是错误的

if timbitsLeft > 10:                # step 5, can we buy a small box?

totalCost = totalCost + 1.99
timbitsLeft = timbitsLeft - 20  (<---- the problem. it should be: - 10)
如果timbitsLeft>10:#步骤5,我们可以买一个小盒子吗?
总成本=总成本+1.99

timbitsLeft=timbitsLeft-20(这里是cscircles“编码练习:Timbits”的解决方案

timbitsleet=int(input())#步骤1:获取输入
totalCost=0#步骤2:初始化总成本
#第三步:尽可能多地购买大盒子
如果timbitsLeft>=40:
bigboxs=int(timbitsleet/40)
totalCost=totalCost+Bigboxs*6.19#更新总价
timbitsLeft=timbitsLeft-40*大盒子#计算仍然需要的timbits
如果Timbitsleet>=20:#步骤4,我们可以买一个中号的盒子吗?
中音箱=整数(音箱左/20)
总成本=总成本+医疗箱*3.39
timbitsLeft=timbitsLeft-20*中型音箱
如果Timbitsleet>=10:#步骤5,我们可以买一个小盒子吗?
smallBoxes=int(timbitsLeft/10)
总成本=总成本+小盒子*1.99
timbitsLeft=timbitsLeft-小盒子*10
totalCost=totalCost+timbitsLeft*0.2#步骤6

打印(总成本)#第7步
这里没有足够的信息可以帮助我们。用你自己的话来说,这段代码应该做什么?你使用的是哪个版本的Python?你还应该努力遵循代码流程,逐行检查,看看各种输入类型会发生什么。在他的态度可能会对你有很大帮助。我认为这不是一个答案。OP想要“找出代码的错误”;我可以看到更正后的代码,但它有什么问题?
totalCost = totalCost + timbitsLeft * 20 (<---- the problem. it should be: *.2)
print(totalCost)