如何调试Python代码中的问题?

2024-09-27 21:23:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我无法在代码的最后一行中正确打印“totalBill”。我不知道如何让它实现用户输入,并且只使用那些if约束。在

# Compute and display the customer bill for water usage during the billing period # Prompt the user to enter 3 values: # a. The customers code (a character) # b. The customer's beginning meter reading (a positive integer value) # c. The customer's ending meter reading (a positive integer value) # Process info and display results customerCode = str(input("Please enter your customer code: ")) begMeter = int(input("Please enter your beginning meter reading: ")) endMeter = int(input("Please enter your ending meter reading: ")) waterUsed = endMeter - begMeter if begMeter > endMeter: waterUsedTotal = (((999999999 - begMeter) + 1) + endMeter) /10 else: waterUsedTotal = waterUsed * 0.1 a = 4000000 b = 0.00025 d = 10000000 e = 0.0005 if customerCode.lower() == 'r' or 'R': totalBill = (5.00 + (waterUsedTotal * e)) elif customerCode.lower() == 'c' or 'C': if waterUsed <= a: totalBill = 1000.00 elif waterUsed > a: totalBill = (1000.00 + (waterUsedTotal * b)) elif customerCode.lower() == 'i' or 'I': if waterUsedTotal <= a: totalBill = 1000.00 elif waterUsed > a and waterUsed <= d: totalBill = 2000.00 elif waterUsed > d: totalBill = 2000.00 + (waterUsedTotal * b) print("") print("Customer code: ", customerCode) print("Beginning meter reading: ", begMeter) print("Ending meter reading: ", endMeter) print("Gallons of water used: ", "%.1f" % waterUsedTotal) print("Amount billed: $", "%.2f" % totalBill)


Tags: andtheifcustomermeterprintenterelif
1条回答
网友
1楼 · 发布于 2024-09-27 21:23:38

我注意到以下几点:

if begMeter > endMeter:
    waterUsedTotal = (((999999999 - begMeter) + 1) + endMeter) /10
else:
    waterUsedTotal = waterUsed * 0.1

在第一种情况下,waterUsedTotal是一个int,也就是说,它被四舍五入。在第二种情况下,它被转换为float。这是不一致的。在

但更重要的是:

^{pr2}$

这一行始终为true,因为'R'被解释为true。而其他的情况是elif,因此它们永远不会被执行。在

我怀疑你想要这样的东西:如果用户输入了'r''R',那么这样做;否则,如果用户输入了'c'或{}那么做,否则,如果用户输入了'i'或{}做最后一件事。在

我建议:

if customerCode in ['r', 'R']:

或者

^{4}$

.lower()表示它永远不会是任何大写字符。)

相关问题 更多 >

    热门问题