📘 Python 계단밟기
제02장 두 번째 계단밟기
01. Python(파이썬) 표준 입출력
왜! 모든 프로그램은 배울 때, 처음에 출력문을 배우는 걸까?
▶ 컴퓨터로 작업을 지시하고 컴퓨터가 처리한 결과를 확인하기 위해서
▶ 출력을 어디로 할 것인가에 따라 프로그램이 변경된다.
▶ 출력 대상에 따라 다양한 출력이 생성된다.
- 예
출력하는 위치 | 출력 | 프로그램 명 |
콘솔(Console) | → | 콘솔 어플리케이션(Console Application) |
웹 브라우저(Web Browser) | → | 웹 어플리케이션(Web Application) |
스마트 기기 | → | App(앱) |
윈도우(Window) | → | 윈도우 어플리케이션(Window Application) |
1. Python(파이썬) 표준 출력
1.1. print 함수
사용법
- print(출력 대상 1, 출력 대상 2....)
- 출력 시, 출력 대상들의 사이에 구분자를 넣을 때는 sep를 기술한다. (기본값 : 공백)
- 마지막 문자열을 출력하고 출력할 문자는 end를 기술한다. (기본값 : 줄 바꿈 문자)
- 출력 방향을 변경할 때는 file을 기술한다. (기본값 : sys.stdout(표준 출력 장치, 모니터))
- 스트림을 강제적으로 flush 할지를 지정할 때는 flush를 기술한다. (기본값 : False)
- 예
실행 값 입력
# 출력에 대하여 알아보자
print("하나","둘","셋",1,2,3)
print("하나","둘","셋",1,2,3,sep='-')
print("첫번째 값")
print("두번째 값") # 다른 줄에 출력
print("첫번째 값", end=" ---> ")
print("두번째 값") # 같은 줄에 출력
실행 결과
하나 둘 셋 1 2 3
하나-둘-셋-1-2-3
첫번째 값
두번째 값
첫번째 값 ---> 두번째 값
파일로 출력
# 출력 방향 변경
file = open("test.txt","w")
print("Hello Python!!", file=file) # 파일로 출력
file.close()
실행 결과
"text.txt" 파일로 생성되어 "Hello Python!!"이란 문자열이 저장되었음을 알 수 있다.
1.2. 문자열 출력
- ('), (") 둘 중 하나를 사용하여 문자열 출력 가능하다.
- 작은따옴표 안에 큰따옴표가 가능하다. (그 반대도 가능)
- 큰따옴표 안에서 큰따옴표를 출력하려면 \"로 해야 한다.
- 작은따옴표 안에서 작은따옴표를 출력하려면 \'로 해야 한다.
- 동일한 문자열을 여러 번 출력 시, " * 횟수"를 사용한다.
실행 값 입력
print('Hello World!!')
print("Hello World!!")
print("나의 이름은 '한사람'입니다.")
print('나의 이름은 "한사람"입니다.')
print("나의 이름은 \"한사람\"입니다.")
print('나의 이름은 \'한사람\'입니다.')
print('-' * 40)
실행 결과
Hello World!!
Hello World!!
나의 이름은 '한사람'입니다.
나의 이름은 "한사람"입니다.
나의 이름은 "한사람"입니다.
나의 이름은 '한사람'입니다.
----------------------------------------
1.3. 확장 문자 출력
Python은 기본 확장 문자(escape sequence)를 지원한다.
▷ C언어를 쓸 때 자주 쓰는 거예요. 파이썬에선 안 써도 돼요
\' : 따옴표 문자
\" : 큰따옴표 문자
\ : backslash 문자
\a : bell 문자
\b : backslash 문자
\f : Formfeed 문자
\n : newline 문 \r : carriage return 문자(\n와 동일하지 않다.)
\t : tab 문자
\v : vertical tab 문자
- ASCII 문자를 포함할 수 있는 확장 문자
- 숫자 형식 (8진법과 16진법) 확장 문자(escape sequence)
- Unicode 확장 문자(escape sequence)
- 8진수 확장 문자(escape sequence)
- 16진수 확장 문자(escape sequence)
- 8진수 확장 문자(escape sequence)
- backslash()와 세 자릿수 8진수 숫자를 사용한다.
- 결과로는 8진수 확장 문자(escape sequence)에 해당하는 ASCII 문자가 출력된다.
- 16진수 확장 문자(escape sequence)도 이와 비슷하지만 “\”가 아니라 “\x”로 시작되며, 16진수 숫자로 구성되는 점이 다르다.
- 이 확장 문자(escape sequence)는 문자가 더 이상 16진수가 아닐 때 종료된다
- 예를 들어
- 문자 n은 ASCII 문자표에서 십진수 값 109이다. 이는 8진수로 하면 156이며 16진수로 하면 6E이다.
- 예를 들어
실행 값 입력
# 출력에 대하여 알아보자
print('Hello \tWorld!!')
print("Hello \nWorld!!")
print("나의 이름은 \"한사람\"입니다.")
print('나의 이름은 \'한사람\'입니다.')
print('-' * 40)
print('1 \n')
print('2 \012')
print('3 \x0A')
print('-' * 40)
print('n')
print('\156')
print('\x6E')
print('-' * 40)
실행 결과
Hello World!!
Hello
World!!
나의 이름은 "한사람"입니다.
나의 이름은 '한사람'입니다.
----------------------------------------
1
2
3
----------------------------------------
n
n
n
----------------------------------------
- Python 3 내의 모든 문자열은 Unicode 문자열(string)이다.
- 모든 language에서 사용 가능한 대부분의 문자를 포함할 수 있다.
1.4. 형식에 맞추어 출력
데이터 형식에 맞추어 출력할 수 있다.
이것은 print 함수의 설명이라기보다는 문자열의 형식을 지정하는 방법이다.
형식화된 문자열로 만든 다음, 문자열을 출력하는 것이다.
- 이전 방식 : "출력 형식"%(데이터....)
1. 출력 형식에 형식화된 문자열을 넣어 출력의 모양을 변경하는 것이다.
2. "% 형식문자"로 지정하면 % 뒤의 출력 대상들이 1:1로 대응되어 출력된다.
3. %s : 문자열, %d : 정수, %f : 실수 등이 있다.
예 1) %03d : "정수를 3칸에 맞추어 출력하는데 앞의 빈칸은 0으로 채워라"이다.
예 2) %6.2f : "실수를 전체 6칸 소수 이하 2칸에 맞추어 출력하라"이다.
- 파이썬 3(Python 3) 포맷팅 방식 : "출력 형식".format(데이터....)
1. 출력 형식에 형식화된 문자열을 넣어 출력의 모양을 변경하는 것이다.
2. "{}" 지정하면 format에 기술한 출력 대상들이 대응되어 출력된다.
3. "{n}"안에 숫자를 지정하여 출력 대상의 위치를 지정할 수 있다.
4. 함수의 인자처럼 키워드를 사용해서 나타낼 수 있다.
5. 동일한 데이터를 여러 번 출력할 수 있다.
- 예
실행 값 입력
# 형식에 맞추어 출력하기
# 이전 방식
print('나의 이름은 %s입니다'%('한사람'))
print('나의 이름은 "%s"입니다. 나이는 %d세이고 성별은 %s입니다.'%('한사람',33,'남성'))
print('나이는 %d세이고 성별은 %s입니다. 나의 이름은 "%s"입니다. '%(33,'남성','한사람'))
print('나이는 %03d세이고 신장은 %6.2f입니다. 나의 이름은 "%s"입니다. '%(33,56.789,'한사람'))
print('-' * 40)
# 파이썬(Python) 3 포맷팅 방식
print('나의 이름은 {}입니다'.format('한사람'))
print('나의 이름은 "{0}"입니다. 나이는 {1}세이고 성별은 {2}입니다.'.format('한사람',33,'남성'))
print('나이는 {1}세이고 성별은 {2}입니다. 나의 이름은 "{0}"입니다. '.format('한사람',33,'남성'))
print('나이는 {age}세이고 성별은 {gender}입니다. 나의 이름은 "{name}"입니다. '
.format(name='한사람',age=33,gender='남성'))
print('만세삼창 : {0}!!! {0}!!! {0}!!! '.format('만세'))
print('삼삼칠 박수 : {0}!!! {0}!!! {1}!!! '.format('짝'*3,'짝'*7))
print('-' * 40)
실행 결과
나의 이름은 한사람입니다
나의 이름은 "한사람"입니다. 나이는 33세이고 성별은 남성입니다.
나이는 33세이고 성별은 남성입니다. 나의 이름은 "한사람"입니다.
나이는 033세이고 신장은 56.79입니다. 나의 이름은 "한사람"입니다.
----------------------------------------
나의 이름은 한사람입니다
나의 이름은 "한사람"입니다. 나이는 33세이고 성별은 남성입니다.
나이는 33세이고 성별은 남성입니다. 나의 이름은 "한사람"입니다.
나이는 33세이고 성별은 남성입니다. 나의 이름은 "한사람"입니다.
만세삼창 : 만세!!! 만세!!! 만세!!!
삼삼칠 박수 : 짝짝짝!!! 짝짝짝!!! 짝짝짝짝짝짝짝!!!
----------------------------------------
1.5. 문자열 앞 0으로 채우기 zfill()
지정한 길이만큼 공간을 확보하고 남는 앞부분을 "0"으로 채워준다.
길이가 문자열보다 적을 경우에는 모든 문자열을 출력한다.
실행 값 입력
# 형식에 맞추어 출력하기
# 앞의 빈칸 0으로 채우기
print('12'.zfill(5))
print('-12'.zfill(5))
print('3.141'.zfill(7))
print('-3.141'.zfill(7))
print('3.14159265359'.zfill(5))
print('-3.14159265359'.zfill(5))
print('문자열'.zfill(10))
print('문자열'.zfill(1))
print('-' * 40)
실행 결과
00012
-0012
003.141
-03.141
3.14159265359
-3.14159265359
0000000문자열
문자열
----------------------------------------
'공부 > Python 공부' 카테고리의 다른 글
[Python] 파이썬 프로그래밍의 기초, 자료형_숫자형 (0) | 2025.01.06 |
---|---|
[Python] 모듈의 사용(import) (0) | 2025.01.03 |
[Python] Python 표준 입출력, 표준 입력 (0) | 2025.01.03 |
[Python] 주석, 들여쓰기, 행결합/행분리 (2) | 2025.01.02 |
[Python] 프로그램과 프로그래밍 언어 (0) | 2025.01.02 |