我的代码不会将所有输入的费用加在一起,包括创建总费用的税

时间:2017-04-20 17:54:08

标签: python

个人费用根据用户输入而定,但我的代码不会添加它们来创建总费用1 当它运行时,它保持变量totalcost相同。

它应根据我的函数中的公式计算总成本。我无法弄清楚为什么这不起作用。

    import sys*
#VARIABLES
total_EntrancePrice=0
costcoins=0
totalcost=0

#PEOPLE IN PARTY
print("How many people are included in your party?")
num_of_people= int(input())

#ENTRANCE FEE
entrance_fee_price = 10
def get_total_EntrancePrice():
  total_EntrancePrice=num_of_people*entrance_fee_price
  print("Your total price with %s people is %s dollars" %(num_of_people, total_EntrancePrice))
get_total_EntrancePrice() 

yes = "yes"
yes1 = "Yes"
no = "no"
no1 = "No"

#COINS?
coins = str(input("Would you like to buy coins?:"))
if coins == yes or yes1:
  print("Okay great! Each coin costs 20 cents. How many coins would you like?")
  coinsbought=int(input())
  priceforcoin=.20
  def get_costcoins():
    costcoins=coinsbought*priceforcoin
    print("Your total price of %s coins is %s dollars" %(coinsbought, costcoins))
  get_costcoins()
elif coins ==no or no1:
  print("No worries, it's not mandatory to buy some")
else:
  print("Im sorry, I dont understand your response")
#TOTAL COST WITH TAX
tax=total_EntrancePrice+costcoins/10
def get_totalcost():
  totalcost=total_EntrancePrice+costcoins+tax
  print("Your total for today with %s people and %s coins is %s dollars. Thank you for visitiing our Lost at Sea location. Have a wonderful day!" %(num_of_people, coinsbought,totalcost))
get_totalcost()

1 个答案:

答案 0 :(得分:0)

这是范围的问题,如果这是您第一次遇到它,可能会造成混淆。我自己也不是经验丰富的编码员,所以请原谅任何技术上的不准确之处。我将尝试解释问题的主旨。
所以,举一个简单的例子:

var = 1
def change():
    var = 2
change()
print(var)

打印1

这种奇怪行为的原因是,当change中的var发生变化时,它被限制在函数内部。
当您打印var时,您将其打印在函数外部,或者在新变量的范围之外。如果你这样做了:

var = 1
def change():
    var = 2
    print(var)
change()

输出为2,但函数外部的var仍为1。

有多种方法可以解决您的问题。一个是使用(令人讨厌的)全局变量。另一种方法是使用return将变量设置为“OUTSIDE”范围内的函数的输出。这就是我的意思。

var = 1
def change():
    return 2

var = change()
print(var)

打印2

返回,如果您没有遇到它,则返回输出的函数。当我说var = change()时,python会执行以下操作:“所以,var将等于此事change,当我运行更改时,我得到此输出2因此var = 2
在您的情况下,您将计算函数中的成本,然后返回它并将此输出分配给函数外部的变量。

在您自己的代码中尝试并实现它!