IT/Python

[Basic] 문자열 자료형-문자 표시하기: Format을 이용한 포매팅

파프양 2021. 4. 28. 23:09
728x90

문자열 자료형-문자 표시하기: Format을 이용한 포매팅

 

참고자료: wikidocs.net/13#_15

 

Neural Network 의 일부를 예제로 하여 문자열 자료형의 문자표시 방법을 알아보자.

parameters라는 딕셔너리(Dictionary)의 구조는 다음과 같이 되어있다고 하자.

    parameters = {"W1": W1, "b1": b1, "W2": W2, "b2": b2, "W3": W3, "b3": b3, "W4": W4, "b4": b4}

 

parameters의 값을 불러올 때 우리는 parameters["W1"] 이라는 식으로 불러올 수 있을 것이다. 그런데 우리가 W에 해당하는 값들을 모두 불러와야 하는 상황이라면, 어떻게 표현할 수 있을까? 

 

 

 

Format 함수를 이용하는 방법

다음과 같이 for문과 문자열 자료형의 포매팅(Format)을 이용할 수 있다. 

 

Building_your_Deep_Neural_Network_Step_by_Step_v8a from Coursera Deep learning

 

위 이미지 중에서도 for문의 문단을 보자. linear_activation_forward의 매개변수로 parameters를 가져오고 있는데, 여기서 L은 parameters의 길이(lenth)/2이기 때문에 위에 parameters를 정의한대로라면 4가 된다. for문은 range(1, L)만큼 반복하라고 지시하고 있으므로 l=1~3까지를 반복한다.

 

그래서 여기서 문자열 포매팅을 이용해 "Wl"의 형태로 표현해 줄 것인데, 이때는 두 가지 방법이 있다. 하나는 위의 그림처럼 .format함수를 사용하는 것이다. 데이터를 표시할 부분에 { } 로 표시해주고 "(따옴표) 바깥쪽에 .format(표시할데이터) 형태로 써주면 된다. 

 

숫자 0을 넣은 이유는 여러가지 데이터를 표현할 경우 인덱스(index)를 표현한다. 예를 들어 다음과 같은 문장이 있다고 치자.

 

"가장 높은 등수는 {0}등이고 가장 낮은 등수는 {1}등이다.".format(1, 10)

그렇다면 위 문장은 아래와 같이 표시된다. 

"가장 높은 등수는 1등이고 가장 낮은 등수는 10등이다."

 

 

 

포맷코드를 이용하는 방법

 

Building_your_Deep_Neural_Network_Step_by_Step_v8a from Coursera Deep learning

 

이번에도 for문 문단을 보자. 이번에는 좀 형태가 바뀌었다. W옆에 %d(정수타입)이라고 표시해주고 "(따옴표)를 닫고 나서 곧바로 %와 함께 해당 위치에 표시할 데이터를 표시해준다. 여기서는 l이다.

 

이 경우에는 표시하고 싶은 데이터 'l'이 정수타입이기 때문에 %d를 썼지만 만약 표시하고 싶은 데이터가 다른 데이터 타입일 경우는 아래의 표를 참고해 적절히 바꿔가며 사용해야 한다.

 

코드 설명
%s 문자열(String)
%c 문자 1개(Character)
%d 정수(Integer)
%f 부동소수(Floating-point)
%o 8진수
%x 16진수
%% Literal % (% 자체)

 

 

728x90