교과서 p.150 함수  minecraft.exe

1. 정의 : 동일한 명령을 반복적으로 사용하거나 프로그램의 전체 구조와 실행 흐름을 파악할 수 있도록 만든 작은 프로그램

2. 형식

def 함수이름() : #함수선언 실행문 함수이름() #함수 호출	def hi(): print(‘안녕하세요’) hi() 출력값 : ‘안녕하세요’

예제1)

코드값	결과값
from turtle import * def tri(): for a in range(3): forward(100) right(120) tri()

3. 매개 변수 : 함수로 자료를 전달하는데 사용하는 변수

형식	예시

예제2)

코드값	실전문제
from turtle import * def tri(side): for a in range(3): forward(side) right(120) side=int(input(‘삼각형 한 변의 길이: ’)) tri(side)	from turtle import * def tri(side): for a in range(side): forward(100) right(360/side) side=int(input('몇각형을 그릴까요?: ')) tri(side)

4. 함수 처리 결과 반환

형식	예시
def 함수이름(매개변수) : #함수선언 실행문 return 되돌리는 값 #함수결과반환 변수=함수이름(값) #함수의 결과값 받기	def plus(a,b): return a+b I = plus(3,2) print(i) 출력값 : 5

예제2)

코드값	실전문제
def cal(a,b): p = a + b m = a- b d = a/b mul = a*b return p,m,d,mul r1, r2, r3, r4 = cal(8,2) print(r1) print(r2) print(r3) print(r4)	def cal(a,b): p = a + b m = a- b div = a/b mul = a*b return p,m,div,mul a=int(input('첫번째 숫자 입력:')) b=int(input('두번째 숫자 입력:')) r1, r2,r3,r4 = cal(a,b) print('더하기:', r1) print('빼기:',r2) print('나누기:',r3) print('곱하기:',r4)

예제3)

코드값	결과값
from turtle import * def four(side) : for a in range(4): fd(side) rt(90) result = side*side return result side=int(input(‘사각형 한 변의 길이:’)) area = four(side) print(‘사각형의 넓이는:’,area)

	함수 외부
	함수 내부		전역변수
	지역변수 지역변수 수정가능 전역변수 수정 불가능	□ (O) ➡ (×)
	전역변수 수정가능

5. 교과서 p. 152 지역 변수와 전역 변수

지역변수 : 함수 내부에서만 사용됨.

전역변수 : 프로그램 전체에 사용됨.

예제4)

코드값	결과값
def plus(a,b) : a=a*10 b=b*10 result = a+b return result a=int(input(‘첫번째 수:’)) b=int(input(‘두번째 수:’)) c=plus(a,b) print(‘두수의 합:’,c)

예제5)

코드값	설명	코드값	결과값
a=10 b='전역변수' def func1(): b='지역변수’ print(b) def func2( ): a=1 print(a) def func3(): global a a = 50		func1() print(b) print(a) func2( ) print(a) func3() print(a) a=a+10 print(a) func3() print(a)
	‘a’변수에 10을 넣는다.
	‘b’변수에 ‘전역변수’를 넣는다.
	‘func1’함수를 설정한다.
	‘b’변수에 ‘지역변수’를 넣는다.
	b값을 출력한다.
	‘func2’함수를 설정한다.
	‘a’변수에 1을 넣는다.
	a값을 출력한다.
	‘func3’함수를 설정한다.
	전역변수 a를 부른다.
	‘a’변수에 50을 넣는다.

모듈과 패키지

: 모듈이 파일이라면 패키지는 파일이 모인 디렉토리야.

1-1. 모듈 불러오기(import)

형식	예시
import 모듈이름 import 패키지 이름. 모듈 이름	import time # time 모듈 불러오기 time.sleep(1) # 1초간 잠자기(정지)

1-2. 모듈 불러오기(from ~ import)

