У меня есть код:
print "bug " + data[str.find(data,'%')+2:-1]
temp = data[str.find(data,'%')+2:-1]
time.sleep(1)
print "bug tuple " + tuple(temp.split(', '))
И после этого мое приложение отобразит:
bug 1 , 2, 3 Traceback (самый последний позвони последним): File "C: \ Python26 \ Lib \ сайт-пакеты \ Pythonwin \ pywin \ рамки \ scriptutils.py", строка 312, в RunScript exec codeObject в main . dict Файл "C: \ Documents and Настройки \ k.pawlowski \ Desktop \ atsserver.py», строка 165, в выведите «bug tuple» + tuple (temp.split (',')) TypeError: не может объединять 'str' и 'tuple' объекты
Я не знаю, что я делаю неправильно. print tuple ('1, 2, 3'.split (', ')) работает правильно.
print tuple(something)
может работать, потому что print выполнит неявную функцию str() для аргумента, но выражение типа
"" + ()
не работает. Тот факт, что вы можете распечатать их по отдельности, не имеет значения, вы не можете объединить строку и кортеж, вам нужно преобразовать любой из них. т.е.
print "foo" + str(tuple("bar"))
Однако зависимость от str() для преобразования, вероятно, не даст желаемых результатов. Аккуратно соедините их, используя разделитель, например ",".join
Почему вы думаете, что это должно работать?
попробуйте:
print "bug tuple " + str(tuple(temp.split(', ')))
Измените его на
print "bug tuple ", tuple(temp.split(', '))
Зачем разбивать кортеж, у вас есть готовая строка для одного, кроме круглых скобок, почему бы и нет:
print "bug tuple (%s)" % '1, 2, 3'