클라이언트/ 서버/ 엔지니어 " 게임 개발자"를 향한 매일의 공부일지

기초 자료형 5 - 실습 문제와 미션 문제 풀어보기 본문

프로그래밍 언어/파이썬

기초 자료형 5 - 실습 문제와 미션 문제 풀어보기

huenuri 2024. 9. 4. 12:01

어제 잠을 좀 적게 잤더니 벌써부터 졸리고 피곤하다. 그래도 하는데까지 열심히 공부해봐야지! 몇 문제라도 풀어보고 쉬어볼 것이다.


 
 
 

실습 문제 풀기

 
근데 my_list.pop(1)을제거하나 값이 똑같아서 좀 의아했다. 그 이유는 다음과 같았다.
pop() 메서드는 인덱스를 기반으로 리스트에서 특정 위치의 요소를 제거한다. my_list.pop(1)을 사용하면 첫 번째 '2'를 제거하고, 그 후 my_list.pop(2)와 my_list.pop(3)은 순서대로 '3'을 제거한다. 반면 my_list.pop(2)를 사용하면 두 번째 '2'를 제거한 후, 두 번의 pop() 호출로 역시 '3'들을 제거한다.
두 방법 모두 각 인덱스에 해당하는 요소들을 정확히 제거하여 최종적으로 [1, 2, 3]이라는 동일한 리스트를 생성한다. 따라서 my_list.pop(2)를 사용하든 my_list.pop(1)을 사용하든 결과가 동일한 것이다.


 
 
 
 

왜 'b', '', 't', 'a'가 출력되는지 이해가 되지 않았는데 아마도 split을 하고 난 후 비어있게 되었기 때문이다. 


 
 
 
 


 
 
 
 


 
 
 


 
 
 
 


 

딕셔너리의 키로 사용 가능한 것과 사용 불가능한 것

Python에서 딕셔너리의 키로 사용할 수 있는 값은 *해시 가능(hashable)*해야 한다. 해시 가능하다는 것은 그 객체가 변경되지 않으며, 고유한 해시 값을 가져야 한다는 뜻입니다. 일반적으로 다음과 같다.

  • 해시 가능한 객체: 정수, 부동소수점, 문자열, 튜플(튜플의 요소들도 모두 해시 가능해야 함)
  • 해시 불가능한 객체: 리스트, 집합, 딕셔너리 (이들은 변경 가능 객체이기 때문에 해시 불가능함)

따라서, 코드에서 key_candidate1과 key_candidate2 중 어느 것이 딕셔너리의 키로 사용 가능한지 판단해야 한다.

  • key_candidate1은 리스트이기 때문에 해시 불가능하고, 딕셔너리의 키로 사용할 수 없다.
  • key_candidate2는 튜플이기 때문에 해시 가능하고, 딕셔너리의 키로 사용할 수 있다.

 

 
key_candicate1의 값을 변경하려고 할 때 오류가 뜨고 있다.


 
 
 

미션 문제 풀기

 
나라 이름에 인사말을 담아서 출력하는 문제였다. 조금 난이도가 있는 문제라서 다음에 한번 더 복습하며 풀어보려고 한다.
 


 
 
 

학습을 마치고

1단원 학습을 모두 마쳤다. 2단원은 함수 단원이라 책으로 공부를 한 다음에 문제를 이처럼 풀어보려고 한다. 아까 너무 졸렸는데 한숨 자고 나니 머리도 맑아지고 다시 공부가 즐거워졌다.
빨리 함수를 공부해보고 싶다!