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

10.12.2018 napsal Anna

Vyřešeno python print double back slash
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.

RE: Python - print jednoho…

10.12.2018 odpověděl Hanz

Zkontrolováno

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?

RE: Python - print jednoho…

10.12.2018 odpověděl Anna

Zkontrolováno

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.

RE: Python - print jednoho…

11.12.2018 odpověděl Hanz

Zkontrolováno


22
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.

Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace