//
일시 : 2018.01.05 14:00pm ~ 18:00pm
내용 : chap 9 함수와 모듈
//
함수(Function)
함수를 이용하여 중복 코드를 줄임
print(), input()등 파이썬에서 제공하는 함수도 있지만, 사용자가 정의해서 사용할 수도 있음
def 함수이름(매개변수) : 로 함수 정의
지역변수(local) : 함수 내부에서만 사용 가능
전역변수(global) : 프로그램 전체에서 사용 가능 (위치는 위, 아래 상관 x)
파이썬에서 함수 구현시 정의만 해놓고 pass 키워드로 비워둘 수도 있음
랜덤함수
랜덤 함수 사용하기 위해 랜덤 모듈 추가 => import random
random.randrange(1, 46) => 1~45 중 임의의 숫자 추출
★★매개변수를 이용한 함수 정의★★
처리해야할 매개변수의 개수가 다를 때는 가장 큰 매개변수로 함수를 정의하고 각 매개변수에 기본값을 설정해두고 사용이 가능하다.
ex ) def func1(v1, v2, v3 = 0) :
##return 값 반환
func1(10, 20) => 세번째 매개변수가 없으면 v3 = 0으로 계산
fun1(10, 20, 30)
매개변수의 개수 정해지지 X -> 가변 매개변수(Arbitrary Argument List)방식
매겨변수 앞에 *를 붙여 사용하면 튜플 형식으로 넘어옴 -> def func1(*para)
함수를 호출하는 순간 매개변수의 개수가 정해짐
**매개변수 : 튜플 아닌 딕셔너리 형식으로 전달, 매개변수를 ''키=값'' 형식으로 사용
모듈(Module)
함수의 집합
자주 쓰는 함수들을 파일(모듈)로 만들어 놓고, 다른 프로그램에서 import 하여 사용하면 편리
호출이 일어나는 파일과 모듈 파일은 같은 폴더에 저장
import Func
'Func.함수이름()' 으로 사용 -> Func.func1() (func1() 함수는 모듈 파일에 작성된 함수임)
모듈 이름을 생략하고 함수이름만 사용하려면
from 모듈명 import 함수1, 함수2, 함수3
또는 from 모듈명 import *
표준 모듈 : 파이썬에서 제공하는 모듈
사용자 모듈 : 사용자가 정의한 모듈
서드 파트 모듈 : 외부 기관에서 제공하는 모듈
dir() 함수로 모듈별 제공되는 함수 볼 수 있음 ex)dir(math) - 수학 관련 함수 목록들 볼 수 O
실습
09-03
guest = int(input("손님의 수 입력 : "))
def coffee_machin(button):
print()
if button == 1:
coffee_kind = "보통"
elif button == 2:
coffee_kind = "설탕"
elif button == 3:
coffee_kind = "블랙"
else :
coffee_kind = "아무"
return coffee_kind
for i in range(1, guest+1):
coffee = int(input("\n어떤 커피 드릴까요? (1:보통, 2:설탕, 3:블랙) "))
print(">>손님 %d에게 %s 커피를 전달" % (i, coffee_machin(coffee)))
09-11
import random
def getNumber():
i = 0
while True :
num = random.randrange(1, 46)
if num not in list :
list.append(num)
i += 1
if i > 6:
break
list = []
print("** 로또 추첨을 시작합니다. **")
getNumber()
print(list)
문자열 바꾸기
def my_btr_modify(ss, ch1, ch2):
ss_change = ss.replace(ch1, ch2)
if ch1 not in ss :
return None
return ss_change
ss = input("문장을 입력하시오 : ")
find_ch = input("찾을 문자를 입력하시오 : ")
change_ch = input("바꿀 문자를 입력하시오 : ")
print("==========================")
if my_btr_modify(ss, find_ch, change_ch) != None:
print("원 문자열 : %s" % ss)
print("바뀐 문자열 : %s" % my_btr_modify(ss, find_ch, change_ch))
else :
print("찾을 문자가 없습니다.")
if ch1 not in ss :
return None
return ss_change
##이 부분 어떻게 되는지?
★★★for 반복문에 문자열을 지정하면 문자를 하나씩 가져옴
>>> for i in 'Hello':
... print(i, end=' ')
...
H e l l o
여기서 in 연산자는 특정 문자가 있는지 확인할 때 사용
>>> 'e' in 'Hello'
True
딕셔너리에서도
for k in singer.keys():
print("%s %s" % (k, singer[k]))
k가 keys()값에 있는 문자를 하나씩 가져오며 반복 출력
'2017 멀티캠퍼스 > Python' 카테고리의 다른 글
[Python] #12 파이썬 파일 입출력 (0) | 2018.01.14 |
---|---|
# 파이썬 사후 평가 오답 (0) | 2018.01.11 |
[Python] #10 파이썬 문자열 (0) | 2018.01.09 |
[Python] #9 파이썬 딕셔너리(Dictionary) (0) | 2018.01.09 |
[Python] #8 파이썬 튜플(Tuple) (0) | 2018.01.09 |