我正在编写一个使用函数的程序,该程序可以获取乘客总数,票价总额和利润,这只是票价总额的一半。我遇到的问题是它运行两次Please enter the number of passengers for bus1 :
Please enter the number of passengers for bus2 :
Please enter the number of passengers for bus3 :
***********
,然后给了我输出。我只需要运行一次,然后输出即可。这是我的代码:
def CalculateBus1():
bus1 = input("Please enter the number of passengers for bus1 :")
return bus1
def CalculateBus2():
bus2 = input("Please enter the number of passengers for bus2 :")
return bus2
def CalculateBus3():
bus3 = input("Please enter the number of passengers for bus3 :")
return bus3
bus1 = CalculateBus1()
bus2 = CalculateBus2()
bus3 = CalculateBus3()
total = (bus1+bus2+bus3)
fare = float(total*2.50)
profit = float(fare/2)
print("***********")
print"There are total {} passengers from three buses." .format(total)
print"The total fare earned is: ${}" .format(fare)
print"The net profit is: ${}" .format(profit)
print("***********")
答案 0 :(得分:4)
您不需要先自行调用Calculate Bus1,2,3。删除代码:
CalculateBus1()
CalculateBus2()
CalculateBus3()
您正在做的是提示用户输入并在每个功能中返回输入。您没有将它们保存到变量中。这意味着,如果您运行calculateBus1()
,它将提示您输入内容,然后放弃返回值。您只需要
total = (CalculateBus1()+CalculateBus2()+CalculateBus3())
此代码的作用是运行您的CalculateBus函数,依次提示用户输入然后求和。
答案 1 :(得分:2)
您在这里两次调用函数:
CalculateBus1()
CalculateBus2()
CalculateBus3()
在这里:
total = (CalculateBus1()+CalculateBus2()+CalculateBus3())
要么删除前三个呼叫,要么执行
passengersBus1 = CalculateBus1()
passengersBus2 = CalculateBus2()
passengersBus3 = CalculateBus3()
total = passengersBus1 + passengersBus2 + passengersBus3
看完您的编辑后,我认为您对调用函数的工作方式有些困惑。有关更多详细信息,请参见here