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

时间:2018-11-19 21:01:58

标签: python

我正在编写一个使用函数的程序,该程序可以获取乘客总数,票价总额和利润,这只是票价总额的一半。我遇到的问题是它运行两次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("***********")

2 个答案:

答案 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