2017-09-10 31 views
0

我不明白爲什麼代碼不起作用,他們已經重複了4次我的問題。並說浮動不可調用。我已經嘗試了很長一段時間,但我似乎沒有得到任何東西。有沒有更簡單的方法python3?我剛剛在2周前學會了這種語言。它對我來說並不是一個全新的世界,而是我不熟悉的許多事物。如壓痕問題重複4倍,浮動不可調用,代碼錯誤

def get_taxi_info(): 
     flag_down = float(input("What's the flag-down fare: $")) 
     within = float(input("What's the rate per 400 meters within 9.8km? $")) 
     beyond = float(input("What's the rate per 350 meters beyond 9.8km? $")) 
     distance = float(input("What's the distance traveled (in meters)? ")) 
     peak = input("Is the ride during a peak period? [yes/no]") 
     mid6 = input("Is the ride between midnight and 6am? [yes/no]") 
     location = input("Is there any location surcharge? [yes/no]") 
     surloca = float(input("What's the amount of location surcharge?")) 
     return (flag_down, within, beyond, distance, peak == 'yes', mid6 == 'yes', location == 'yes', surloca) 

    def calculate_taxi_fare(): 
     dist = get_taxi_info() 
     if dist[3] > 9800: 
      extra = (dist[3] - 9800) % 350 
      if extra == 0: 
       a = (extra//350) + 22 
      else: 
       a = (extra//350) + 23 
      return a 
     elif dist[3] <= 9800: 
      extra = (dist[3] - 1000) % 400 
      if extra == 0: 
       a = (extra//400) 
      else: 
       a = (extra//400) + 1 
      return a 

    def peakornot(): 
     peak = get_taxi_info() 
     if peak[4] == True and peak[5] == False: 
      surcharge = 1.25 
      return surcharge 
     elif peak[4] == False and peak[5] == True: 
      surcharge = 1.50 
      return surcharge 

    taxifare = calculate_taxi_fare() 
    info = get_taxi_info() 
    peak1 = peakornot() 
    taxifare = calculate_taxi_fare() 
    if info[6] == True: 
     payable = ((info[0] + (info[1] * taxifare()) + (info[2] * taxifare())) * peak1[0]) + info[7] 
     print ("The total fare is $" + str(payable)) 
    elif info[6] == False: 
     payable = ((info[0] + (info[1] * taxifare()) + (info[2] * taxifare())) * peak1[0]) + info[7] 
     print ("The total fare is $" + str(payable)) 

回答

2

calculate_taxi_fare返回float,所以在這條線上taxifarefloat

taxifare = calculate_taxi_fare() 

所以你不能說taxifare(),因爲它看起來像一個函數調用,所以你可以使用該功能例如

info[1] * taxifare 
+0

我試過這樣做後,它返回。 TypeError:'NoneType'對象不是可下載的。它仍然質疑我4次重複 –