출처 : 난생처음 컴퓨팅사고 with 파이썬, 두근두근 파이썬, 파이썬 코딩 도장
-------
개발 블로그를 티스토리로 옮기며 기존의 네이버 블로그에 작성한 내용을 그대로 옮겼습니다.
https://blog.naver.com/0yeonjae2/222593909231
-------
1. 함수
1) 함수의 종류
- 내장 함수 : 파이썬에서 기본으로 제공하는 함수로 파이썬을 설치하면 바로 사용할 수 있다.
ex) print(), len()
- 사용자 함수 : 사용자가 필요할 때 직접 만들어 사용한다.
2) 함수 사용 이유
- 코드 재사용 : 매번 중복되는 코드를 함수로 만들어 사용해 코드의 양을 줄이고 간결화할 수 있다.
- 모듈화
:모듈은 특정 기능의 작은 프로그램을 뜻한다. 특정 기능이 함수로 모듈화되면 다른 프로그램에 쉽게 이식하여 사용할 수 있으며 그만큼 프로그램을 만드는 시간도 단축된다.
- 코드 수정 용이 : 코드에 수정 사항이 발생했을 때 함수를 사용하지 않았다면 해당부분이 포함된 모든 코드를 수정해야 한다.
3) 함수의 구성 요소
(1)함수 정의 (function definition)
: 함수를 정의할 때는 def 키워드, 함수명, 콜론(:), 실행문으로 나눠 작성한다.
def 함수명() :
실행문
(2) 함수명
: def 키워드 다음에는 함수명을 명시한다. 함수명을 지을 때 유의사항은 다음과 같다.
① 내장함수명과 동일하면 안 된다.
② 첫 글자는 주로 소문자로 시작한다.
③ 첫 글자로 숫자를 사용할 수 없다.
④ 특수문자는 _만 사용할 수 있다.
(3) 콜론(:)과 실행문
콜론(:)은 실행문(코드 블록)의 시작을 나타내는 것으로 if문, for문과 사용 방법이 같다.
실행문 역시 들여쓰기로 구분한다.
4) 함수 호출
- 함수를 사용하는 것을 의미한다.
- 함수 호출은 함수 실행이 필요한 곳에서 함수 이름을 작성하면 된다.
5) 함수의 값 반환
-return 키워드 : 함수는 실행이 끝난 후에 나온 결과물을 호출부로 반환할 수 있다.
ex)
def calculate(radius) : # radius는 매개변수이다.
area = 0
area = 3.14*radius**2
return area
areaA = calculate(3.0) # 3.0은 인수이다.
-> 함수 실행 결과 값이 areaA에 대입된다.
6) 함수에 입력 전달하기
매개변수는 호출부에서 전달하는 인수의 개수와 순서에 맞춰 선언한다.
인수의 개수와 매개변수의 일치하지 않으면 에러가 발생한다.
함수를 호출할 때 전달하는 인수의 개수가 수시로 변경되는 경우 * 기호를 사용한다.
*기호를 사용하면 매개변수의 개수를 변경할 필요 없이 해결 가능하다.
ex)
def calAve(*scores) :
sum = 0
num = len(scores)
for score in scores :
sum += score
ave = sum / num
return ave
7) 재귀(Recursive) 함수
- 함수 안에서 자신을 다시 호출하는 함수
- 재귀 함수는 자신을 계속 호출하기 때문에 함수 호출을 종료할 수 있는 코드가 반드시 있어야 한다.
ex)
def factorial(num):
if num ==1:
return 1
else:
return num*factorial(num-1)
8) 변수의 종류
- 지역 변수(local variable) : 함수 안에서 선언되는 변수
- 전역 변수(global variable) : 함수 외부에서 선언되는 변수
지역변수는 함수 안에서만 사용 가능하지만 전역 변수는 함수 외부, 내부에서 모두 사용 가능하다.
- global 키워드 : 전역변수를 가리킬 때 사용하는 키워드이다.
9) 디폴트 인수
: 함수의 매개변수가 가질 수 있는 기본값
ex)
def hello(name, msg="만나서 반가워요!"):
print("안녕", name+",", msg)
hello("연재")
안녕 연재, 만나서 반가워요!
10) 키워드 인수
: 인수의 이름을 명시적으로 지정해 전달하는 방법
ex)
def cal(a,b,c) :
return a+b+c
>>> cal(c= 30, a=1, b= 5)
36
2. 파일
1) 파일에서 데이터 읽기
① 파일을 연다. -> 파일 객체 = open("파일 이름", "파일 모드")
② 파일에서 데이터를 읽거나 쓸 수 있다.
③ 파일과 관련된 작업이 모두 종료되면 파일을 닫아야 한다. -> 파일객체.close()
2) 파일 모드
- 읽기 전용 : 'r'
- 쓰기 전용
- 'w' : 파일의 내용을 버림
- 'a' : 파일 끝에 추가
- 'x' : 파일이 있으면 에러
- 읽기 & 쓰기
- 'w+' : 파일의 내용을 버림
- 파일의 내용 유지
- 'r+' : 파일 처음부터 쓰기
- 'a+' : 파일 끝부터 쓰기
- 'x+' : 파일이 있으면 에러
3) 파일 읽기
(1) 전체 데이터 읽기
infile = open("file.txt", "r")
lines = infile.read()
print(lines)
infile.close()
(2) 한 줄 읽기
infile = open("file.txt", "r")
line = infile.readline()
print(line)
infile.close()
두 번째 예시에서 file.readline() 대신 file.readlines()을 사용하면 다음과 같은 결과가 나온다.
각각의 줄이 리스트 안에 저장된다.
문장의 끝마다 \n가 있는데 이는 우리가 파일을 작성하는 과정에서 사용한 엔터키가 표시된 것이다.
한 줄씩 \n 표시 없이 출력하려면 다음과 같이 코드를 작성하면 된다.
작성된 코드 내용을 파악하면 다음과 같다.
strip() : 문자열에서 특정 문자를 제거하기 위해 사용한다.
파일에 데이터가 얼마나 있는지 모르기 때문에 한 줄을 먼저 읽은 후 빈칸이 나올 때(==문장의 끝)까지 출력한다.
(3) 단어 읽기
- split() 함수 : 공백문자를 이용하여 문자열에서 단어를 분리한다.
4) 파일에 데이터 쓰기
- 기존의 데이터를 지우고 새로운 데이터를 쓰기 위해 open()를 사용할 때 "w" 모드를 사용한다.
write("추가내용\n") 에서 줄바꿈 기호를 사용하지 않으면
줄바꿈 없이 문장끼리 이어져 출력된다.
- 기존의 데이터가 유지된 상태에서 새로운 데이터를 추가하려면 "a" 파일 모드를 사용한다.
파이썬 코드를 실행하고 파일을 열어보면 새롭게 추가된 문장을 확인할 수 있다.
5) 파일 복사하기
infileName = input("입력 파일 이름 : ")
outfileName = input("출력 파일 이름 : ")
infile = open(infileName, "r")
outfile = open(outfileName, "w")
s = infile.read()
outfile.write(s)
infile.close()
outfile.close()
혹은 shutil 패키지를 이용할 수 있다.
import shutil
shutil.copy("입력 파일 이름", "출력 파일 이름")
'전공과목 정리 > 프로그래밍언어 (Python, C++)' 카테고리의 다른 글
[파이썬프로그래밍🐍] tkinter (0) | 2022.01.29 |
---|---|
[파이썬프로그래밍🐍] 리스트, 튜플, 딕셔너리, 세트 (0) | 2022.01.29 |
[파이썬프로그래밍🐍] 조건문, 반복문 (0) | 2022.01.29 |
[파이썬프로그래밍🐍] 변수, 계산, 자료형 (0) | 2022.01.29 |