2015-10-16 2 views
0

Я хотел бы конкатенировать строку с номером, чтобы получить более приятный результат. К сожалению, это не работает.Объединить строку с номером

print "The result is "+x 
+1

Возможный дубликат [Python: TypeError: не может конкатенировать объекты 'str' и 'int'] (http://stackoverflow.com/questions/11844072/ python-typeerror-can not-concatenate-str-and-int-objects) – KPrince36

+0

@ KPrince36 Спасибо. Поэтому вместо «+» я должен использовать «,». Но почему шалфей добавляет дополнительный пробел в напечатанную строку? –

ответ

1

У вас есть несколько вариантов:

  • print "The result is " + str(x)
  • print "The result is", x
  • print "The result is %d"%(x)
  • print "The result is {}".format(x)

Ваш пример с оператором + не работает так, как вы ожидали, потому что ему нужны два строковых аргумента. Второй аргумент имеет тип int. Вы должны преобразовать его в строку с помощью функции str (x). Последние два примера - «старый» и «новый» способ формирования строк, см. PyFormat.info.

Рядом с вашим вопросом в комментарии выше: почему print "The result is ", x добавить еще пробел? Вот как работает ключевое слово print. Если ему задан список выражений. Он добавляет пробел между каждым элементом данного списка. Первый элемент (строка) имеет конечное пространство. print добавляет другое пространство, затем печатает второй элемент, который является вашим int. Просто попробуйте это (без конечного пробела в строке): print "The result is", x

Смежные вопросы