탈출 문자 (Escape Sequence) 중 하나로, 탭(tab) 문자를 삽입하는데 사용된다.
탭 문자는 텍스트 출력에서 여러 공백을 한 번에 삽입하는 역할을 한다.
일반적으로 8칸 간격이다.
텍스트 출력에서 표처럼 간격을 맞추거나 데이터를 정렬하는데 유용하다.
전달값 작성 순서
함수를 정의할 때 일반 전달값과 기본값이 있는 전달값을 함께 사용하는 경우에는 반드시 일반 전달값을 먼저 적어야 한다.
print() 함수에서 file 과 flush 옵션
형식 : print(출력할 내용, sep="", end="\n", file=None, flush=False)
1) file 옵션
- 출력 대상을 변경 (예 : 파일로 출력)
- 기본값은 sys.stdout (콘솔 출력)
2) flush 옵션
- 출력 버퍼를 즉시 비우고, 대상에 내용을 전송
- 실시간 출력과 로그 기록에서 유용
가변 인자(cariable argument)
개수가 변할 수 있는 인자
함수에서 전달값 앞에 *를 추가하면 가변 인자가 된다.
가변 인자를 사용하면, 함수는 매개변수로 전달값을 순서대로 받고 남은 전달값이 몇 개든지 상관없이 묶어서 튜플로 처리한다.
그래서 호출할 때마다 전달값의 개수가 달라져도 문제가 없다.
지역변수(local variable)
함수 안(지역)에서만 사용할 수 있는 변수로, 매개변수를 포함해 함수 안에서 새롭게 정의하는 변수는 모두 해당
전역변수(global variable)
모든 곳(전역)에서 사용할 수 있는 변수
global 을 변수 앞에 붙이면 전역 변수를 함수 안에서 사용하겠다는 의미이다.
1 2 3 4 5 6 7 8 9 10 | glasses = 10 def rent(people): global glasses glasses = glasses - people print("[함수 내부] 남은 3D 안경 개수 : {0}".format(glasses)) print("전체 3D 안경 개수 : {0}".format(glasses)) rent(2) print("남은 3D 안경 개수 : {0}".format(glasses)) | cs |
1 2 3 4 5 6 7 8 9 10 | glasses = 10 def rent_return(glasses, people): glasses = glasses - people print("[함수 내부] 남은 3D 안경 개수: {0}".format(glasses)) return glasses print("전체 3D 안경 개수 : {0}".format(glasses)) glasses = rent_return(glasses, 2) print("남은 3D 안경 개수: {0}".format(glasses)) | cs |
표준 입력
키보드로 값을 입력받는 것
input() 함수
input() 함수로 입력받은 값은 항상 문자열로 인식한다.
숫자 연산을 목적으로 사용하려면 반드시 int() 함수로 자료형을 바꿔야 한다.
표준 출력
기본 출력 장치를 통해 프로그램을 수행한 결과를 사용자에게 보여주는 것
예) VSCode의 터미널
print() 함수
sys.stdout : 표준 출력 (현재 표준 출력인 VSCode의 터미널에 결과를 출력하라)
sys.srderr : 표준 오류 (오류가 발생했을 때 터미널에 오류 메시지를 띄우라)
로그(log)를 남긴다 : 프로그램 실행 과정에서 몇 시에 어떤 작업을 어떤 방식으로 수행하고 있으며 실행결과가 어떠한지 등의 정보를 기록
1 2 3 4 | scores = {"수학": 0, "영어": 30, "코딩": 100} for subject, score in scores.items(): print(subject, score) | cs |
for 문에 각각 subject와 score라는 이름으로 key와 value를 대입할 두 변수를 지정하고 반복 대상을 scores.items()로 작성하면 scores 딕셔너리의 key와 value가 차례로 subject와 score 변수에 대입된다.
ljust() 함수
문자열을 왼쪽 정렬
형식 : string.ljust(width, fillchar=' ')
width : 문자열이 차지해야 하는 전체 너비 지정. 문자열이 width보다 짧으면 나머지 부분을 fillchar로 채운다.
fillchar (선택) : 문자열을 채울 때 사용하는 문자. 기본값은 공백.
rjust() 함수
문자열을 오른쪽 정렬
형식 : string.rjust(width, fillchar=' ')
width : 문자열이 차지해야 하는 전체 너비 지정. 문자열이 width보다 짧으면 나머지 부분을 fillchar로 채운다.
fillchar (선택) : 문자열을 채울 때 사용하는 문자. 기본값은 공백.
zfill() 함수
전달하는 숫자만큼 공간을 확보하고 문자열 앞의 빈간을 zero(0)로 채운다.
format() 함수
{0} : 값 그대로 출력
{0: >10} : 빈칸으로 두기, 오른쪽 정렬, 10칸 확보
{0: >+10} : 빈칸으로 두기, 오른쪽 정렬, 양수에는 + / 음수에는 - 표시, 10칸 확보
나머지 공간을 빈칸으로 두려는 경우에는 {0:>10}과 같이 콜론과 부등호 사이에 공백을 생략해도 된다.
{0:,} : 3자리마다 쉼표 찍기
{0:f} : 부동소수점 형식으로 값을 출력하라는 의미로 소수점 아래 6자리 까지 출력된다.
{0:2f} : 소수점 아래 2자리까지 출력, 반올림 적용
파일 열고 닫기 : open(), close()
open("파일명", "모드", encoding="인코딩 형식")
파일을 새로 생성하거나, 기존 파일을 불러오는 두 가지 경우 모두에 사용된다.
r : 읽기(read)
w : 쓰기(write)
a : 이어쓰기(append)
1 2 3 4 | score_file = open("score.txt", "w", encoding="utf8") print("수학 : 0", file=score_file) print("영어 : 50", file=score_file) score_file.close() | cs |
print() 함수는 파일 객체가 제공될 경우, 화면이 아니라 해당 파일에 내용을 쓴다.
파일이 열려 있지 않다면 오류가 발생하므로 반드시 파일을 열어야 한다.
(쓰기 모드로 열려 있어야 한다.)
각 print() 호출은 자동으로 줄바꿈을 포함한다.
파일은 사용 후 꼭 닫아야 한다.
Colab 환경의 특성
Google Colab은 클라우드 기반이므로, 실행 세션이 종료되거나 새로 시작될 때 이전에 작업한 파일이 저장되지 않을 수 있다.
세션이 종료되면, 로컬 디스크에 저장되지 않은 파일은 모두 사라진다.
파일을 영구적으로 저장하려면 아래 방법 중 하나를 사용해야 한다.
방법1 : Google Drive에 저장
1 2 3 4 5 6 7 8 9 10 11 12 | from google.colab import drive drive.mount('/content/drive') # Google Drive를 Colab에 마운트 # 파일 저장 with open("/content/drive/My Drive/score.txt", "w", encoding="utf8") as file: file.write("수학 : 0\n") file.write("영어 : 50\n") # 파일 읽기 with open("/content/drive/My Drive/score.txt", "r", encoding="utf8") as file: print(file.read()) | cs |
방법2 : Colab 파일을 다운로드
1 2 3 4 5 6 7 8 9 | # 파일 생성 with open("score.txt", "w", encoding="utf8") as file: file.write("수학 : 0\n") file.write("영어 : 50\n") # 파일 다운로드 from google.colab import files files.download("score.txt") | cs |
방법3 : 파일이 없으면 자동 생성
1 2 3 4 5 6 7 8 9 | try: with open("score.txt", "r", encoding="utf8") as file: print(file.read()) except FileNotFoundError: print("파일이 존재하지 않아 새로 생성합니다.") with open("score.txt", "w", encoding="utf8") as file: file.write("수학 : 0\n") file.write("영어 : 50\n") | cs |
readline() 함수
1 2 3 4 5 6 7 8 | score_file = open("score.txt", "r", encoding="utf8") while True: line = score_file.readline() if not line: break print(line, end="") score_file.close() | cs |
if not line 은 line == ""(빈 문자열)인지를 확인하는 코드
이것은 파일 끝에 도달했는지 확인하는 방식으로, 파일의 모든 내용을 한 줄씩 읽어 출력하는 루프를 종료하는 역할을 한다.
Python에서는 빈 문자열이 False로 평가되기 때문에 조건문에서 자연스럽게 활용할 수 있다.
pickle 모듈
프로그램에서 사용하는 데이터를 파일 형태로 저장하거나 불러올 수 있게 하는 모듈
import pickle
dump(저장할 데이터, 저장할 파일명) : 데이터를 파일에 저장
pickle 모듈로 저장하는 파일은 텍스트가 아닌 바이너리 형태
바이너리 파일 : 컴퓨터가 인식할 수 있는 이진수로 이루어진 파일로, JPG, PNG와 같은 이미지 파일, MP3와 같은 음악 파일, EXE와 같은 실행 파일 등이 해당
따라서 open() 함수를 사용할 때 w 모드 뒤에 b를 붙여서 bw라고 해야 올바르게 저장된다.
with 문
파일을 열고 나서 close() 함수를 호출하지 않아도 자동으로 닫아주는 역할
1 2 3 4 5 6 7 8 9 10 11 12 13 | # 8.7 셀프체크 with open("class.txt", "w", encoding="utf8") as class_file: class_file.write("초록반 5세 20명 파랑반 6세 18명 노랑반 7세 22명") with open("class.txt", "r", encoding="utf8") as class_file: content = class_file.read() print(content) words = content.split() for word in words: print (word, end=" ") if word.endswith("명"): print() | cs |
endwith() 함수, startwith() 함수
문자열이 어떤 값으로 끝나는지, 시작하는지 확인할 때 사용
주어진 값으로 끝나면 True를, 그렇지 않으면 False를 반환한다.