我的程序在打印输出之前循环两次



我正在编写一个程序,使用函数可以获得乘客总数、票价总额和利润,而利润仅为总票价的一半。我遇到的问题是,它运行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

看到您的编辑后,我想您对调用函数的工作方式有点困惑。有关的更多详细信息,请参阅此处

最新更新