Вы должны обратный слеш перед «3» Даже если обратный слэш в кавычках это НЕ экранировать.
Если вы programitically вставить значение в функции, то я предлагаю выполнять другую .Привернуть и заменить «\» с «-»
Это должно преобразовать строку «21-3-90» и если вам нужно сломать его дальше, вы можете заменить «-» на «», как вы изначально предполагали.
[email protected]:~/PycharmProjects/untitled2$ python3.2
Python 3.2.3 (default, Feb 27 2014, 21:31:18)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def process(date):
... date = date.replace("\\", " ")
... print(date)
...
>>> process("21\\3\\90")
21 3 90
>>> process("13\\4\\90")
13 4 90
>>>
[email protected]:~/PycharmProjects/untitled2$ python2.7
Python 2.7.3 (default, Dec 18 2014, 19:10:20)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def process(date):
... date = date.replace("\\", " ")
... print(date)
...
>>> process("21\\3\\90")
21 3 90
>>>
[email protected]:~/PycharmProjects/untitled2$ python3.2
Python 3.2.3 (default, Feb 27 2014, 21:31:18)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> def process(date):
... date = date.replace('\\', ' ')
... print(date)
...
>>> process("21\\3\\90")
21 3 90
>>>
'\ 3' не является' '3''. Это байт '\ x03'. Ваш ** вход ** не содержит обратную косую черту. Вам нужно удвоить эти обратные косые черты, если вы хотите произвести вывод с буквальными обратными косыми чертами, или использовать строковый литерал. –
Ваш образец, где он работает, использует * сырой строковый литерал *. Обратите внимание на 'r' перед кавычками. –
@MartijnPieters: да, я не мог понять, как использовать 'raw string literal' в случае даты. Ну вопрос не должен downvote – nlper