인쇄란(f"...)
XML 파일을 입력하고 XML 파일을 출력하는 파이썬 스크립트를 읽고 있습니다.하지만 저는 인쇄 구문을 이해하지 못합니다.누가 설명 좀 해주시겠어요?f
에print(f"...")
그래요?
args = parser.parser_args()
print(f"Input directory: {args.input_directory}")
print(f"Output directory: {args.output_directory}")
그f
형식화된 문자열 리터럴을 의미하며 새로 추가되었습니다.Python 3.6
.
형식화된 문자열 리터럴 또는 f-string은 다음과 같이 접두사가 붙은 문자열 리터럴입니다.
f
또는F
이 문자열에는 대체 필드가 포함될 수 있습니다. 대체 필드는 중괄호로 구분된 식입니다.{}
다른 문자열 리터럴은 항상 일정한 값을 가지지만 형식이 지정된 문자열은 실제로 런타임에 평가되는 식입니다.
형식이 지정된 문자열 리터럴의 몇 가지 예:
>>> name = "Fred"
>>> f"He said his name is {name}."
"He said his name is Fred."
>>> name = "Fred"
>>> f"He said his name is {name!r}."
"He said his name is Fred."
>>> f"He said his name is {repr(name)}." # repr() is equivalent to !r
"He said his name is Fred."
>>> width = 10
>>> precision = 4
>>> value = decimal.Decimal("12.34567")
>>> f"result: {value:{width}.{precision}}" # nested fields
result: 12.35
>>> today = datetime(year=2023, month=1, day=27)
>>> f"{today:%B %d, %Y}" # using date format specifier
January 27, 2023
>>> number = 1024
>>> f"{number:#0x}" # using integer format specifier
0x400
Python 3.6에서는 포맷된 문자열 리터럴인 f-string이 도입되었습니다(PEP 498).간단히 말해서, 이것은 더 읽기 쉽고 빠른 문자열을 포맷하는 방법입니다.
예:
agent_name = 'James Bond'
kill_count = 9
# old ways
print("%s has killed %d enemies" % (agent_name,kill_count))
print('{} has killed {} enemies'.format(agent_name,kill_count))
print('{name} has killed {kill} enemies'.format(name=agent_name,kill=kill_count))
# f-strings way
print(f'{agent_name} has killed {kill_count} enemies')
그f
또는F
문자열 앞에서 Python에게 {} 내부의 값, 식 또는 인스턴스를 살펴보고 변수 값 또는 결과가 있으면 이를 대체하도록 합니다.f 포맷의 가장 좋은 점은 {}에서 멋진 작업을 할 수 있다는 것입니다.{kill_count * 100}
.
인쇄 등을 사용하여 디버깅할 수 있습니다.
print(f'the {agent_name=}.')
# the agent_name='James Bond'
제로 패딩, 플로트 및 백분율 반올림과 같은 형식 지정이 더 쉬워집니다.
print(f'{agent_name} shoot with {9/11 : .2f} or {9/11: .1%} accuracy')
# James Bond shoot with 0.82 or 81.8% accuracy
더 멋진 것은 둥지를 틀고 서식을 만드는 능력입니다.예제 날짜
from datetime import datetime
lookup = {
'01': 'st',
'21': 'st',
'31': 'st',
'02': 'nd',
'22': 'nd',
'03': 'rd',
'23': 'rd'
}
print(f"{datetime.now(): %B %d{lookup.get('%B', 'th')} %Y}")
# April 14th 2022
예쁜 포맷도 더 쉽습니다.
tax = 1234
print(f'{tax:,}') # separate 1k \w comma
# 1,234
print(f'{tax:,.2f}') # all two decimals
# 1,234.00
print(f'{tax:~>8}') # pad left with ~ to fill eight characters or < other direction
# ~~~~1234
print(f'{tax:~^20}') # centre and pad
# ~~~~~~~~1234~~~~~~~~
그__format__
이 기능을 사용하여 펑크를 낼 수 있습니다.예
class Money:
def __init__(self, currency='€'):
self.currency = currency
def __format__(self, value):
return f"{self.currency} {float(value):.2f}"
tax = 12.34
money = Money(currency='$')
print(f'{money: {tax}}')
# $ 12.34
더 많은 것이 있습니다.판독값:
f 문자열은 또한 문자열에 변수를 삽입하고 그것을 부분적으로 만드는 리터럴 문자열로 알려져 있습니다.
x = 12
y = 10
word_string = x + ' plus ' + y + 'equals: ' + (x+y)
대신, 당신은 할 수 있습니다.
x = 12
y = 10
word_string = f'{x} plus {y} equals: {x+y}'
output: 12 plus 10 equals: 22
이것은 또한 문자열이 쓰여진 대로 정확히 수행되기 때문에 간격에 도움이 될 것입니다.
다음이 앞에 붙은 문자열'f'
또는'F'
다음과 같이 표현을 씁니다.{expression}
문자열 형식을 지정하는 방법으로, 문자열 내부에 Python 식의 값을 포함할 수 있습니다.
다음 코드를 예로 들어 보겠습니다.
def area(length, width):
return length * width
l = 4
w = 5
print("length =", l, "width =", w, "area =", area(l, w)) # normal way
print(f"length = {l} width = {w} area = {area(l,w)}") # Same output as above
print("length = {l} width = {w} area = {area(l,w)}") # without f prefixed
출력:
length = 4 width = 5 area = 20
length = 4 width = 5 area = 20
length = {l} width = {w} area = {area(l,w)}
args = parser.parser_args()
print(f"Input directory: {args.input_directory}")
print(f"Output directory: {args.output_directory}")
와 동일합니다.
print("Input directory: {}".format(args.input_directory))
print("Output directory: {}".format(args.output_directory))
그것은 또한 같은 것입니다.
print("Input directory: "+args.input_directory)
print("Output directory: "+args.output_directory)
python의 f-string을 사용하면 문자열 템플릿을 사용하여 인쇄할 데이터를 포맷할 수 있습니다.
아래의 예는 당신이 명확하게 하는 데 도움이 될 것입니다.
f-string 포함
name = 'Niroshan'
age = 25;
print(f"Hello I'm {name} and {age} years young")
안녕하세요 저는 25살 어린 니로샨입니다.
f-string 미포함
name = 'Niroshan'
age = 25;
print("Hello I'm {name} and {age} years young")
안녕하세요 저는 {name}이고 {age}살입니다.
f 함수는 내용의 다른 위치로 데이터를 전송하는 것입니다.대부분 변경 가능한 데이터를 사용했습니다.
클래스 메소드(): 정의(self,F,L,E,S,T): self.이름=F셀프.LastName=Lelf.Email=Eself.급여=스스로.시간 = T
def Salary_Msg(self):
#f is called function f
#next use {write in}
return f{self.firstname} {self.Lastname} earns AUD {self.Salary}per {self.Time} "
언급URL : https://stackoverflow.com/questions/57150426/what-is-printf
'programing' 카테고리의 다른 글
경고 대화 상자가 화면 크기의 90%를 채우도록 만드는 방법은 무엇입니까? (0) | 2023.08.10 |
---|---|
IntelliJ의 Shelve와 Gitstash의 차이점은 무엇입니까? (0) | 2023.08.10 |
ASP.Net Core 1.0 RC2 : web.config에서 RUCHER_PATH와 RUCHER_ARGS가 언급된 것은 무엇입니까? (0) | 2023.08.10 |
C에서 문자열을 클립보드에 복사하는 방법은 무엇입니까? (0) | 2023.08.10 |
php의 시간대 변환 (0) | 2023.08.10 |