2016-10-01 11 views
1

Я довольно новичок в Python. Я создаю генератор, который дает оценку пекарни, сколько потребуется, чтобы провести мероприятие, если они делают кексы. Что-то идет не так, здесь хотяПочему возвращается Nonetype?

Batches = print("Batches of Cupcakes:", math.ceil(People * Ingredients/12)) 

Labor = print("Hours of labor:", Batches * 1.25) 

Я получаю эту ошибку:

TypeError: unsupported operand type(s) for *: 'NoneType' and 'float' 
+7

'print' не возвращает ничего, так что' 'Batches' является NoneType' –

+0

Pedantic: Технически,' Батты '' 'Нет', который является единственным экземпляром типа' NoneType', 'Batches' не является самим типом. – ShadowRanger

+0

try: 'type (партии)' –

ответ

3

Поскольку print всегда возвращает None. Вы не хотите, чтобы сохранить предыдущий результат в переменной:.

batches = math.ceil(people * ingredients/12) 
labor = batches * 1.25 

print("Batches of cupcakes:", batches) 
print("Hours of labor:", labor) 
+0

Спасибо, это был случай кодирования слишком быстро. –

0

print() возвращает ничего, так что вы пытаетесь сделать умножение с ничего, что где ошибка «NoneType» приходит в

Если вы хочу Batches быть рядом,

Batches = math.ceil(People * Ingredients/12) 

печати просто выводит текст в питона переводчика :)

весь Ваш код должен выглядеть следующим образом:

Batches = math.ceil(People * Ingredients/12) 
Labor = Batches * 1.25 

, а затем вы можете отобразить данные, как это:

print("Batches of cupcakes:", Batches) 
print("Hours of labor:", Labor) 
+1

Строка + int делает ошибку типа. И я не знаю, о чем вы говорите о дополнительном символе новой строки, функция печати вставляет пространство по умолчанию. – L3viathan

+0

@ L3viathan Прошу прощения, я исправил свои ошибки. Я всегда забываю о строковой и нестроковой конкатенации в Python – AlgoRythm