2016-10-18 1 views
0

나는 파이썬 3.6 64 비트에서 일하고있다. 에서 "{}"여기 {}없이 파이썬 형식()

은 월 화 수 목 금 토 일이

내가 추가하지 않은 일이다

days = "Mon Tue Wed Thu Fri Sat Sun" 

print("Here are the days",format(days)) 

내가 가진 출력은 다음과 같습니다

내 코드입니다 내 끈. 또한 점 대신에 쉼표 ","를 사용했습니다. "

제 생각에 format()은 string의 {}를 인수로 대체합니다.

질문 : {} 및 {}없이 format()이 어떻게 작동 했습니까? 연산자

+1

코드를 다시보십시오. 당신은 문자열 ('days')을 가져 와서 그것을 문자열로 포맷하도록 요청하고 있습니다. 일은 사전이나 배열이 아닙니다. –

+0

코드는 –

답변

0

print 함수는 인수를 차례대로 인쇄하고 사이에 공백을 넣습니다. format 호출은 대체물이 없으면 아무 작업도 수행하지 않고 원래 문자열을 반환합니다. 여기

도움이 될 몇 가지 예입니다 :

>>> colors = "Red Blue" 
>>> print("Here are the colors", format(colors)) 
Here are the colors Red Blue 
>>> print("", format(colors)) 
Red Blue 
>>> print(format("abc"), format("xyz")) 
abc xyz 
>>> print("Here are the colors", colors) 
Here are the colors Red Blue 
2

를 당신이 무슨 일이 일어나고 있는지 생각하고 생각하는 것은 비슷하다 그러나

print("Here are the days {}".format(days)) 

, 무엇 실제로 일어나는 것은 당신이 전달하는 것입니다 print()에 대한 여러 인수.

print(*objects, sep=' ', end='\n', file=sys.stdout, flush=False) 

객체 앞의 별표는 여러 인수를 취할 수 있습니다 나타냅니다 당신이 인쇄()에 대한 docs 보면,이 매개 변수의 몇 걸립니다.

Here are the days Mon Tue Wed Thu Fri Sat Sun 
0

여기 혼란의 일부는 format() 사이의 차이가있을 수 있습니다 : 지금 당신이 전달하는 첫 번째 인수 및 형식으로 결과 두 번째, 같은 (일) "여기 일이다" 기능 및 관련 "string".format()방법. 이 함수는 형식 지정 (두 번째 인수)을 사용하여 개체의 (첫 번째 인수) __format__() 메서드를 호출합니다. 두 번째 인수가 없음이면 str()과 같습니다. format() 메서드가 str 인 경우에는 대괄호을 찾고 해당 문자열을 format() 함수와 유사하게 적용 할 수 있거나 포함하지 않을 수 있습니다. 예 :

>>> # format() function which invokes float.__format__() 
>>> format(0.324, "+.4%") 
'+32.4000%' 
>>> 
>>> # str format() method that invokes various object.__format__() methods 
>>> # if a format specification is found in the substitution brackets: 
>>> "{:+.4%} rise in {}".format(0.324, "temperature") 
'+32.4000% rise in temperature' 
>>> 

질문 : 형식을 어떻게했는지는() {없이}로했다. 운영자

'.' 연산자를 사용하여 실수로 format() 함수를 호출했습니다.이 함수는 두 번째 인수없이 단순히 문자열을 반환합니다. format() 함수는 {} 개 괄호를 사용하지 않습니다. '012'에 의해 호출되는 str의 format() 메소드입니다. 연산자를 사용하여 대괄호를 사용하여 대괄호를 사용하며 그 중 일부는 형식화가 필요할 수 있습니다.

str 메서드의 형식이 "{} string {}".interpolate(x, y)과 같은 다른 이름 인 경우 혼동이 덜했을 수도 있습니다.

+0

이어야합니다. 설명을 주셔서 감사합니다. –