为什么这在我的驾驶成本函数代码中不起作用
这是我遇到的问题的相关信息:
编写一个名为 driving_cost() 的函数,它需要三个输入参数:每加仑多少英里(miles_per_gallon)、每加仑多少钱(dollars_per_gallon)和行驶的英里数(miles_driven)。这个函数会返回开车行驶这些英里所需的美元费用。当你用参数
(20.0, 3.1599, 50.0)
调用这个函数时,它会返回7.89975
。在一个程序中定义这个函数,程序的输入是汽车每加仑多少英里和每加仑汽油的价格(都是浮点数)。通过调用你的 driving_cost() 函数三次,输出开车行驶10英里、50英里和400英里的汽油费用。
输出每个浮点数时,要保留小数点后两位,可以这样做:
print(f'{your_value:.2f}')
每当我把 miles_driven
设置为 float(input())
时,我都会遇到 EOF 错误,什么也不发生。也许是我自己的问题,但我已经卡在这里一天了,我可以用10、50和400分别调用三次来打印结果,但我无法让 miles_driven = float
正常工作。
# This was the code I last tried
# Define your function here.
miles_per_gallon = float(input())
dollars_per_gallon = float(input())
miles_driven = float(input())
def driving_cost(miles_per_gallon, dollars_per_gallon, miles_driven):
if miles_driven == 'None':
miles_driven = [10, 50, 400]
for m in miles_driven:
cost = (dollars_per_gallon / miles_per_gallon) * miles_driven
return cost
print(f'{cost:.2f}')
else:
cost = (dollars_per_gallon / miles_per_gallon) * miles_driven
print(f'{cost:.2f}')
if __name__ == '__main__':
# Type your code here.
print(driving_cost(miles_per_gallon, dollars_per_gallon, miles_driven))
2 个回答
这是我写的代码,确保它能通过所有测试。谢谢你,Marcin。
下面是计算开车成本的函数:
def driving_cost(miles_per_gallon, dollars_per_gallon, miles_driven):
cost = (dollars_per_gallon / miles_per_gallon) * miles_driven
return cost
如果name等于'main':
# 在这里输入你的代码。
miles_per_gallon = float(input())
dollars_per_gallon = float(input())
miles = [10,50,400]
print(f'{driving_cost(miles_per_gallon, dollars_per_gallon, miles[0]):.2f}')
print(f'{driving_cost(miles_per_gallon, dollars_per_gallon, miles[1]):.2f}')
print(f'{driving_cost(miles_per_gallon, dollars_per_gallon, miles[2]):.2f}')
其实你不需要问用户输入 miles_driven
,因为题目已经明确要求只给出10、50和400英里的结果,那干嘛还要让用户输入呢?另外,if miles_driven == 'None':
这个检查是不对的,因为它是在检查一个字符串值 "None",而不是实际的 None
。还有,你的代码里有一个无条件的 return cost
,这会导致循环直接结束,因为它在第一次运行后就会返回结果,后面的 print()
根本不会执行(你的开发环境应该会提示这个问题)。其实这些都可以简单得多:
def driving_cost(miles_per_gallon, dollars_per_gallon, miles_driven):
cost = (miles_driven / miles_per_gallon) * dollars_per_gallon
return cost
if __name__ == '__main__':
miles_per_gallon = float(input("Enter the car's miles per gallon: "))
dollars_per_gallon = float(input("Enter the price of gas per gallon: "))
for miles in [10, 50, 400]:
cost = driving_cost(miles_per_gallon, dollars_per_gallon, miles)
print(f'{cost:.2f}')