티스토리 뷰
Python) if 문 안에 함수 function 이용하기 // if문 중복 사용하기, arguement(인자)개수 부족하게 호출해도 반응나오게 하기, if 에 type종류 check 하는법
YG - 96년생 , 강아지 있음, 개발자 희망 2021. 5. 10. 09:00예시
my_car_dict = {}
print("\n###### add_to_dict ######\n")
print('add_to_dict("hello", "hyundai"):')
add_to_dict("hello", "hyundai")
print('\nadd_to_dict(my_car_dict, "hyundai"):')
add_to_dict(my_car_dict, "hyundai")
print('\nadd_to_dict(my_car_dict, "hyundai", "Lifetime partner in automobiles and beyond."):')
add_to_dict(my_car_dict, "hyundai", "Lifetime partner in automobiles and beyond.")
print('\nadd_to_dict(my_car_dict, "hyundai", "자동차에서 삶의 동반자로"):')
add_to_dict(my_car_dict, "hyundai", "자동차에서 삶의 동반자로")
print(my_car_dict)
문제
def add_to_dict():
pass
함수를 변경하여 호출하였을 때 이렇게 기능하게 만드시오.
###### add_to_dict ######
add_to_dict("hello", "hyundai"):
당신은 사전을 보내야 합니다. 당신이 보낸 클래스 :<class 'str'>
add_to_dict(my_car_dict, "hyundai"):
단어와 정의를 보내야 합니다.
add_to_dict(my_car_dict, "hyundai", "Lifetime partner in automobiles and beyond."):
hyundai가 추가되었습니다.
add_to_dict(my_car_dict, "hyundai", "자동차에서 삶의 동반자로"):
hyundai는 이미 사전에 나와 있습니다. 추가되지 않습니다.
{'hyundai': 'Lifetime partner in automobiles and beyond.'}
해설
- add_to_dict에 필요한 인자(argument)의 개수는 3개이다
- dict 타입과 str 타입을 if문을 통해서 구분해야 한다
- dict(사전)에 이미 있는 value의 key 값은 추가되지 않아야 한다
- add_to_dict 함수를 이용하여 실제로 my_car_dict에 value : key 를 추가해야 한다
type 종류 if문에서 체크하는 방법
type()
type()은 데이터 타입을 확인할 수 있는 함수입니다.
>>a=1,2,3
print(type(a))
<'class int'>
이를 이용해서 if문에서도 사용할 수 있습니다
예를들어 def 함수를 이용해서
함수를 호출하면
type가 맞으면 True 틀리면 False로 인식해서 if 문을 이용하면 됩니다.
인자(argument)의 개수를 모자라게 호출해도 정상 작동되게 하기
add_to_dict(a,b,c) 에서 add_to_dict(a,b,c = None) 으로 변경하면 개수를 부족하게 호출하여도 인자에 기본적으로 None type이 부여됨으로 오류가 나지 않고 정상 작동된다.
if 문 중복 사용하기
그러므로 a 인 인자가 dict 타입인지 아닌지부터 하나씩 솎아낼 것이다.
그에 대한 결과물
if문을 중복사용할때는 큰 범위에서 중간범위로 범위를 줄이는 역할을 하는것이다.
dict 타입인 3개 문제를 솎았으니 이제 if문을 중복사용하여 더 만들어 보자면
def add_to_dict(a,b,c=None):
if type(a)== dict:
if type(b) != str or type(c) != str:
print("단어와 정의를 보내야 합니다.")
elif type(b) ==str and type(c) == str:
print(f"{b}가 추가되었습니다.")
else:print("당신은 사전을 보내야 합니다. 당신이 보낸 클래스 :<class 'str'>")
if 문을 중복사용하며 type 문을 이용하는 모습입니다
if 문 안에 함수 def ,function 입력하기
여기서 추가하였다고 하였지만 if 문 안에 함수를 입력하지 않았습니다.
함수기능과 메세지 출력을 해야하는데 방법은
여기 문제에서의 경우 a[b] =c 를 입력후 다음줄로 와서 메세지 출력을 하면 동시에 이루어집니다
car_dict에 추가된 모습을 알 수 있습니다.
정답
b in a 가 위로 간 이유는 사전에서 미리 value 값이 있는지 물어본 후 없으면 추가하는 방식이여서 먼저 elif를 사용 하였습니다
개인적으로 이 문제를 풀면서 if 문 그리고 type, in & in not 을 사용하는 연습을 하여 좋았습니다
'Python' 카테고리의 다른 글
Python(파이썬)으로 웹 스크래퍼 만들기 (0) | 2022.02.06 |
---|---|
WSL2 Ubuntu 환경에서 pip 설치하기 (0) | 2022.02.04 |
Python) 파이썬에서 import 하는 방법 (0) | 2021.05.13 |
python) for in 공부 (0) | 2021.05.11 |
Python list 집합 append , extend 차이점 (0) | 2021.05.05 |
- Total
- Today
- Yesterday
- jest
- 북클럽
- NextApiRequest
- TopLayer
- 우아한테크코스
- 위코드
- error
- Storybook
- javascript
- React
- C언어
- 스토리 북
- createPortal
- 노마드코더
- 아차산
- import/order
- NextRequest
- electron
- 원티드
- 프론트앤드
- 노개북
- nodejs
- CLASS
- WSL2
- env
- 프리온보딩
- nextjs
- 초보
- 윤성우 열혈C프로그래밍
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |