我正在编写一个程序,使用函数可以获得乘客总数、票价总额和利润,而利润仅为总票价的一半。我遇到的问题是,它运行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("***********")
您不需要首先自己调用Calculate Bus1,2,3。删除代码:
CalculateBus1()
CalculateBus2()
CalculateBus3()
您正在做的是提示用户输入,并在每个函数中返回输入。您没有将它们保存到变量中。这意味着,如果运行calculateBus1()
,它将提示您输入,然后放弃返回。你只需要
total = (CalculateBus1()+CalculateBus2()+CalculateBus3())
这段代码的作用是运行CalculateBus函数,这些函数反过来提示用户输入,然后求和。
您调用了两次函数,都在这里:
CalculateBus1()
CalculateBus2()
CalculateBus3()
这里:
total = (CalculateBus1()+CalculateBus2()+CalculateBus3())
要么删除前三个调用,要么执行
passengersBus1 = CalculateBus1()
passengersBus2 = CalculateBus2()
passengersBus3 = CalculateBus3()
total = passengersBus1 + passengersBus2 + passengersBus3
看到您的编辑后,我想您对调用函数的工作方式有点困惑。有关的更多详细信息,请参阅此处