Ответ 1
Python строго типизирован. Нет никаких неявных преобразований типов.
Вы должны сделать одно из следующих действий:
"asd%d" % 9
"asd" + str(9)
Я пытался конкатенировать строку и число в 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" подробнее.....
Python строго типизирован. Нет никаких неявных преобразований типов.
Вы должны сделать одно из следующих действий:
"asd%d" % 9
"asd" + str(9)
Если это сработало так, как вы ожидали его (в результате получилось "abc9"
), что бы "9" + 9
доставить? 18
или "99"
?
Чтобы устранить эту двусмысленность, вам необходимо указать, что вы хотите преобразовать в этом случае:
"abc" + str(9)
Поскольку Python - это строго типизированный язык, объединение строки и целого числа, как вы можете сделать в Perl, не имеет смысла, потому что нет определенного способа "добавить", строки и числа друг к другу.
Явный лучше, чем неявный.
... говорит "Zen of Python" , поэтому вам нужно объединить два строковых объекта. Вы можете сделать это, создав строку из целого с помощью встроенной функции str()
:
>>> "abc" + str(9)
'abc9'
В качестве альтернативы используйте операции форматирования строк на Python:
>>> 'abc%d' % 9
'abc9'
Возможно, еще лучше, str.format()
:
>>> 'abc{0}'.format(9)
'abc9'
Дзен также говорит:
Должен быть один - и желательно только один - простой способ сделать это.
Вот почему я дал три варианта. Далее говорится...
Хотя этот путь может быть не очевидным сначала, если вы не голландский.
Либо что-то вроде этого:
"abc" + str(9)
или
"abs{0}".format(9)
или
"abs%d" % (9,)
Вам нужно преобразовать int в строку:
"abc" + str(9)
сделайте это так:
"abc%s" % 9
#or
"abc" + str(9)
Вам нужно будет преобразовать 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)