문자열 형식의 %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))
%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"
:%s
String 및 에서 작동합니다.%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
'programing' 카테고리의 다른 글
Java를 통해 MongoDB에 여러 문서를 한 번에 삽입하는 방법 (0) | 2023.06.27 |
---|---|
'+' 연산자를 사용하여 Oracle에서 FULL OUTER JOIN을 수행하는 방법은 무엇입니까? (0) | 2023.06.27 |
@ngrx/Store를 업그레이드할 때 '작업' 유형에 'payload' 속성이 없습니다. (0) | 2023.06.27 |
함수 및 Firestore 사용 시 필드 값이 정의되지 않음 (0) | 2023.06.27 |
클래스와 모듈의 차이 (0) | 2023.06.27 |