Форум сайта python.su
0
elif i == 10: if str(toUtf8(it.text())) == '': lit.append('NULL') else: print str(toUtf8(it.text())) print type(str(toUtf8(it.text()))) lit.append('%s') % (str(toUtf8(it.text())))
Офлайн
52
Используйте str.format, проверяйте на is None, читайте документацию.
>>> m.append('%s' % (s,)) >>> m.append('%s') % (s,) Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
Отредактировано fata1ex (Июнь 21, 2012 12:52:10)
Офлайн
0
fata1exСпасибо, дело действительно было в скобках
Используйте str.format, проверяйте на is None, читайте документацию.>>> m.append('%s' % (s,)) >>> m.append('%s') % (s,) Traceback (most recent call last): File "<input>", line 1, in <module> TypeError: unsupported operand type(s) for %: 'NoneType' and 'tuple'
Офлайн
52
Serbis, дело не в скобках, а в том, что вы не понимаете, что происходит, когда вы пишете конструкции языка. Это лечится чтением хорошего учебника. А еще очень полезно не писать сразу на форум, а попробовать разобраться самому.
Офлайн
568
Serbisа что возвращает it.text?
if str(toUtf8(it.text())) == '':
Офлайн
15
fata1ex
Serbis, дело не в скобках, а в том, что вы не понимаете, что происходит, когда вы пишете конструкции языка. Это лечится чтением хорошего учебника. А еще очень полезно не писать сразу на форум, а попробовать разобраться самому.
Офлайн
52
buddha, странные у вас ощущения. Я стараюсь советовать то, что по моему мнению может помочь в дальнейшем обучении и развитии. Если вы не согласны с чем-то из того, что написано выше, я, разумеется, готов вас выслушать, но переход на личности, тем более таким способом, ничего кроме грустного недоумения не вызывает.
Отредактировано fata1ex (Июнь 21, 2012 15:21:21)
Офлайн
Если разложить по полочкам, то смотрите, что получилось:
lit.append('%s') % (str (toUtf8(it.text())))
инструкция lit.append('%s') успешно добавляет в список lit строку ‘%s’, буквально!, естественно метод append возвращает None, т.е. ситуация аналогична None % (str (toUtf8(it.text()))), где % это не тот оператор, что вы ожидали, а другой (остаток от деления).
Офлайн
857
buddhafata1exТакое ощущение, что кто-то в школе и институте был “забитым ботаником”!
Serbis, дело не в скобках, а в том, что вы не понимаете, что происходит, когда вы пишете конструкции языка. Это лечится чтением хорошего учебника. А еще очень полезно не писать сразу на форум, а попробовать разобраться самому.
Serbislit.append('%s') % (str(toUtf8(it.text())))
Офлайн