2017-09-10 1 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

이 라인에 taxifare 방금 ​​사용할 수 있도록이, 함수 호출처럼 보이는 때문에 float

taxifare = calculate_taxi_fare() 

따라서 당신이 taxifare() 말할 수 없다 그래서하는 float을 반환 calculate_taxi_fare 기능 예를 들어

info[1] * taxifare 
+0

내가 그걸 돌려 보았습니다. TypeError : 'NoneType'개체는 subscriptable이 아닙니다. 그리고 그것은 아직도 나에게 4 번 반복되는 질문을한다. –

관련 문제