我在查明如何在if语句中命名变量时遇到了一些麻烦。任何信息都会有所帮助(我切断了代码的开头,因为它一直有效,直到我想显示成本)p.s这是一个家庭作业
答案 0 :(得分:2)
@Liz:上面的评论是正确的。您需要为变量赋值以执行代码。
x=1
a=2*x # example for your code , after you defined the needed variable x
print a
在下面的示例解决方案中,我定义了一个函数(请参阅def
关键字),它允许我在没有定义变量的情况下编写代码。
因此,在完成函数定义之后,我可以定义变量并执行函数。
def dosomething(x): # your code in a function, you don't need to know x yet
a=2*x
return a
x=10 # now you know x and you want to use it in your function
print dosomething(x) # will print 20
我希望这有助于您的理解。这里解决了您的问题:
def totals(cabin,month,n):
if cabin == "inner cabin":
cost = 400 * n
elif cabin == "ocean view cabin":
cost= 800 * n
elif cabin =="balcony":
cost= 1200 * n
# the if-block for the months is separate from the loop for the cost
if month =="july":
tip= 10*5*n
subtotal= cost + tip # add tips
elif month=="june":
tip= 10* 5 * n
cost1= cost + tip
cost2= cost1 * .10 # a 10% discount
subtotal= cost1 - cost2
elif month=="august":
subtotal = cost # no tip, no discount
# there should be an else for other months
return cost, subtotal
month='july'
cabin='balcony'
n=2 # number of passengers
cost,subtotal = totals(cabin,month,n)
print "\nMonth of vaction reservation:",month, \
"\nNumber of passengers:",n, \
"\nType of Cabin:",cabin, \
"\nCost of cabin:",cost, \
"Subtotal:",subtotal
输出:
Month of vaction reservation: july
Number of passengers: 2
Type of Cabin: balcony
Cost of cabin: 2400 Subtotal: 2500
您必须添加目的地,这是另一个单独的决定,即必须拥有它自己的if..elif..else
块,如果这会影响任何定价。
答案 1 :(得分:0)
假设它之前有效并且您已经定义了变量并在输入if - elif语句之前为它们指定了适当的值...看起来您的问题是小写拼写错误在一个地方。此外,由于这是一项家庭作业,请检查您的任何真实单词的拼写。你能看到另一个错误。
奖励点 - 弄清楚如何在编辑器中将打印行包含在80列中。 Google PEP-8。像这样的长线只是糟糕的形式。
哦,我所做的只是更正了该变量的拼写,并将此代码添加到您提供的代码上方:
cabin = "inner cabin"
passangers = 200
Destination = "Rio"
month = "june"
subtotal = 0
我还建议你所有的条件行动都是一致的。在我看来,应该在所有这些中设置提示,小计等。这样你就不会对每个条件得到完全不同的结果,除非这当然是作业。
正如另一个答案所指出的那样,将重复部分放在一个函数中是正确的方法。但是,您可能还没有参加课程。我不知道。
祝你好运&挂在那里!