728x90
반응형
# 강의 복습 중 헷갈리는 것
< *(asterisk), 기본 값(default)와 매개 변수 >
- 함수에서 매개 변수를 넣고 뺄 때,
1) *를 붙이는 것과
2) 그냥 매개변수
3) 기본 값 넣는 것
의 차이가 계속 헷갈려서 검색한 내용을 정리
- print()
- help로 프린트 변수를 살펴보면 인자가 5개가 나옴
print(*args, sep=' ', end='\n', file=None, flush=False)
#매개변수는 있고 리턴 타입은 없음.
- * 없으면, 매개변수 1개가 무조건 있어야 함.
- * 있으면, 매개 변수가 없어도 출력가능하고 여러 개를 줘도 출력함.
- 매개변수를 사용할 땐,
1. 매개변수 개수가 맞아야 함.
2. 매개변수에 기본 값을 줄 수 있어야 함.
3. 기본 값 안 주려면 *줘야 함.
즉, 기본 값을 안 주는 test() 함수를 출력한다고 가정을 하면
#-------------- * 붙이면 --> 오류 x
def test(*res):
print(f'출력할 값: {res}')
if __name__ == '__main__':
test() #() 빈 튜플로 나와
#------------- 그냥 매개변수 넣으면 --> 오류
def test(res):
print(f'출력할 값: {res}')
if __name__ == '__main__':
test() # 이 경우 오류 발생
#----------------기본 값을 미리 주면 --> 오류 x
def test(res=10):
print(f'출력할 값: {res}')
if __name__ == '__main__':
test() # 10 인자를 주지 않으면 기본값 사용
- 에러를 안 생기게 하려면, 기본 값을 주거나, 처음부터 *매개인자로 넣는 것이 나음.
- chr() , ord()
- help로 chr(), ord()변수를 살펴보면 인자 값과 /만 있음
chr(i, /)
ord(c, /)
- 이러면 위와 다르게 매개인자 값만 넣음
- 호출(= )하지말고 걍 값만 넣으라는 의미임.
-> chr, ord -> 변수가 의미 없음. return 해야 함
- /있으면 호출 안되고 순서대로 값을 전달
- 없으면, 크로스도 되고, 인자의 호출도 됨
def test(a=1,b=2,/):
print(f'a={a} \t b={b}') #\t 넣으면 떨어짐
if __name__ == '__main__':
test() #기본 값 # a=1, b=2
test(100) # a=100, b=2
#test(a=400, b=2) # a=400 b=2 # = 을 제 위치에 넣어도 안됨.
#test(b=2, a=400) # a=400 b=2 # 크로스 안 되서 에러가 뜸
test(,400) # 순서대로 a=400, b=2
test(10, 20) # a=10, b=20
728x90
반응형
'Web Developing > Python' 카테고리의 다른 글
[datetime] strftime과 strptime 차이 (추가로 다른 모듈도!) (0) | 2024.08.04 |
---|---|
[python] 객체와 클래스 연습 (2) | 2024.07.20 |
[python] 버전 변경이 안 될 때, anaconda와 부딪힌 것일 수 있음. (0) | 2024.07.15 |
[Python] sort, sorted 주의 (0) | 2024.05.14 |
[Python] Object Oriented Programming (0) | 2024.04.23 |