创建道路收费功能

时间:2016-10-11 15:50:11

标签: python function

  

运输当局正在实施新的道路收费系统。当局决定按照每英里的行程距离收取汽车费用。一辆车将收费0.50美元/英里,一辆面包车2.1美元/英里和免费的出租车。创建一个功能,以根据特定距离确定特定车辆的充电量。该功能应将汽车类型和行驶距离作为输入,并返回收费价格。

上面的问题是我必须要做的,下面的代码就是我到目前为止所做的。我遇到的问题是我之前没有识别汽车,货车和出租车的错误。但如果我这样做,它会打印出所有3种情况。我怎样才能根据y的输入打印出1个结果?

    def Road_Pricing():
        x = float(input("How many miles is driven?"))
        y = (input("What car was driven?"))
        if "car":
           print (.50*x)
        if "van": 
           print (2.1*x)
        if "taxi":
           print ("Free")
    Road_Pricing()

3 个答案:

答案 0 :(得分:1)

要求是(强调我的):

  

......该功能应该作为汽车的类型和输入   旅行距离,返回收费价格。

这意味着:

  1. 该功能应该有两个参数:一个用于汽车类型,另一个用于行驶距离。
  2. 您必须退回价格(我怀疑是浮点数),而不是简单地打印它。
  3. 代码中的另一个问题是语句中的表达式没有检查car_type的值。此外,您应该使用更有意义的变量名称(例如,distancecar_type,而不是xy)。

    def road_pricing(car_type, distance):
        if car_type == "car":
           return .50 * distance
        if car_type == "van": 
           return 2.1 * distance
        if car_type == "taxi":
           return 0
    
    car_type = raw_input("What car was driven? ")
    distance = float(input("How many miles is driven? "))
    print road_pricing(car_type, distance)
    

答案 1 :(得分:0)

您是否尝试将变量与某些字符串进行比较?

if y == "car":

答案 2 :(得分:0)

你的if语句有问题:首先你没有检查任何条件,其次input返回一个`string``

试试这个:

def Road_Pricing():
    x = float(input("How many miles are driven?"))
    type = input("What car was driven?")
    if type == 'car':
       print ("%f$ to pay" %.50*x)
    elif type == 'van': 
       print ("%f$ to pay" %2.1*x)
    elif type == 'taxi':
       print ("Free ride")
pass