Print 함수는 기본인데, 가끔 원하는 형식대로 잘 안될때가 있습니다. 이를 위해 공부해 보고, 잘 정해 두신 곳이 있어 공유 합니다.
-
- % 기호를 이용한 출력: 문자 / 정수 / 실수 / 여러 개 출력, 줄 바꾸기, 줄 붙이기
- {}.format( )을 이용한 출력: 기본 / 여러 개 출력, 순서 정해주기, 백분율(%)
- f string을 이용한 출력: print(f' ') = 파이썬 3.6부터 도입된 방식
- 심화: 딥러닝 코드 사례 - Neural Style Transfer
% 기호를 이용한 출력
가장 오래된 출력 형식이다.
문자열을 출력할 때에는 '%s' 형식을 사용한다.
name = 'Ariana Grande'
print('첫번째 출연자는 %s다' % name) → 첫번째 출연자는 Ariana Grande다
정수를 출력하려면 '%d' 형식을 사용한다.
count = 100
print('오늘은 윗몸일으키기 %d개를 했다' % count) → 오늘은 윗몸일으키기 100개를 했다
실수를 출력하려면 '%a.bf' 형식을 사용하는데, 여기서 a는 숫자의 총 길이(소수점 포함)이고 b는 소수점 이하의 길이다.
num = 3.141592
print('pie는 %6.4f이다' % num) → pie는 3.1416이다
데이터가 2개 이상일 때는 % 뒤에 튜플 형식으로 데이터를 써준다.
runner = '우샤인 볼트'
track = 100
time = 9.58
print('%s가 %d미터를 %4.2f초에 뛰었다' % (runner, track, time)) → 우샤인 볼트가 100미터를 9.58초에 뛰었다
줄을 바꿔 출력하려면 '\n'을 사용한다. (키보드에 따라 '\' 대신 '\'로 표시되어 있기도 하다)
print('봄\n여름\n가을\n겨울')
→ 봄
여름
가을
겨울
다음은 위와 반대로 줄을 붙여 출력하는 방법을 설명한다.
원래 파이썬에서 print( )를 두 번 쓰면 출력 결과가 두 줄로 나온다.
print('눈송이')
print('님 환영합니다')
→
눈송이
님 환영합니다
이를 이어서 한 줄로 나오게 하려면 end=''를 사용한다
print('눈송이', end='')
print('님 환영합니다')
→
눈송이님 환영합니다
{}.format( )을 이용한 출력
파이썬은 위에서 설명한 % 기호를 이용한 출력 형식 이외에 메소드 호출 방식을 지원한다. 즉, { }.format( ) 형식이다.
위에서 예로 들었던 'pie는 3.14' 출력을 메소드 호출 방식으로 쓰면 다음과 같다.
num = 3.141592
print('pie는 {:.2f}이다'.format(num)) # 비교: print('pie는 %4.2f이다' % num)
→ pie는 3.14이다
출력할 내용이 여러 개일 때는 다음과 같이 쓴다. format( ) 안의 변수들이 순서대로 사용된다.
출력할 내용이 여러 개일 때 순서를 정해주기 위해서 { }안에 숫자를 쓰기도 한다. 숫자는 0, 1, 2... 의 순서로 사용한다. 위의 코드를 다음처럼 바꿔 쓸 수 있다.
숫자를 백분율로 출력할 수도 있는데, 이때는 {:.3%}과 같은 형식을 쓴다. print( ) 함수가 알아서 숫자를 백분율로 바꾸어 표시하기 때문에 100을 곱하지 않아야 한다.
f string을 이용한 출력: print(f' ') = 파이썬 3.6부터 도입
f string이라 부르는 이 출력 형식은 2016년 파이썬 3.6부터 도입되었는데, 아직 자주 눈에 뜨이지는 않는다. 기존 출력 방식으로 써진 코드들이 많기 때문이다. 하지만 f string은 사용이 더 편리하다.
f나 F 뒤에 따옴표를 적어주고, { } 안에 변수나 고정값을 갖는 문자(열)를 입력하는 형식으로 사용한다.
먼저 문자와 정수를 출력하는 예이다.
다음은 실수를 출력하는 예이다. :.2f를 넣어주어 소수점 이하 2자리를 표시했다.
1,234,567처럼 천 단위마다 콤마를 넣으려면 다음과 같이 : 뒤에 콤마를 넣어준다.
{ } 안에 계산식을 넣으면 실행 시(run time)에 계산하여 결괏값을 출력한다.
심화: 딥러닝 코드 사례 - Neural Style Transfer
출력 형식 지정은 print( ) 함수뿐만 아니라 문자열을 조합하여 파일을 저장할 때도 쓴다. 다음은 원본 이미지의 content에 참조 이미지의 style을 적용하여 새로운 이미지를 만들어내는 Neural Style Transfer의 코드 일부이다. 생성된 이미지를 매 100번째 iteration마다 파일로 저장하는 내용이다. 코드가 약간 복잡해 보이지만 정수 출력은 '%d' 형식을 쓴다는 것을 기억하고 ' "_at_iteration_%d.png" % i ' 부분 위주로 읽어 보자.
'- 배움이 있는 삶 > - AI | Big data' 카테고리의 다른 글
자료구조-리스트, 튜플 (콤마로 구분하여 홀수 출력하기) (0) | 2023.01.02 |
---|---|
AI Testing : ISTQB AIT (0) | 2022.12.29 |
정수 입력 및 모든 약수 구하기 - 제어문(if) (1) | 2022.12.26 |
소금물의 농도 구하기: 연산자 학습 (0) | 2022.12.26 |
튜플 범위출력하기 (0) | 2022.12.12 |