你好,我是python和编程的新手,我的任务之一是创建一个收银机或愿望清单。我想知道如果大于25或50的免费送货方式,我有点了解,但是却不太了解或没有得到输出,我想更改或添加“免费送货” 。作业不需要这样做,只是想知道如何做以备将来参考。
def main():
item1 = input(" Item Name ")
item2 = input(" Item Name 2")
item3 = input(" Item Name 3")
var1 = float(input(" Item Cost 1"))
var2 = float(input(" Item Cost 2"))
var3 = float(input(" Item Cost 3"))
# Shipping Handling
shipping= 5.99
total = var1 + var2 + var3
if total > float(50.00):
print("Free Shipping")
tax= total*.065
subTotal= str(total)
# Total of everything
totalofEvery=total + float(tax) + float(str(shipping))
print("Items Ordered:")
print("")
print("Items"+" Cost")
print( item1 + " " + " "+"$" +str(var1,)) +" "
print( item2 + " " + " "+"$" +str(var2)) +" "
print( item3 + " " + " "+"$" +str(var3)) +" "
print(" ")
print("_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _")
print("Subtotal: " +" "+"$"+ subTotal)
print("Shipping Fee" + ":" + " "+"$" + str(float(shipping)))
print("Tax"+":" + " " +"$" +str(tax))
print("Here is your order total "+":" +" "+"$"+str(totalofEvery))
main()
答案 0 :(得分:0)
在这里,我将简化G. Anderson的回答。这样可以解决您的运输问题:
if total > float(50.00):
print("Free Shipping")
shipping = 0.0 # this is what you need, inside the if statement
您还存在一些语法错误以及我评论过的奇怪的转换。在第29行上,将str(var1,))
更改为str(var1)
。
将所有第二个括号移到第29、31和33行的行尾。
例如:
print( item2 + " " + " "+"$" +str(var2)) +" "
应该是:
print( item2 + " " + " "+"$" +str(var2) +" ")
这应该使它按预期工作。
编辑:您的注释:使用str.format
,请参见以下示例,并用其替换所有item / var打印语句。我任意选择了25个空格以尝试匹配您以前的打印语句。
print("{:<25s}{:>25s}".format(item1, "$" + str(var1)))