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("***********")
解决方案
您不需要先调用Calculate Bus1,2,3。删除代码:
CalculateBus1()
CalculateBus2()
CalculateBus3()
您正在做的是提示用户输入并在每个函数中返回输入。您没有将它们保存到变量中。这意味着如果你运行calculateBus1()
,它会提示你输入,然后丢弃返回。所有你需要的是
total = (CalculateBus1()+CalculateBus2()+CalculateBus3())
这段代码的作用是运行您的CalculateBus 函数,这些函数反过来提示用户输入,然后对它们求和。
推荐阅读
- java - 为简单的数学游戏添加高分
- python-3.x - 来自亚马逊网站的网页抓取导致 HTTP 错误
- android - 在我的片段中,在调用 onCreateView 之前调用 onBackPressed
- android - Android Studio 遇到 android sdk 问题
- javascript - React-router-dom 不会渲染在 switch 中的自定义组件之后定义的路由
- c - 使用条件变量的简单多线程堆栈实现
- mysql - cPanel MySQL 服务管理器关闭,但 /var/run/mysqld/mysqld.pid 正在运行
- php - 使用 Xero API - Private App 获取发票数据
- reactjs - Redux-form Material-UI 下拉菜单不显示下拉菜单,选择
- node.js - 按顺序运行 gulp 任务会引发“管道中未处理的流错误”