안녕하세요. 우당탕탕 개발 일지입니다.
파이썬 에디터 IDLE 3.12.1을 사용합니다.
책과 수업 내용을 바탕으로 요약한 내용과 교재 뒤 연습문제입니다.
ch7 전문제는 푼 링크 첨부 합니다.
2024.01.25 - [[프로그래밍 언어]/python] - 두근두근 파이썬(개정판)_ch7 함수 연습문제 1~10번
※ 오늘 다루는 내용은 매우!!!!! 중요함으로 뒷부분을 학습하기 전 많이 연습해 두는 게 좋습니다.
연습문제를 많이 푼 상태에서 다음장으로 넘어가 주시길 바랍니다.
- 함수(function)
- def 키워드
- 매개변수/ 인수
- 디폴트 인수 (default argument)
- 키워드 인수
- 지역 변수/ 전역변수
1. 함수(Function)
순차문, 반복문, 조건문을 모두 배웠다면 점점 더 많은 기능을 가진 프로그램을 짤 수 있게 될 것이다.
기능이 많으면 프로그램은 길고 복잡해진다. 그런 프로그램을 조직화하는 3가지 방법이 있다.
오늘은 그중 하나인 함수에 대해서 다룰 것이다.
함수를 한 번만 정의하면 언제든지 불러서 일을 시킬 수 있다.
우리는 이미 함수라는 단어에 꽤 익숙해져 있을 것이다.
중, 고등학교를 거치면서 우리는 2,3,4차 함수나 지수, 로그함수등을 배웠기 때문이다.
지금까지 함수는 '입력을 받아 출력을 보내는 박스'로 생각할 수 있다.
프로그래밍에서 함수는 '특정한 작업을 수행하는 코드의 덩어리'같은 느낌이다.
2. def 키워드
파이썬에서는 함수를 정의할 때 def키워드를 사용한다.
함수 이름 앞에 def를 붙여주면 된다.
>>>def print_address(): #함수이름():
>>> print("우리집 주소 ") #함수의 내용
>>>print_address() #함수 호출
우리집 주소
※ 함수도 함수의 내용인 문장은 들여 쓰기를 해주어야 한다.
함수 안에 for문을 쓰면 for문의 문장은
for문의 조건이 들여 쓰기된 상태에서 한번 더 들여쓰기 해야 한다.
ch7-lab 로또 번호
⚠️주의: return을 반복문이랑 안에 라인에 두면은 한번만 돌고 return하고 끝나버림.
import random
def lotto():
number = []
while len(number) < 6:
n = random.randint(1, 45)
if n not in number:
number.append(n)
return number
r = lotto()
print("생성된 로또 번호",r)
3. 매개변수( parameter )와 인수 (argument)
매개변수:(=전달받는 변수) 함수를 호출할 때 인수로 전달된 값을 함수 내부에서 사용할 수 있게 해주는 변수.
인수:(=전달되는 값) 함수가 호출될 때 함수로 값을 전달해 주는 변수.
두 가지를 차이를 이해하면 함수를 직접 작성할 때 편한 것 같다.
#인수 전달
def print_address(name): #매개변수:name
print("우리집 주소 ")
print(name)
print_address("홍길동") #인수:홍길동
#값 반환
def calculate_area (radius): #매개변수:radius
area = 3.14 * radius**2
return area #반환 return
c_area = calculate_area(5.0) #인수:5.0
여러 개의 입력을 전달할 수도 있다.
>>>def get_sum(start,end):
>>> sum=0
>>> for i in range(start,end+1):
sum +=i
>>> return sum
>>>print(get_sum(1,10))
4. 디폴트 인수
:매개변수가 기본값을 가지는 것
=> 여러 개의 입력을 받을 때 편하다.
>>>def greet(name,msg="what's up?"): #디폴트 인수:msg
print(msg+','+name)
>>>greet("peter")
what's up?,peter
5. 키워드 인수 (keyword argument)
:인수의 이름을 명시적으로 지정한다.
함수 호출은 인수들의 위치에 의하여 구분된다.
예로 들면 power(2,10)과 power(10,2)와는 다른 것처럼 말이다.
하지만 키워드 인수를 쓰면 인수의 위치가 달라져도 인수들이 순서대로 전달된다.
>>>def calc(x, y, z):
return x+y+z
>>> calc(y=20, x=10, z=30)
60
6. 지역변수와 전역 변수
- 지역 변수: 함수 안에서 선언되는 변수 → gobal 해주면 지역 변수를 전역 변수처럼 쓸 수 있다. (안 하면 함수 내부에서만 쓸 수 있음.)
- 전역 변수: 함수 외부에서 선언되는 변수
※함수를 호출했는데 연산이 제대로 이루어지지 않고 초기값만 계속 출력되는 경우가 있을 것이다.
이럴 때는 변수가 지역변수인데 global을 안 해준 것이 아닌지 확인해 보자.
예제) 마우스를 클릭하면 색칠된 네모가 그려지는 프로그램을 작성해 보자
callback function: 이벤트가 발생했을 때, 이벤트를 처리하는 함수.
onscreenclick(함수이름) : 사용자가 화면에서 마우스를 클릭하면 처리하는 함수를 등록한다.
import turtle
t=turtle.Turtle()
def square(length):
for i in range(4):
t.forward(length)
t.left(90)
def drawit(x, y):
t.penup()
t.goto(x, y)
t.pendown()
t.begin_fill()
t.color("green")
square(50)
t.end_fill()
s = turtle.Screen() # 그림이 그려지는 화면을 얻는다.
s.onscreenclick(drawit) #call_back함수
'[프로그래밍 언어] > python' 카테고리의 다른 글
두근두근 파이썬(개정판)_ch9 리스트와 딕셔너리 (2) | 2024.01.25 |
---|---|
두근두근 파이썬(개정판)_ch7 함수 연습문제 1~10번 (1) | 2024.01.25 |
두근두근 파이썬(개정판)_ch6 반복문 (2) | 2024.01.25 |
두근두근 파이썬(개정판)_ch5 조건문 (2) | 2024.01.21 |
두근두근 파이썬(개정판)_ch4 자료의 종류 (2) | 2024.01.20 |