[python] 파이썬 함수 사용하기 #3언패킹 리스트,키워드인수,디폴트 인자값
- 언어/파이썬
- 2020. 10. 15.
#언패킹 리스트로 여러가지 값을 한번에 넘기기
x = [10,20,30]
print(*x)
#출력 10 20 30 |
10,20,30의 값을 넣는 x라는 리스트 생성하고 (*)을 사용해서 리스트에 있는 전부를 출력
리스트나 튜플 앞에 *를 붙히면 언패킹이 되어서 print(10,20,30) 과 같은 동작을 합니다. ( 리스트의 포장을 푼다는 의미 )
#가변 인수 함수
def testmethod(*args):
for arg in args:
print(arg)
testmethod(10,20,30,40)
#출력 10 20 30 40 |
언패킹은 인수의 갯수가 정해지지 않은 가변 인수에 사용할 수 있습니다.
#키워드 인수
def personal_info(name,age,address):
print('이름: ',name)
print('나이: ',age)
print('주소: ',address)
print()
#기존방식
personal_info('홍길동','20','서울')
#키워드 인수
personal_info(age=30,address='부산',name='이순신')
#출력 이름: 홍길동 나이: 20 주소: 서울 이름: 이순신 나이: 30 주소: 부산 |
키워드 인수를 사용하는 이유는 코드 자체는 길어질 수 있지만 사용하지 않으면 무조건 이름,나이,주소 순서대로 입력을 받아야 하는데 키워드 인수를 사용하면 키값으로 매개변수가 들어가기 때문에 변수 입력 순서를 따르지 않아도 됩니다.
#디폴트 인자값(초기 인자값)
def info(name,age,address='대한민국'):
print('이름: ',name)
print('나이: ',age)
print('주소: ',address)
info('홍길동',20)
#출력 이름: 홍길동 나이 : 20 주소: 대한민국 |
인자값에 기본값을 주게 되면 값을 비워두고 호출할 수 있게 됩니다. 기본값을 설정 해놔도 값을 넣으면 값이 전달이 됩니다
def info(name,age,address='대한민국'):
print('이름: ',name)
print('나이: ',age)
print('주소: ',address)
info('홍길동',20,'서울')
#출력 이름: 홍길동 나이 : 20 주소: 서울 |
주의할 점은 초기값이 지정된 매개변수 뒤에는 초기값이 없는 매개변수가 올 수 없습니다.
#예시
def info(name,age=20,address):
print('이름: ',name)
print('나이: ',age)
print('주소: ',address)
#연습문제1
여러가지의 점수값중에서 가장 높은 점수를 구하는 프로그램을 만들어 보겠습니다.
기존 방식을 사용하는 함수1, 언패킹을 사용하는 함수2
kor, eng, math, sci = 100,83,80,75
#기존
def max_score1(kor,eng,math,sci):
return max(kor,eng,math,sci)
#언패킹
def max_score2(*args):
return max(args)
max_score = max_score1(kor,eng,math,sci)
print('최고점수: ',max_score)
max_score = max_score2(kor,eng,math,sci)
print('최고점수: ',max_score)
#출력 최고점수 : 100 최고점수 : 100 |
#연습문제
위 문제에서 최고,총, 평균 값을 구하는 프로그램을 만들어 보기
kor, eng, math, sci = 100,83,80,75
def max_score(*args):
return max(args)
def total_score(*args):
total = sum(args)
return total
max_score = max_score(kor,eng,math,sci)
total_score = total_score(kor,eng,math,sci)
avg_score = total_score / 4
print('최고: ',max_score)
print('총점: ',total_score)
print('평균: ',avg_score)
#출력 최고: 100 총점: 338 평균: 84.5 |
'언어 > 파이썬' 카테고리의 다른 글
[python] 파이썬 아나콘다 설치 (0) | 2020.11.03 |
---|---|
[python] 파이썬 람다 표현식 사용하기 (0) | 2020.10.15 |
[python] 파이썬 함수 사용하기 #2사칙연산 해주는 함수 만들기 (0) | 2020.10.15 |
[python] 파이썬 함수 사용하기 #1함수 생성 및 호출 (0) | 2020.10.15 |
[python] 파이썬 성적관리 프로그램 ( 딕셔너리 사용 ) (3) | 2020.10.15 |