【问题标题】:My program loops twice before before the printing the output我的程序在打印输出之前循环了两次
【发布时间】:2018-11-20 06:02:07
【问题描述】:

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

【问题讨论】:

  • 将从CalculateBuses 获得的值分配给一些变量并对变量求和。
  • 请注意,您似乎将 classfunction 混淆了。当您在 python 中使用关键字def 时,这意味着您正在defining 一个函数。类有点复杂,是使用 class 关键字创建的。

标签: python


【解决方案1】:

您不需要先调用Calculate Bus1,2,3。删除代码:

CalculateBus1()
CalculateBus2()
CalculateBus3()

您正在做的是提示用户输入并在每个函数中返回输入。您没有将它们保存到变量中。这意味着如果您运行calculateBus1(),它将提示您输入,然后丢弃返回。你只需要

total = (CalculateBus1()+CalculateBus2()+CalculateBus3())

这段代码的作用是运行您的CalculateBus函数,然后提示用户输入,然后对它们求和。

【讨论】:

    【解决方案2】:

    你调用你的函数两次,都在这里:

    CalculateBus1()
    CalculateBus2()
    CalculateBus3()
    

    这里:

    total = (CalculateBus1()+CalculateBus2()+CalculateBus3())
    

    要么删除前三个调用,要么做

    passengersBus1 = CalculateBus1()
    passengersBus2 = CalculateBus2()
    passengersBus3 = CalculateBus3()
    total = passengersBus1 + passengersBus2 + passengersBus3
    

    看到您的编辑后,我认为您对调用函数的工作原理有些困惑。更多详情请见here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-03
      • 2021-06-21
      • 2022-12-08
      • 1970-01-01
      • 2019-06-28
      • 1970-01-01
      相关资源
      最近更新 更多