본문 바로가기

프로그래밍언어/Python

[Python] Python 여러가지 print() 사용법

Java에서는 System.out.println(), c언어에서는 printf(), javascirpt에서는 console.log() 모든 프로그래밍언어에는 자신이 입력하는 데이터를 출력하는 방법이 있습니다. Python에서는 특히 다양한 사용법이있는데 이를 정리 해보고자 합니다.

1. 간단한 출력문

>>> print("My name is oh one taek")
My name is oh one taek

 

2. 2개 이상의 문자열을 합쳐서 출력

>>> print("My name"+" is "+"oh one taek")
My name is oh one taek

파이썬에서 + 는 문자열을 합칠때 사용합니다. 그러나 문자열과 숫자를 이러한 방법으로 결합하면 TypeError: can only concatenate str (not "int") to str 이러한 오류가 발생합니다.

그래서 이를 해결하기 위해서는 다른 방법을 사용해야합니다.

3. 문자열과 숫자를 함께 출력하기

 3 - 1. , 사용하기

>>> print("나는 공을",5,"개 가지고 있다.")
나는 공을 5 개 가지고 있다.

, 기호를 사용하여 문자열과 숫자형을 같이 사용하는 방법도 있습니다.. 하지만 , 를 사용하게 되면 자동으로 띄어쓰기가 되어서 이럴때는 다른 방법을 사용해야 합니다..

 3 - 2. str()함수를 사용하여 숫자를 문자열로 바꿔주기

>>> print("나는 공을 "+str(5)+"개 가지고 있다.")
나는 공을 5개 가지고 있다.

이런 식으로 str()함수를 하용하여 숫자형 5를 문자열로 바꾸어 주어야합니다. 그러나 출력 길이가 길어지거나 변수가 많아지면 복잡해지게 됩니다.

 3 - 3. format함수를 사용하기

>>> print("나는 공을 {}개 가지고 있다.".format(5))
나는 공을 5개 가지고 있다.

{}에 format함수에 입력한 값이 들어가게 됩니다.

>>> a = 5
>>> print("나는 공을 {}개 가지고 있다.".format(a))
나는 공을 5개 가지고 있다.

format함수의 입력값으로 변수를 넣는 것도 가능합니다.

4. 변수가 2개 이상일 경우(f - string 사용)

 4 - 1. format 함수의 입력 값으로 다수의 값 입력

>>> a = 3
>>> b = 4
>>> print("나는 야구공을 {}개 농구공을 {}개 가지고 있다.".format(a,b))
나는 야구공을 3개 농구공을 4개 가지고 있다.

변수를 여러개 사용할 경우 foramt 함수의 입력 값으로 여러개 넣어 주면 됩니다.

4 - 2. f - string 사용

>>> a = 3
>>> b = 4
>>> print(f"나는 야구공을 {a}개 농구공을 {b}개 가지고 있다.")
나는 야구공을 3개 농구공을 4개 가지고 있다.

문자열의 맨 앞에 f 를 쓰고 {} 안에 해당하는 변수를 넣어 주는 것으로 제가 생각 했을 때는 이 방법을 사용하는 것이 가능 깔끔한 것 같습니다.

5. 문자열 포맷으로 출력하기

 5 - 1. 기본적인 방식

>>> print("나는 공을 %d개 가지고 있다." % 5)
나는 공을 5개 가지고 있다.

오래된 방식으로 C언어에서 출력하는 방법과 유사합니다. %위에 붙은 영어 소문자에 따라 표현할 수 있는 자요형이 결정됩니다. 타입의 종류는 아래와 같습니다.

%d : 정수
%f : 실수
%s : 문자열
%o : 8진수
%x : 16진수
%% : 문자 % 표현

 5 - 2. 포맷을 이용한 소숫점 갯수 조절

>>> print("%d 나누기 %d는 %f 이다." % (5,3,5/3))
5 나누기 3는 1.666667 이다.
>>> print("%d 나누기 %d는 %0.3f 이다." % (5,3,5/3))
5 나누기 3는 1.667 이다.

출력할 때 출력 포맷을 정하는 방식으로 (소수점 앞자리 숫자).(소수점 뒷자리숫자)f  의 형태로 원하는 포맷 값으로 출력할 수 있습니다.

5 - 3. format 함수를 이용한 포맷팅

>>> print("{:d} 나누기 {:d}는 {:.3f}입니다.".format(5,3,5/3))
5 나누기 3는 1.667입니다.

{}안에 :d, :f 를 넣어서 위에서 했던 "4.변수가 2개일 경우"에서 출력 값를 원하는 포맷 값으로 출력할 수 있습니다.

 

5 - 4. f - string 출력포맷 설정

>>> print(f"{5} 나누기 {3} 은 {5/3:.3f} 이다.")
5 나누기 3 은 1.667 이다.

 {(값 or 변수) : (소수점 앞자리) . (소수점 뒷자리) f } 이런 형식으로 출력 값을 포맷 할 수 도 있습니다.

6. print() sep 옵션

>>> print("도","레","미",sep="!")
도!레!미

print 문의 출력 문들 사이에 해당하는 내용을 넣을 수 있습니다. 기본 값으로는 공백이 들어가 있으며 sep 옵션을 통해서 원하는 문자를 입력할 수 있습니다.

7. print() end 옵션

>>> print("도","레","미",end="")
>>> print("솔","라","시")
도 레 미 솔 라 시

print 문의 완료한 뒤의 내용을 end옵션을 통해서 수정할 수 있습니다. 기본 값으로는 개행(\n)이며, end=" "을 아용하면 개행없이 print()문을 사용할 수 있습니다.