使用forloop编写带有输入列表的函数

2024-05-16 11:28:19 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

“编写一个程序,以汽车的英里/加仑和汽油美元/加仑(均为浮动)作为输入,并输出10英里、50英里和400英里的汽油成本。”

我知道有一种方法可以单独打印出来,但我相信应该有一个for循环来实现这一点,所以即使输入更多的行驶里程,它也会从for循环中迭代

有人能帮我吗?谢谢大家!

以下是我遇到问题的代码:

def driving_cost(a, miles_per_gallon, dollars_per_gallon):
    cost = a / miles_per_gallon * dollars_per_gallon
    return cost
    
if __name__ == '__main__':
    driven_miles = [10, 50, 400]
    miles_per_gallon = input()
    dollars_per_gallon = input()
    for i in range(len(driven_miles)):
        a = driven_miles[i]
        print(driving_cost(a, miles_per_gallon, dollars_per_gallon))

Tags: 方法程序forinput汽车成本costper
3条回答
def driving_cost(a, miles_per_gallon, dollars_per_gallon):
    cost = (a / miles_per_gallon) * dollars_per_gallon
    return cost
    
if __name__ == '__main__':
    driven_miles = [10, 50, 400]
    miles_per_gallon = float(input())
    dollars_per_gallon = float(input())
    for i in range(len(driven_miles)):
        cost = driving_cost(driven_miles[i], miles_per_gallon, dollars_per_gallon)
        print('{:.2f}'.format(cost))

我一直在研究解决方案,伙计们。 首先,我通过使用3个参数计算成本来设置函数 第二,我在结果中使用行驶里程长度进行了for循环,因此它将以1乘以1进行迭代,然后打印出答案。 谢谢你的帮助

你有一个很好的助手。 它的签名是

def driving_cost(miles_per_gallon, dollars_per_gallon):

您希望对其签名进行修饰,以便在其上添加第三个参数:

def driving_cost(miles_per_gallon, dollars_per_gallon, driven_miles):

或者在帮助器中向下定义列表


迭代索引当然是可能的, 正如您的for i in range(len(driven_miles)):循环当前所做的那样。 它需要反引用,例如driven_miles[i]

但是,更自然的做法是忽略索引,只是迭代元素:

for dm in driven_miles:

目前,您循环使用三个值来计算三个成本, 并且每次都覆盖cost。 因此,第三个成本值最终被返回

考虑在该循环内向下移动^ {CD4>}。 或者重新构造代码,使助手返回单个成本 循环/打印责任在主功能中起作用

目前,成本是单一价值。您可以将成本初始化为一个空列表,并将每个单独的成本附加到该列表中,最后返回该列表

def driving_cost(driven_miles, miles_per_gallon, dollars_per_gallon):
    cost = []
    for miles in driven_miles:
        cost.append((miles / miles_per_gallon) * dollars_per_gallon)

    return cost

相关问题 更多 >