我来回走动,搞砸了这段代码。我有一个计算总餐价的公式。
def total_cost(price,tax,tip):
bill = price+(price*tax)+((price+(price*tax))*tip)
return bill
new_bill = total_cost(15,.08875,.18)
print(new_bill)
从那里开始,我如何编写一个for循环计算一顿饭的总价格,从不同的小费率开始,从15%开始到25%(包括两者),以1%的增量结束?
答案 0 :(得分:2)
你只需要循环百分比:
for tip in range(15, 26, 1): # the end point is exclusive with "range"
cost = total_cost(15, 0.08875, tip/100.) # in python3 you could use tip/100
print(cost)
答案 1 :(得分:1)
超级简化,但这将是第一次通过:
tips = list(range(15, 26))
for tip in tips:
print("For " + str(tip) + "% the total cost is $" + str(total_cost(price, tax, tip/100))
或者for循环可能是:
for tip in range(15, 26, 1):
...以节省一点点内存。
答案 2 :(得分:1)
一线解决方案:
print list(total_cost(15, 0.08875, tip / 100.) for tip in range(15, 26))
最外侧括号中的部分是生成器 - 它本身不执行任何操作,因为它只是算法。
函数list()
强制它起作用。