EGGRAN

[파이썬 공부 기록 8] 파이썬 독학/파이썬 함수에 대하여 알아보자 ! 사용자 정의 함수, 내장함수 본문

공부기록/Python

[파이썬 공부 기록 8] 파이썬 독학/파이썬 함수에 대하여 알아보자 ! 사용자 정의 함수, 내장함수

에그란 2022. 1. 4. 20:14
반응형

 

1. 함수

- 입력한 값을 함수를 통해 반환 및 결과값이 나온다

- 예를 들어 덧셈 기능이 있는 함수가 있다면 (1, 2) 값을 입력하면 결과가 3이 나오게 하는 것이 함수이다.

- 사용자 정의 함수와 내장함수가 있다.

 

2. 사용자 정의 함수

- 사용자가 직접 만든 함수

- def 함수명( ) :  => 이러한 형식으로 함수를 만든다.

def hello(): #함수선언
    print("안녕하세요 반갑습니다.")

hello() #함수호출, 호출안하면 함수기능수행X

<결과>
안녕하세요 반갑습니다.
#함수 

def hello(): #def 함수명(): 이렇게 함수선언
    print("안녕하세요 반갑습니다.") #함수 호출시 실행될 기능

hello() #함수호출, 호출안하면 함수사용X

<결과>
안녕하세요 반갑습니다.

#매개변수를 통한 함수사용
def hello(name):
    print("안녕하세요. {0}님 반갑습니다.".format(name))

hello("박길동") #매개변수에 따라서 출력되는 값이 달라진다
hello("김말자")
hello("제임스")

<결과>
안녕하세요. 박길동님 반갑습니다.
안녕하세요. 김말자님 반갑습니다.
안녕하세요. 제임스님 반갑습니다.

# 값을 반환 return
def cal(a,b):
    temp = a+b
    return temp #값 반환

res = cal(1,2) #반환된 값을 변수에 저장
print(res) #출력

<결과>
3

#기본값
#이름 학번 나이를 입력해야하는데 나이는 모두 20살인 경우
#나이를 기본값을 설정해주면 이름과 학번만 입력하면됨

def profile(name,num,age=20): #age
    print("이름:{0}, 학번:{1}, 나이:{2}".format(name,num,age))

profile("홍길동","20220001") 
profile("김순덕","20220002")
profile("박만식","20220003")

<결과>
이름:홍길동, 학번:20220001, 나이:20
이름:김순덕, 학번:20220002, 나이:20
이름:박만식, 학번:20220003, 나이:20

#키워드값을 이용한 함수호출
def profile (name,age,addr):
    print(name,age,addr)

profile(name="유재석",age=20,addr="서울") #순서바뀌어도 똑같이 호출
profile(name="하하",addr="인천",age=19)    

<결과>
유재석 20 서울
하하 19 인천


#가변인자 *로 시작 
#좋아하는 음식을 출력해야하는데 사람마다 좋아하는 음식의 갯수가 다른 경우
def like_food(name,*food):
    print("{0}님이 좋아하는음식 :".format(name),end=" ")
    for foodname in food:
        print(foodname,end=" ")
    print()

like_food("유재석","치킨","햄버거")
like_food("이광수","짜장면","피자","빙수")
like_food("미주","도넛","찜닭","만두","초코파이")

<결과>
유재석님이 좋아하는음식 : 치킨 햄버거
이광수님이 좋아하는음식 : 짜장면 피자 빙수       
미주님이 좋아하는음식 : 도넛 찜닭 만두 초코파이

 

3. 내장함수

- 파이썬에서 기본으로 제공하는 함수, 이미 정의되어있는 함수

- sum, max, min, range, round 등 다양한 함수가 있다.

#sum함수 : 원소들의 함을 구함
num = [1,2,3,4,5,6,7,8,9,10]
sum(num)

<결과>
55

#max함수 : 원소들 중 최대값을 찾음
max(num)

<결과>
10

#len함수: 원소개수 또는 문자열 길이를 계산
len(num)

<결과>
10

#enumerate함수 : 개별 원소를 인덱스 숫자와 함께 반환해줌
for i, num in enumerate(num):
    print(i,num)
    
<결과>
0 1
1 2
2 3
3 4
4 5
5 6
6 7
7 8
8 9
9 10

#range함수 : 입력값에 해당하는 정수의 배열을 만듬
range(10)
list(range(0,10))

<결과>
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

#list 함수 : 입력받은 데이터를 리스트로 변환
print(list(range(5)))

<결과>
[0, 1, 2, 3, 4]

#eval 함수 : 입력받은 문자열을 파이썬코드로 변환하여 실행
num=[1,2,3]
eval("print(num)")

<결과>
[1, 2, 3]

#round함수 :숫자 반올림
round(3.14)

<결과>
3

#reversed함수  : 원소위치 반대로 뒤집어줌
num = [1,2,3,4,5]
list1 = reversed(num)
print(list(list1))

<결과>
[5, 4, 3, 2, 1]

#sorted 함수 : 배열순서를 오름차순으로 정렬
list1=[4,3,2,1]
sorted(list1)

<결과>
[1, 2, 3, 4]

#zip 함수 : 원소개수가 같은 자료형들에 대하여 각원소들의 인덱스순서대로 짝을 짓는다
ch =['a,','b','c']
num = [1,2,3]

res= zip(ch,num)
print(list(res))

<결과>
[('a,', 1), ('b', 2), ('c', 3)]
반응형