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.
Ahoj,
já v tom nevidím problém, replace není třeba použít:
Takto nestačí? Opravdu to hned vrací samo jedno zpětné lomítko. Musíš to použít nějak konkrétně nebo stačí rovnou print?
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.
Právě ten replace Ti to rozbíjí, bez replace to vypadá takto:
>>>
>>>
kos'mo\nau\/
>>>
>>>
kos'mo\nau\/necok\dfd
>>>
>>>
>>>
necok\dfdnecok\dfd
A teď to rozbijeme když dáme replace:
necok\dfdnecok\dfd
>>>
>>>
necok\dfdnecok\dfdnecok\dfd\n
>>>
>>>
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.
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.