IT

f'{{74}}'가 f-Strings를 사용하는 f'{{74}}'와 동일한 이유는 무엇입니까?

itgroup 2023. 5. 28. 20:36
반응형

f'{{74}}'가 f-Strings를 사용하는 f'{{74}}'와 동일한 이유는 무엇입니까?

f-String은 Python 3.6에서 사용할 수 있으며 문자열 포맷에 매우 유용합니다.

>>> n='you'
>>> f'hello {n}, how are you?'
'hello you, how are you?'

Python 3의 f-Strings에서 자세히 알아보기: 향상된 문자열 형식 구문(가이드).저는 흥미로운 패턴을 발견했습니다.

트리플 브레이스를 사용하면 문자열에 단일 브레이스만 포함됩니다.

>>> f"{{{74}}}"
'{74}'

그러나 3중 교정기 이상을 사용하는 경우 더 많은 교정기를 사용하여 표시할 수 있습니다.

>>> f"{{{{74}}}}"
'{{74}}'

그리고 이것이 바로 그 경우입니다.

>>> f'{74}'
'74'

>>> f'{{74}}'
'{74}'

이제 우리가 2시부터 지나가면,{3에 대한 결과는 동일합니다.

>>> f'{{{74}}}'
'{74}'           # same as f'{{74}}' !

그래서 우리는 4개까지 필요합니다! ({{{{) 두 개의 중괄호를 출력으로 가져오려면:

>>> f'{{{{74}}}}'
'{{74}}'

왜 이러한가?그 순간부터 파이썬에 추가로 하나가 필요하도록 하기 위해 두 개의 교정기는 어떻게 됩니까?

이중 가새는 보간이 발생하지 않도록 가새를 빠져나갑니다.{{{,그리고.}}}.그리고.74변경되지 않은 문자열로 남아 있습니다.'74'.

트리플 브레이스를 사용하면 위와 같이 외부 이중 브레이스가 빠져나갑니다.반면에 내부 중괄호는 값의 규칙적인 문자열 보간으로 이어집니다.74.

즉, 문자열은f'{{{74}}}'와 동등합니다.f'{{ {74} }}'그러나 공간이 없습니다(또는 동등하게).'{' + f'{74}' + '}').

숫자 상수를 변수로 바꿀 때 차이를 확인할 수 있습니다.

In [1]: x = 74

In [2]: f'{{x}}'
Out[2]: '{x}'

In [3]: f'{{{x}}}'
Out[3]: '{74}'

언급URL : https://stackoverflow.com/questions/59359911/why-is-f74-the-same-as-f74-with-f-strings

반응형