형식	예시
from 모듈이름 import 함수이름 from 패키지 이름 import 모듈 이름	from time import sleep # time모듈에서 sleep 함수 불러오기 sleep(1) # 1초간 잠자기(정지)

1-3. 모듈 별명 붙이기(import ~ as)

형식	예시
import 이름이 긴 모듈명 as 별명	import turtle as t # turtle모듈의 별명을 t로 지정하기 t.circle(50) # 반지름이 50픽셀인 원그리기

실전 문제) 로또 번호 추출기 만들기

행번호	코드값	설명
1	from random import shuffle	random이라는 모듈에서 shuffle 함수를 가져와라
2	balls = [x+1 for x in range(45)]	balls이라는 변수에 1부터 45까지 정수를 요소로 하는 리스트를 정의해라
3	ret=[]	결과 리스트를 정의해라
4	for j in range(6):	:다음 명령을 6번 반복해라
5	shuffle(balls)	balls 리스트에 있는 요소를 무작위로 섞는다.
6	num=balls.pop()	balls 리스트에서 끝 요소를 뽑아내서 num에 저장
7	ret.append(num)	ret 리스트에 num을 뒤에서부터 넣는다.
8	ret.sort()	ret 리스트를 오름차순 정렬해라.
9	print(ret)	ret 리스트 출력해라

응용 문제) 25명인 반에서 발표를 할 학생 2명을 랜덤하게 뽑아서 출력하시오.

p.164 파일 입출력

1. 파일 입출력

표준 입출력	파일 입출력
주로 키보드로부터 자료를 읽어들이며, 결과는 모니터로 출력한다. 파일을 읽어들이는 것 없이 작업한다.	파일의 자료를 불러와 처리한 결과를 모니터나 파일로 출력하며, 키보드로 입력받은 자료를 처리하여 파일로 출력하기도 한다.
입력 : input() 출력 : print()	파일열기 : open() 파일읽기 : read() 파일쓰기 : write() 파일닫기 : close()

중요!!! 읽고 쓰는 것이 끝나면 꼭 close() 함수를 사용해 닫아야 한다. 그렇지 않으면 저장이 안된다.

2. 파일 처리

파일 열기・쓰기		모드
파일 객체 = open(파일경로 또는 파일명, 모드)		‘r’ : 읽기만 ‘w’ : 쓰기(기존 내용 덮어쓰기) ‘a’ : 추가하기(기존 내용에 이어쓰기)
예시	f = open('songwon.txt','w') #만약 ‘r’인경우에는 write를 할 때 에러가 난다. f.write('hello') f.close()

연습문제1)

‘r’모드	‘w’모드	‘a’모드
f = open('songwon.txt','r') d=f.read()	f = open('songwon.txt','w') d=f.write(‘송원고 파이팅’) f.close()	f = open('songwon.txt','a') d=f.write(‘\n1학년 최고’) f.close()
결과(songwon.txt 내용)	결과(songwon.txt 내용)	결과(songwon.txt 내용)
hello	송원고 파이팅	송원고 파이팅 1학년 최고

3. 파일 읽기

파일 읽기	설명
파일 객체.read()	파일 내용 전체를 가져와 하나의 문자열로 반환 (각 줄은 ‘\n’으로 구분)
파일 객체.readline()	파일 한줄을 가져와 하나의 문자열로 반환
파일 객체.readlines()	파일 내용 전체를 가져와 문자열 리스트 형태로 저장 (10줄짜리 파일을 읽으면 10개의 요소를 갖는 리스트가 됨)

연습문제2)

songwon.txt	read()	readline()	readlines()
110 109 108 107 106 105 104 103 102 101	f = open('songwon.txt','r') d=f.read() print(d)	f = open('songwon.txt','r') d=f.readline() print(d)	f = open('songwon.txt','r') d=f.readlines() print(d)
	결과값	결과값	결과값

실전문제1)

songwon.txt에 있는 값을 오름차순으로 정렬해 보라(sort 키워드 활용)