Как я могу конкатенировать строку и число в Python?

Я пытался конкатенировать строку и число в Python. Это дало мне ошибку, когда я попробовал это:

"abc" + 9

Ошибка:

Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    "abc" + 9
TypeError: cannot concatenate 'str' and 'int' objects

Почему я не могу это сделать?

Как я могу конкатенировать строку и число в Python?

Расскажите, пожалуйста, об использовании инструкции "Pass" подробнее.....

Ответ 1

Python строго типизирован. Нет никаких неявных преобразований типов.

Вы должны сделать одно из следующих действий:

"asd%d" % 9
"asd" + str(9)

Ответ 2

Если это сработало так, как вы ожидали его (в результате получилось "abc9"), что бы "9" + 9 доставить? 18 или "99"?

Чтобы устранить эту двусмысленность, вам необходимо указать, что вы хотите преобразовать в этом случае:

"abc" + str(9)

Ответ 3

Поскольку Python - это строго типизированный язык, объединение строки и целого числа, как вы можете сделать в Perl, не имеет смысла, потому что нет определенного способа "добавить", строки и числа друг к другу.

Явный лучше, чем неявный.

... говорит "Zen of Python" , поэтому вам нужно объединить два строковых объекта. Вы можете сделать это, создав строку из целого с помощью встроенной функции str():

>>> "abc" + str(9)
'abc9'

В качестве альтернативы используйте операции форматирования строк на Python:

>>> 'abc%d' % 9
'abc9'

Возможно, еще лучше, str.format():

>>> 'abc{0}'.format(9)
'abc9'

Дзен также говорит:

Должен быть один - и желательно только один - простой способ сделать это.

Вот почему я дал три варианта. Далее говорится...

Хотя этот путь может быть не очевидным сначала, если вы не голландский.

Ответ 4

Либо что-то вроде этого:

"abc" + str(9)

или

"abs{0}".format(9)

или

"abs%d" % (9,)

Ответ 5

Вам нужно преобразовать int в строку:

"abc" + str(9)

Ответ 6

сделайте это так:

"abc%s" % 9
#or
"abc" + str(9)

Ответ 7

Вам нужно будет преобразовать int в строку.

# This program calculates a workers gross pay

hours = float(raw_input("Enter hours worked: \n"))

rate = float(raw_input("Enter your hourly rate of pay: \n"))

gross = hours * rate

print "Your gross pay for working " +str(hours)+ " at a rate of " + str(rate) + " hourly is $"  + str(gross)