파이썬 기초 정리

파이썬 기초 정리 1일차 (함수 만들기)

김씨 달팽이 2021. 8. 9. 22:11
반응형

이 정리 글에는 변수나 자료형 같은 그런 것들은 생략하고 정리할 것이다. 기본적이지만 나중에 기억이 안나는 것들이 있을 수 있기에 간단간단한 것들부터 정리해보도록 하겠다.

사실 내가 전문적으로 배운 것도 아니고, 코드잇을 하면서 공부했던 것들 복습 차원에서 정리하는 것이라 설명하는 것에 오류나 잘못된 것들이 있을 수 있음을 인지해주길 바란다.

 

함수 만드는 법

함수를 만든다는 것은 어떤 기능을 여러군데에서 작동시키기 위해 도구를 만드는 것과 같다.

만약 함수를 만들지 않고 계속해서 필요에 의해 자주 쓰다 보면 코드 길이도 길어지고

무엇보다 귀찮다. 

한 번 코드를 바꾸거나 더 좋은 코드가 생각나서 바꿀 때에

시간이 많이 걸리는데

함수로 만들면 한 번만 바꾸면 된다.

 

그럼 어떻게 만드는 것인지 볼까?

함수의 모양을 보기 위해 예시를 만들어 보았다.

user_name = input("이름을 입력하세요")

def hello(name):
    print(f"Hello {name}!")

hello(user_name)

 

user_name = input("이름을 입력하세요")

이 코드에서 input()은 사용자에게 무언가를 입력하라고 하는 것이고

"이름을 입력하세요"는 사용자에게 안내하는 것이다

그리고 user_name은 사용자의 이름을 저장하는 변수인 것이다

 

이제 함수 부분

def hello(name):
    print(f"Hello {name}!")

def 함수이름(파라미터):

구조이다

파라미터라는 것은

함수를 작동시킬 때

어떤 수치를 입력받는 자리의 이름이다

즉, 파라미터의 이름은 함수 안에서만 사용되는 이름이기에

자유롭게 설정해서 쓰면 된다

 

파라미터를 몇 개를 쓸 수 있을까?

그건 아직 잘 모른다

1개, 2개, 3개 등등

아래 코드와 같이 사용할 수 있기 때문이다

def two_sum(num1, num2):
    return(num1 + num2)

def three_sum(num1, num2, num3):
    return(num1 + num2 + num3)


print(two_sum(1, 2))
print(three_sum(3, 4, 5))

위의 코드에서는 print()를 썼는데

두 번째 코드에서는 return을 사용했다

 

이것은 차이가 있다.

print()는 그냥 출력만 하는 것이기에

어떤 변수나 어떤 것들에

저장을 할 수 있는 것이 아니다.

즉, 계산한 값을 재사용을 할 수 없다

 

하지만 return는

이 함수를 사용하는 부분이

return 값이 되는 것이다

위의 함수를 이용해서 보여준다면

kor = 100
eng = 80
math = 90

total = three_sum(kor, eng, math)

과목으로 한다면

국어 영어 수학 점수의 합

이나

이렇게 사용할 수 있다.

 

아니면 여러 과목 수가 정해져 있지 않다면

밑에와 같이 할 수 있다

for 문을 이용한다면

def average(list):
    total = 0
    subject = 0
    for i in list:
        total += i
        subject += 1
    
    return total / subject

hong = [100, 90, 80, 100]
print(average(hong))

이렇게 list를 넣어서 반복문을 돌려도 되는 것이다

(이건 내가 실험해본 것이다. 근데 되네 ㅎㅎ)

 

이제 파라미터에 대해 설명은 끝났다

하지만 거의 다 설명했다

함수라는 것은 명령을 저장하는 역할을 한다

그러니 안에 어떻게 쓰든 상관은 없지만

그렇다면

코드를 봤을 때

비슷한 모양의 코드가 많다면

그것을 함수 안에 넣고

간단하게 입력해서 작동시켜도 될 것 같다

 

오늘 사실 많이 정리를 못한 것 같지만

그래도 다행이다

함수를 만드는 것은

내가 생각할 때

어떤 프로그램의 부품을 만드는 거라는

생각이 드는데

어떻게 만드는지 까먹었을 때

이거 다시 봐야겠다

 

for문이나 input()이나

사전이나 이것저것 정리할 것이 많다

하지만 오늘은 여기까지

 

오늘은 여기서 끝내야 할 것 같다

내일은 숫자형 계산하는 것에 대해서

정리할 생각이다

 

 

반응형