Python - print jednoho zpětného lomítka ze dvou (backslash)

Python - print jednoho zpětného lomítka ze dvou (backslash)

Ahoj, potřebovala bych poradit. Dejme tomu, že mám slovo a=Aho\\j. A chtěla bychm aby mi program vytiskl Aho\j. Neptejte se proč, je to prostě zadání úkolu :D když dám a=a.replace("\\","\"), tak to uplně nejde. Děkuju moc.

ODPOVĚĎ


Ahoj,


já v tom nevidím problém, replace není třeba použít:



a = 'aho\\j'
print(a)
...
aho\j



Takto nestačí? Opravdu to hned vrací samo jedno zpětné lomítko. Musíš to použít nějak konkrétně nebo stačí rovnou print?

ODPOVĚĎ


Ahoj,
dělám lexikální analýzu programu. Na vstupu mám program kde je např.: a+='neco\'pak', a mám za ukol, aby když tam bude lomítko, tak aby se vystiskl pouze ten znak za lomítkem. Pro to jsem použila text=text.replace("\\", "") a to funguje, vytiskne se mi neco'pak, ale když je na další řádce a+="necok\\dfd", tak použitím toho co jsem použila předtím mi to potom vytiskne necokdfd a potřebuju aby to vytisklo necok\dfd.

ODPOVĚĎ


Právě ten replace Ti to rozbíjí, bez replace to vypadá takto:

Python 3.6.7


>>> a='kos\'mo\\nau\/'
>>> print(a)
kos'mo\nau\/

>>> a+="necok\\dfd"
>>> print(a)
kos'mo\nau\/necok\dfd

Python 2.7.15rc1


>>> a="necok\\dfd"
>>> a+="necok\\dfd"
>>> print(a)
necok\dfdnecok\dfd

A teď to rozbijeme když dáme replace:

necok\dfdnecok\dfd
>>> a+="necok\\dfd\\n"
>>> print(a)
necok\dfdnecok\dfdnecok\dfd\n

>>> b=a.replace("\\", "")
>>> print(b)
necokdfdnecokdfdnecokdfdn

Takže pokud nejsi nucená používat funkci replace, tak jí zde nepoužívej. Případně uveď celý blok kódu nebo další popis problému, možná si jen nerozumíme.

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář