[코딩자율학습단] 나도코딩의 파이썬 입문 3주차




\t

탈출 문자 (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를 반환한다.


댓글 쓰기

다음 이전

POST ADS1

POST ADS 2