제퍼넷 로고

Python 문자열 형식화에서 %s와 %d의 차이점

시간

개요

간단히 말해서 문자열 서식 지정은 일부 특정 또는 계산된 데이터를 문자열 자리 표시자에 삽입하여 문자열을 구성하는 프로세스입니다. 이는 사용자에게 친숙한 출력, 디버깅 로그 또는 다양한 목적을 위한 동적 텍스트 생성을 처리할 때 없어서는 안 될 도구입니다.

Python은 문자열 형식을 지정하는 여러 가지 방법을 제공합니다. 세 가지 기본 방법은 % 연산자, str.format() Python 2.6에서 나온 메서드, 가장 현대적인 방법, f-strings, Python 3.6에서 도입되었습니다.

DaVinci에는 f- 현str.format() 표현력과 가독성으로 인기를 얻었으며, % 연산자는 기본 방법으로 남아 있으며, 특히 이전 코드베이스. 이해 %s%d, 와 함께 사용되는 두 가지 기본 형식 지정자 % 연산자는 Python의 문자열 형식을 마스터하는 데 중요한 단계입니다.

이 기사에서는 %s%d 형식 지정자, 차이점, 용도 및 다양한 데이터 유형과 상호 작용하는 방법을 설명합니다. 이 기사를 마치면 Python에서 문자열 형식화의 이러한 중요한 측면을 확실하게 이해하게 될 것입니다.

%s vs %d: 기본

파이썬에서는 % 연산자는 문자열 형식화에 사용됩니다. 왼쪽 인수를 다음과 같이 해석합니다. printf-style 형식 문자열을 올바른 인수에 적용하여 다양한 방법으로 문자열 형식을 지정할 수 있습니다. 와 함께 사용되는 가장 일반적인 형식 지정자 중 두 가지 % 연산자는 %s%d.

%s 형식 지정자

XNUMXD덴탈의 %s 형식 지정자는 . 그만큼 %s 지정자는 다음을 사용하여 개체를 변환합니다. str(), 이는 반드시 문자열일 필요는 없음을 의미합니다. 숫자 또는 목록과 같은 모든 Python 객체가 될 수 있습니다. Python은 이러한 객체를 문자열 표현으로 자동 변환합니다.

name = "Bob"
print("Hello, %s!" % name)

이것은 우리에게 다음을 줄 것입니다:

Hello, Bob!

%d 형식 지정자

반면에, %d 형식 지정자는 십진 정수. 그만큼 %d 지정자에는 부울과 같이 손실 없이 정수로 변환할 수 있는 정수 또는 숫자가 필요합니다.

age = 25
print("I am %d years old." % age)

결과는 다음과 같습니다.

I am 25 years old.

%s 사용 시기

XNUMXD덴탈의 %s 형식 지정자는 Python의 문자열 형식화 무기고에서 가장 다재다능한 것 중 하나입니다. 제공된 객체를 암시적으로 문자열로 변환하기 때문에 str() 함수에서 이 지정자는 일반적으로 문자열에 포함될 객체의 정확한 유형이 다음과 같은 경우에 사용됩니다. 알 수 없거나 관련이 없음.

참고 : 귀하가 %s Python에서 문자열이 아닌 객체가 있는 형식 지정자, str() 함수는 문자열 표현으로 변환하기 위해 해당 객체에서 암시적으로 호출됩니다. 이것은 %s 문자열뿐만 아니라 모든 객체의 형식을 지정하는 데 사용할 수 있습니다.

변수 데이터

문자열로 표현해야 하는 변수 데이터가 있는 경우 다음을 사용할 수 있습니다. %s. 여기에는 사용자 이름, 파일 경로 또는 텍스트로 표시할 수 있는 기타 정보가 포함될 수 있습니다. 예를 들면 다음과 같습니다.

username = "Bob"
print("Logged in user: %s" % username)

이것은 우리에게 다음을 산출할 것입니다:

Logged in user: Bob

문자열이 아닌 데이터

데이터가 문자열이 아니더라도 계속 사용할 수 있습니다. %s. Python은 자동으로 데이터를 문자열 표현으로 변환합니다. 예를 들어 문자열의 일부로 목록을 인쇄하려는 경우:

fruits = ["apple", "banana", "cherry"]
print("Fruits: %s" % fruits)

그러면 다음이 출력됩니다.

Fruits: ['apple', 'banana', 'cherry']

전체 배열을 전달했기 때문에 대괄호, 쉼표 및 아포스트로피도 인쇄합니다.

여러 데이터 포인트

여러 데이터 조각을 문자열로 포맷하려면 여러 %s 지정자. 다음을 제공해야 합니다. 튜플 의 수와 일치하는 데이터의 %s 지정자:

username = "Bob"
access_level = "Admin"
print("User: %s, Access Level: %s" % (username, access_level))

이렇게 하면 usernameaccess_level 출력 문자열에서 올바른 순서로:

User: Bob, Access Level: Admin

생각해 내다: DaVinci에는 %s 다재다능하고 다양한 데이터 유형을 우아하게 처리하므로 데이터 유형 및 특정 사용 사례에 따라 가장 적합한 옵션인지 항상 고려하십시오. 경우에 따라 보다 구체적인 형식 지정자(예: %d 정수 또는 %.2f 소수점 이하 두 자리가 있는 부동 소수점 숫자의 경우)을 사용하면 출력 형식을 더 많이 제어할 수 있습니다.

%d 사용 시기

XNUMXD덴탈의 %d 형식 지정자는 정수를 문자열에 포함시키려는 경우에 사용됩니다. 인수를 10진수(밑 XNUMX) 정수로 취급하며 문자열 형식의 숫자 데이터를 처리할 때 신뢰할 수 있는 도구가 될 수 있습니다.

