我无法在代码的最后一行中正确打印“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)
我注意到以下几点:
在第一种情况下,waterUsedTotal是一个
int
,也就是说,它被四舍五入。在第二种情况下,它被转换为float
。这是不一致的。在但更重要的是:
^{pr2}$这一行始终为true,因为
'R'
被解释为true。而其他的情况是elif
,因此它们永远不会被执行。在我怀疑你想要这样的东西:如果用户输入了}那么做,否则,如果用户输入了}做最后一件事。在
'r'
或'R'
,那么这样做;否则,如果用户输入了'c'
或{'i'
或{我建议:
或者
^{4}$(
.lower()
表示它永远不会是任何大写字符。)相关问题 更多 >
编程相关推荐