2015-10-09 5 views
1

Я довольно новичок в Python и практикую с помощью codeacademy, получаю странное сообщение об ошибке с функцией ниже. Я не понимаю, как это выглядит логически и синтаксически правильно для меня, может ли кто-нибудь увидеть проблему?Python: функция, для цикла, сообщение об ошибке

def compute_bill(food): 
    total = 0 
    for item in food: 
     total = total + item 
    return total 

Упс, попробуйте еще раз.

compute_bill(['apple']) 

привело к

TypeError: unsupported operand type(s) for +: 'int' and 'str' 
+1

Да, '0 + 'apple'' не имеет смысла в Python. Вы можете добавлять только числа или конкатенации строк, а не добавлять строки к числам. –

+0

вы должны передать цену «яблока»? – Rilwan

+0

Привет, да. Я должен передать цену –

ответ

1

Вы не можете добавить string с integer. TypeError на питона Docs - typeError

вызов функции как

ценам ниже
compute_bill([1]) 
compute_bill([10,20,30]) 

ИЛИ

apple = 10 
orange = 20 
compute_bill([apple,orange]) 
1

как сказал @Rilwan в своем ответе лет не может добавить строку с целым числом. Поскольку вы работаете над codeacademy, я выполнил аналогичное задание, я считаю, что вам нужно получить стоимость пищи, которую вы отправляете в функцию из словаря, а затем вычислить общее количество.

food_cost = { "apples" : 20, "oranges" : 40} 
def compute_bill(food): 
    total = 0 
    for item in food: 
     total = total + food_cost[item] 
    return total 
compute_bill(['apples']) 
Смежные вопросы