참고 : DaVinci에는 %d 는 정수를 문자열에 삽입하는 훌륭한 도구입니다. 정수가 아닌 유형을 자동으로 변환하지 않는다는 점에 유의해야 합니다. 예를 들어, %d 부동 소수점 숫자를 사용하면 TypeError. 부동 소수점 숫자가 있는 경우 먼저 정수로 변환하거나 다음과 같이 부동 소수점 숫자용으로 설계된 형식 지정자를 사용해야 합니다. %f or %.2f.

게다가 동안 %d 대부분의 경우 다음을 사용하여 부울 형식을 지정할 수 있습니다. %s 부울을 사용하면 인쇄할 때 더 읽기 쉬울 수 있습니다. True or False 대신 1 or 0. 따라서 형식 지정자를 결정할 때 항상 특정 사용 사례와 작업 중인 데이터 유형을 고려하십시오.

정수 데이터

나이 또는 개수와 같은 정수 데이터가 있는 경우 다음을 사용할 수 있습니다. %d 문자열에 삽입하려면 다음을 수행하십시오.

age = 25
print("I am %d years old." % age)

모범 사례, 업계에서 인정하는 표준 및 포함된 치트 시트가 포함된 Git 학습에 대한 실습 가이드를 확인하십시오. 인터넷 검색 Git 명령을 중지하고 실제로 배움 이것!

이를 실행하면 다음이 발생합니다.

I am 25 years old.

부울

VOUS pouvez의 aussi 사용 %d 부울로. 파이썬 취급 True as 1False as 0:

print("True is %d" % True)
print("False is %d" % False)

예상대로 이것은 다음을 제공합니다.

True is 1
False is 0

여러 정수 데이터 포인트

여러 정수 데이터 포인트를 처리하는 경우 여러 %d 지정자를 지정하고 해당 값이 포함된 튜플을 제공합니다.

height = 180
weight = 75
print("My height is %d cm and my weight is %d kg." % (height, weight))

결과 :

My height is 180 cm and my weight is 75 kg.

피할 실수

Python의 문자열 형식화는 강력한 기능이지만 다른 강력한 도구와 마찬가지로 버그를 피하고 코드의 가독성을 유지하기 위해 올바르게 사용하는 것이 중요합니다. 다음은 사용 시 피해야 할 가장 일반적인 함정 중 일부입니다. %s%d.

일치하지 않는 형식 지정자

작업 중인 데이터 유형에 올바른 형식 지정자를 사용하고 있는지 확인하세요. 사용 %d 정수가 아닌 유형을 사용하면 오류가 발생할 수 있습니다. %s 숫자 유형을 사용하면 출력 형식을 원하는 대로 제어할 수 없습니다.

잘못된 인수 수

여러 형식 지정자를 사용하는 경우 올바른 수의 인수를 제공해야 합니다. 문자열의 형식 지정자의 수가 제공된 인수의 수와 일치하지 않으면 Python은 a를 발생시킵니다. TypeError:

print("My name is %s and I am %d years old." % ("Bob"))

출력:

TypeError: not enough arguments for format string

괄호의 잘못된 사용

문자열 형식화를 위해 여러 인수를 제공할 때 튜플에 넣어야 합니다. 괄호를 잊어버리면 혼란스러운 오류가 발생할 수 있습니다.

print("My name is %s and I am %d years old." % "Bob", 25)

이로 인해 다음 오류가 발생합니다.

TypeError: not all arguments converted during string formatting

괄호를 추가하여 수정하십시오.

print("My name is %s and I am %d years old." % ("Bob", 25))

사용 % 사전 포함

를 사용할 때 % 사전이 있는 연산자, 다음을 사용해야 합니다. %(key)s or %(key)d 사전에 키를 지정합니다. 이 작업을 잊어버리면 다음으로 이어질 수 있습니다. TypeError or KeyError:

data = {"name": "Bob", "age": 25}
print("My name is %s and I am %d years old." % data)

출력:

TypeError: not enough arguments for format string

키를 추가하여 수정하십시오.

data = {"name": "Bob", "age": 25}
print("My name is %(name)s and I am %(age)d years old." % data)

조언: 파이썬에서 문자열 포매팅을 사용할 때, 명확성이 핵심입니다. 다른 사람이 이해하기 쉬운 방식으로 코드를 작성하고 입력을 문자열 형식화 작업에 전달하기 전에 항상 유효성을 검사하십시오.

결론

Python에서 문자열 형식의 뉘앙스를 이해하면 대구의 가독성과 다양한 데이터 유형으로 작업하는 능력에 도움이 될 수 있습니다. 우리가 본 바와 같이, %s%d 형식 지정자는 각각 문자열 및 정수 데이터를 텍스트에 통합하는 데 유용한 도구입니다.

%s 주어진 객체를 문자열로 변환 str() 함수를 사용하여 모든 데이터 유형에 대해 다재다능하게 사용할 수 있습니다. %d 정수에만 해당됩니다. 적절하게 사용하고 일치하지 않는 형식 지정자 또는 잘못된 인수 수와 같은 일반적인 실수를 피하는 것이 중요합니다.

동안 % 연산자는 유용한 문자열 형식 지정 방법이며 Python은 f-문자열과 같은 다른 기술을 제공합니다. str.format() 메서드 및 템플릿 문자열은 각각 고유한 이점이 있습니다. 문자열 형식 지정 방법의 선택은 특정 요구 사항과 개인 취향에 따라 크게 달라집니다.

spot_img

최신 인텔리전스

spot_img