티스토리 뷰

예시

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 함수를 이용해서

함수를 호출하면 

dict 타입이므로 True로 인식하여 정상작동하였습니다.

 

type가 맞으면 True 틀리면 False로 인식해서 if 문을 이용하면 됩니다.

 

인자(argument)의 개수를 모자라게 호출해도 정상 작동되게 하기

add_to_dict(a,b,c) 에서 add_to_dict(a,b,c = None) 으로 변경하면 개수를 부족하게 호출하여도 인자에 기본적으로 None type이 부여됨으로 오류가 나지 않고 정상 작동된다.

 

 

if 문 중복 사용하기

 

 

문제에서 보면 a인자인 dict type이 없는 것은 한개뿐이다.

그러므로 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 을 사용하는 연습을 하여 좋았습니다

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함