Python 함수

Jayce·2023년 5월 8일
0

Python 기초

목록 보기
5/10
post-thumbnail

오늘은 함수(function)에 대해 공부 하는 시간입니다.


함수(function)이란

하나의 특별한 목적의 작업을 수행하도록 설계된 독립적인 블록을 뜻합니다.
함수는 필요할 때마다 호출하여 작업을 반복해서 수행이 가능합니다.
직접 만들 수도 있고 만들어져 있는 함수도 있습니다.
만들어져 있는 함수의 예시로는 sum()같이 덧셈을 수행하는 함수 등입니다.


함수만들기

input

def plus(x):
    return x+1 

a=[] # a를 빈 [List]로 최기화
for i in range(1,6):
    a.append(plus(i)) 

a  

output

[2, 3, 4, 5, 6]

x라는 변수를 가진 plus함수를 만듭니다. plus함수는 x + 1의 동작을 수행합니다.
1~5까지 반복 수행하는 반복문을 만들어 plus 함수를 넣으면 a라는 리스트 안에 [2(1+1),3(2+1),4(3+1),5(4+1),6(5+1)] 값이 출력되게 됩니다.

List 형태의 Data에 요소를 추가하는 함수는 3가지가 있습니다.
append() : 리스트 형태의 Data에 마지막에 하나 추가하는 함수
extend() : 리스트 마지막에 iterable(반복가능 객체)의 모든 항목을 추가하는 함수입니다.
append()와 비슷하나 자료형이더라도 가능합니다.
*insert() : 리스트 형태의 Data에 원하는 위치(index)와 값을 추가하는 함수입니다.


응용

input

list(map(plus, [1,2,3,4,5]))

output

[2, 3, 4, 5, 6]

map을 이용해 더욱 짧게 같은 값을 출력할 수 있습니다.
map은 리스트의 요소를 지정된 함수로 처리해주는 함수입니다.


zip함수

input

names=['김철수','박철호','최정호','이철수','홍찬수']
points=[100,80,70,60,90]
# 같은 인덱스끼리 조합 
for (name,point) in list(zip(names,points)):
    print('이름:',name,',점수:',point)

output

이름: 김철수 ,점수: 100
이름: 박철호 ,점수: 80
이름: 최정호 ,점수: 70
이름: 이철수 ,점수: 60
이름: 홍찬수 ,점수: 90

zip함수는 여러 개의 iterable자료형이 개수가 동일할 때 사용할 수 있습니다. iterable 자료형의 각각의 요소를 나눈 후 순서대로 묶어서(zip) 요소 개수만큼 새로운 iterable 자료형을 생성합니다. zip에서 이용가능한 interable자료형은 [리스트], (튜플) 같이 반복 가능한 자료형입니다.


함수만들기 응용

input

def set_person(name, job, age=0): # 변수=기본값 (전달값이 없는 경우에 사용됨 )
    person={'name': name, 'job': job} 
    if age: # 빈값이 아니면 
        person['age']=age  # 딕셔너리에 변수 추가 
    return person

set_person이라는 함수를 만들어 줍니다.age는 데이터의 유무의 따라 작동되게 만들어 봅니다.


함수만들기 응용2

input

set_person('김철수','작가') 

output

{'name': '김철수', 'job': '작가'}

age는 if문으로 값이 있을때 딕셔너리에 추가 하게 만들었기 때문에 age는 없더라도 잘 나옵니다.


지역변수 전역변수

input

a=1 #전역변수
def test():
    global a  # 전역변수를 사용하는 옵션 
    a=a+1 #지역변수
    
test()
print(a)

output

2

예시를 보여드리기 작성한 코드입니다.
지역변수는 함수안에 내장된 변수이기 때문에 다른 함수에서 사용할 수 없습니다.
전역변수는 함수 밖에서 선언된 변수이기 때문에 다른 함수에서도 사용할 수 있습니다.
이를 잘 판단해서 변수를 선언해야 합니다.


오늘은 간단한 함수와 함수를 만드는 방법에 대해 배워 보았습니다. 오늘도 긴 글 읽으시느라 고생하셨습니다. 다음시간에는 Class에 대해 배워보겠습니다.

😁 power through to the end 😁

profile
Dreamer

0개의 댓글