驾驶成本计算函数调试求助:EOF错误及参数处理问题
解决driving_cost函数实现及EOF错误问题
问题分析
你的EOF错误根源是误解了需求:题目只要求输入两个值(每加仑英里数、汽油单价),不需要输入10、50、400这三个里程数——这三个是固定要调用的参数,不是用户输入项。当你用float(input())获取miles_driven时,程序会等待输入,但在线判题环境或测试时没有提供额外输入,就会触发EOFError。
正确实现代码
首先实现符合要求的driving_cost()函数,然后获取用户输入的两个参数,再固定调用三次函数计算10、50、400英里的成本,保留两位小数:
def driving_cost(miles_per_gallon, dollars_per_gallon, miles_driven): # 计算逻辑:总油费 = (行驶英里数 / 每加仑英里数) * 每加仑价格 return (miles_driven / miles_per_gallon) * dollars_per_gallon # 获取输入的两个参数 mpg = float(input()) price_per_gallon = float(input()) # 固定调用三次,输出保留两位小数 print("{0:.2f}".format(driving_cost(mpg, price_per_gallon, 10.0))) print("{0:.2f}".format(driving_cost(mpg, price_per_gallon, 50.0))) print("{0:.2f}".format(driving_cost(mpg, price_per_gallon, 400.0)))
验证示例
当输入为20.0和3.1599时,输出结果为:
0.79 7.90 126.40
(注:原函数调用(20.0, 3.1599, 50.0)返回7.89975,保留两位小数后为7.90,符合要求)
错误点说明
你之前尝试用miles_driven = float(input())是完全没必要的,因为题目明确要求计算10、50、400英里的油费,这三个值是固定的,不需要用户输入。如果强行等待输入,而测试环境没有提供对应输入,就会出现EOF错误。
内容的提问来源于stack exchange,提问作者Jordan Terry
相关产品推荐
相关产品推荐

