programing

문자열 형식의 %s과 %d의 차이점은 무엇입니까?

cafebook 2023. 6. 27. 23:39
반응형

문자열 형식의 %s과 %d의 차이점은 무엇입니까?

무슨 말인지 모르겠어요%s그리고.%d어떻게 작동하는지 확인할 수 있습니다.

문자열 형식 지정에 사용됩니다. %s문자열에 대한 자리 표시자 역할을 수행합니다.%d숫자에 대한 자리 표시자 역할을 합니다.관련 값은 다음을 사용하여 튜플을 통해 전달됩니다.%교환입니다.

name = 'marcog'
number = 42
print '%s %d' % (name, number)

인쇄 예정marcog 42이름은 문자열(%s)이고 숫자는 정수(10진수의 경우 %d)입니다.

자세한 내용은 https://docs.python.org/3/library/stdtypes.html#printf-style-string-formatting 을 참조하십시오.

Python 3의 예는 다음과 같습니다.

print('%s %d' % (name, number))

파이썬 3 문서에서.

%d십진수 정수에 대한 값입니다.

%s일반 문자열 또는 개체에 대한 것이며 개체의 경우 문자열로 변환됩니다.

다음 코드를 고려합니다.

name ='giacomo'
number = 4.3
print('%s %s %d %f %g' % (name, number, number, number, number))

결과는 다음과 같습니다.

giacomo 4.3 4.300000 4.3

당신이 볼 수 있듯이.%d정수로 자를 것입니다.%s포맷을 유지합니다.%f플로트로 인쇄됩니다.%g일반 번호에 사용됩니다.

물론. 뻔하지.

print('%d' % (name))

예외를 생성합니다. 문자열을 숫자로 변환할 수 없습니다.

%s는 형식이 지정된 문자열에 삽입할 문자열 값의 자리 표시자로 사용됩니다.

%d숫자 또는 십진수 값의 자리 표시자로 사용됩니다.

예를 들어 (파이썬 3의 경우)

print ('%s is %d years old' % ('Joe', 42))

Would 출력

Joe is 42 years old

이것들은 모두 유익한 답변이지만, 아무도 무엇이 다른지에 대한 핵심을 이해하지 못하고 있습니다.%s그리고.%d.

%s포메터에게 전화하라고 합니다.str()주장에 대한 기능과 우리가 정의상 문자열에 강요하고 있기 때문에,%s본질적으로 단지 수행하는 것입니다.str(arg).

%d반면에, 전화하는 것입니다.int()전화를 걸기 전에 논쟁 중인str(),맘에 들다str(int(arg))이것은 원인이 될 것입니다.int뿐만 아니라 강압적인 것이다.str강요

예를 들어, 16진수 값을 10진수로 변환할 수 있습니다.

>>> '%d' % 0x15
'21'

또는 플로트를 자릅니다.

>>> '%d' % 34.5
'34'

그러나 인수가 숫자가 아닌 경우에는 예외가 발생합니다.

>>> '%d' % 'thirteen'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not str

그래서 만약 그 의도가 단지 전화하는 것이라면str(arg),그리고나서%s충분하지만 추가 형식 지정(예: 부동 소수점 형식 지정) 또는 기타 강제가 필요한 경우 다른 형식 기호가 필요합니다.

와 함께f-string표기법, 포맷터를 제외하면 기본값은 다음과 같습니다.str.

>>> a = 1
>>> f'{a}'
'1'
>>> f'{a:d}'
'1'
>>> a = '1'
>>> f'{a:d}'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: Unknown format code 'd' for object of type 'str'

에 대해서도 마찬가지입니다.string.format기본값은 입니다.str.

>>> a = 1
>>> '{}'.format(a)
'1'
>>> '{!s}'.format(a)
'1'
>>> '{:d}'.format(a)
'1'

자리 표시자는 다음과 같습니다.

예:'Hi %s I have %d donuts' %('Alice', 42)

이 코드 라인은 %s을 앨리스(str)로 대체하고 %d을 42로 대체합니다.

출력:'Hi Alice I have 42 donuts'

대부분의 경우 "+"를 사용하여 이 작업을 수행할 수 있습니다.질문에 대한 이해를 높이기 위해 {} / .format()도 확인할 수 있습니다.다음은 한 가지 예입니다.Python 문자열 형식: % vs. 형식

또한 여기 구글 파이썬 튜토리얼 비디오 @ 40'을 참조하십시오. https://www.youtube.com/watch?v=tKTZoB2Vjuk 에는 몇 가지 설명이 있습니다.

%d그리고.%s문자열 형식 "filename"은 문자열 형식 지정에 사용됩니다.%d숫자를 이고, 는 숫자를 위한 것입니다.%s현악기를 위한 것입니다.

예:

print("%s" % "hi")

그리고.

print("%d" % 34.6)

여러 인수를 전달하는 방법

print("%s %s %s%d" % ("hi", "there", "user", 123456))돌아올 것입니다hi there user123456

%d그리고.%s대체 가능한 변수로 작용합니다.를 들어, 2개를 1개가 생성됩니다.

variable_one = "Stackoverflow"
variable_two = 45

변수의 튜플을 사용하여 문자열의 문장에 이러한 변수를 할당할 수 있습니다.

variable_3 = "I was searching for an answer in %s and found more than %d answers to my question"

:%sString 및 에서 작동합니다.%d숫자 또는 십진수 변수에 대해 작업합니다.

variable_3예요.

print(variable_3 % (variable_one, variable_two))

StackOverflow에서 답을 찾다가 제 질문에 대한 답을 45개 이상 찾았습니다.

형식 지정자입니다.특정 형식이 적용된 문자열에 Python 식의 값을 포함하려는 경우 사용됩니다.

비교적 자세한 소개는 Python Deep into Python을 참조하십시오.

최신 기준에 따르면, 이것은 이렇게 해야 합니다.

print("My name is {!s} and my number is{:d}".format("Agnel Vishal",100))

python 3.6 문서 및 샘플 프로그램을 확인하십시오.

다음은 Python 문자열 형식과 새로운 방법을 보여주는 기본 예제입니다.

my_word = 'epic'
my_number = 1

print('The %s number is %d.' % (my_word, my_number))  # traditional substitution with % operator

//에픽 번호는 1입니다.

print(f'The {my_word} number is {my_number}.')  # newer format string style

//에픽 번호는 1입니다.

둘 다 똑같이 인쇄합니다.

말 나온 김에...
3은 python 3.6과 함께 됩니다.f-strings포맷이 훨씬 쉬워집니다!
이제 파이썬 버전이 3.6보다 크면 다음과 같은 방법으로 문자열을 포맷할 수 있습니다.

name = "python"

print ("i code with %s" %name)          # with help of older method
print ("i code with {0}".format(name))  # with help of format
print (f"i code with {name}")           # with help of f-strings

%s은(는) 문자열에 대한 공간을 유지하는 데 사용됩니다. %d은(는) 숫자에 대한 공간을 유지하는 데 사용됩니다.

name = "Moses";
age = 23
print("My name is %s am CEO at MoTech Computers " %name)
print("Current am %d years old" %age)
print("So Am %s and am %d years old" %(name,age))

프로그램 출력

비디오는 팁에 대해 자세히 설명합니다. https://www.youtube.com/watch?v=4zN5YsuiqMA

%s 또는 %d을(를) 피하고 싶은 경우...

name = 'marcog'
number = 42
print ('my name is',name,'and my age is:', number)

출력:

my name is marcog and my name is 42

언급URL : https://stackoverflow.com/questions/4288973/whats-the-difference-between-s-and-d-in-string-formatting

반응형