Python 10 - 함수 활용 방법
2021. 5. 2. 17:54ㆍpython
반응형
# 함수 기본값 설정
def profile(name, age, main_lang):
print("이름:{0}\t나이:{1}\t\t자주 사용 단어:{2}".format(name, age, main_lang))
profile("유재석", 51, "무야호")
profile("김태호", 48, "오케이콜")
---------출력결과----------
이름:유재석 나이:51 자주 사용 단어: 무야호
이름:김태호 나이: 48 자주 사용 단어:오케이콜
# 함수 기본값 설정
# 만약 태호와 재석이가 같은 나이에 같은 단어를 자주 사용한다면??
def profile(name, age=17, main_lang="무야호"):
print("이름:{0}\t나이:{1}\t\t자주 사용 단어:{2}" .format(name, age, main_lang))
profile("유재석")
profile("김태호")
age와 main_lang 을 미리 지정 함으로써 호출시에 편리하게 호출 할 수 있다.
# 키워드 값을 이용한 함수 호출
# 키워드=값을 넣어주면 순서가 뒤바뀌어 있어도 잘 전달될 수 있다.
def profile(name, age, main_lang):
print(name, age, main_lang)
profile(name="유재석", main_lang="무야호", age=51)
profile(main_lang="오케이콜", age=48, name="김태호")
호출시에 귀찮게 키워드값을 하나하나 넣게 되면 순서가 뒤바뀌어도 잘 전달된다는 장점이 있다.
# 가변인자
def profile(name, age, lang1, lang2, lang3, lang4, lang5):
print("이름 : {0}\t나이 : {1}\t" .format(name, age), end=" ") # end=" "는 밑에 print출력문과 같은 줄에서 출력되도록한다.
print(lang1, lang2, lang3, lang4, lang5) #일일이 다 입력해야하는 번거로움...
def profile(name, age, *language): # *language로 표현하면 넣고싶은만큼 넣게 만들어줌
print("이름 : {0}\t나이 : {1}\t" .format(name, age), end=" ")
for lang in language: #for문을 이용해 반복되는 lang을 출력
print(lang, end=" ")
print()
profile("유재석", 20, "python", "Java", "C", "C++", "C#", "Javascript")
profile("김태호", 25, "kotlin", "Swift")
end=" " 는 print출력문과 같은 줄에서 출력이 되도록한다. 즉 한줄로 출력하고 싶다면 end=" "를 활용한다.
또한 가변인자를 이용하여 앞에 *를 붙이게 되면 인자를 넣고싶은 만큼 넣을 수 있다.
for문을 이용하여 한줄에 원하는 language들을 갯수에 구애받지 않고 마음껏 추가할 수 있다.
# 지역변수 : 함수 내에서만 사용할 수 있는
# 전역변수 : 모든 공간내에서 프로그램 전체에서 사용 할 수 있는
----------A---------------
gun = 10
def checkpoint(soldiers): # 경계근무
gun = 20
gun = gun - soldiers
print("[함수내] 남은 총 : {0}" .format(gun))
print("전체 총 : {0}" .format(gun))
checkpoint(2)
print("남은 총 : {0}" .format(gun))
----------B---------------
gun = 10
def checkpoint(soldiers): #경계근무
global gun
gun = gun - soldiers
print("[함수내] 남은 총 : {0}" .format(gun))
print("전체 총 : {0}" .format(gun))
checkpoint(2)
print("남은 총 : {0}" .format(gun))
함수 밖의 gun과 함수 내에 gun값이 서로 연동되지 않는 것을 지역변수라고하고
이럴때 우리는 전역변수를 사용한다. 이럴 때 B의 코드와 같이 global 함수를 이용하여 해결할 수 있다.
# 가능한 global 보단 아래와 같은 방법을 이용하는 것이 가장 좋다.
gun = 10
def checkpoint_ret(gun, soldiers):
gun = gun - soldiers
print("[함수내] 남은 총 : {0}" .format(gun))
return gun
print("전체 총 : {0}" .format(gun))
gun = checkpoint_ret(gun, 2)
print("남은 총 : {0}" .format(gun))
---------출력결과----------
전체 총 : 10
[함수내] 남은 총 : 8
남은 총 : 8
반응형
'python' 카테고리의 다른 글
Python 12 - 포맷팅, 파일입출력 (0) | 2021.05.04 |
---|---|
Python 11 - 표준입출력, sys, ljust, rjust, zfill, input (0) | 2021.05.03 |
Python 09 - 함수 def (define 정의하다) (0) | 2021.04.30 |
Python 08 - continue, break, len, upper (0) | 2021.04.29 |
Python 07 - 제어문 ( if, for, while 문) (0) | 2021.04.28 |